版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄題目簡(jiǎn)述--------------------------------01需求分析--------------------------------01數(shù)據(jù)結(jié)構(gòu)--------------------------------01功效模塊--------------------------------02程序設(shè)計(jì)--------------------------------02運(yùn)行截圖--------------------------------04分析總結(jié)--------------------------------08程序源碼--------------------------------08圖書(shū)信息管理系統(tǒng)題目簡(jiǎn)述:題目名稱:圖書(shū)信息管理系統(tǒng)要求:使用圖形用戶界面,用數(shù)據(jù)庫(kù)建立1或2個(gè)圖書(shū)信息表,能連接數(shù)據(jù)庫(kù)并實(shí)現(xiàn)查詢、增加、刪除、修改等功效。需求分析: 圖書(shū)信息管理系統(tǒng)應(yīng)該含有圖書(shū)信息管理功效和流通管理功效。其中,信息管理功效包含查找,增加,修改,刪除,顯示全部信息等模塊。流通管理功效包含圖書(shū)借閱,歸還等模塊。所以分別設(shè)計(jì)各個(gè)模塊,實(shí)現(xiàn)不一樣功效。數(shù)據(jù)結(jié)構(gòu): 用SQLSever建立數(shù)據(jù)庫(kù)表,用一張表存放圖書(shū)ID號(hào)碼,圖書(shū)名稱,圖書(shū)全部者,圖書(shū)狀態(tài),圖書(shū)使用者(許可為空)。具體設(shè)計(jì)以下圖所表示: 圖書(shū)ID,圖書(shū)名稱,圖書(shū)全部者,圖書(shū)狀態(tài),圖書(shū)使用者(許可為空)均為varchar(50)類型,在Java中能夠方便查詢。圖書(shū)存放信息具體內(nèi)容以下圖所表示: 功效模塊:主程序窗口主程序窗口系統(tǒng)操作圖書(shū)信息管理圖書(shū)流通管理退出增加圖書(shū)顯示圖書(shū)編輯圖書(shū)查找圖書(shū)刪除圖書(shū)圖書(shū)借閱圖書(shū)歸還程序設(shè)計(jì): 主框架設(shè)計(jì): 主框架上方包含三個(gè)按鈕,分別是“系統(tǒng)管理”、“圖書(shū)信息管理”和“圖書(shū)流通管理”,定義JMenuBar類對(duì)象、JMenu類對(duì)象和JMenuItem類對(duì)象,分別表示菜單欄、菜單組和菜單選項(xiàng),然后調(diào)用初始化函數(shù),將不一樣類對(duì)象經(jīng)過(guò)setText()函數(shù)設(shè)定不一樣文本,然后將其添加到窗口容器中。對(duì)每個(gè)按鈕分別添加不一樣消息監(jiān)聽(tīng),響應(yīng)對(duì)應(yīng)消息,調(diào)用不一樣類完成不一樣功效。消息監(jiān)聽(tīng)功效詳見(jiàn)源代碼bookMain類。 圖書(shū)信息管理模塊包含增加圖書(shū),刪除圖書(shū),編輯圖書(shū),查找圖書(shū)和顯示圖書(shū)信息。具體方法實(shí)現(xiàn)在bookBean中實(shí)現(xiàn),當(dāng)用戶點(diǎn)擊對(duì)應(yīng)按鈕時(shí),消息監(jiān)聽(tīng)模塊就會(huì)調(diào)用bookBean結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)bookBean對(duì)象,然后經(jīng)過(guò)對(duì)象調(diào)用bookBean類中對(duì)應(yīng)方法,完成事件對(duì)應(yīng)。 增加圖書(shū)信息模塊: 調(diào)用bookAdd類結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,在初始化函數(shù)中顯示信息輸入對(duì)話框,提醒用戶輸入圖書(shū)ID,圖書(shū)名稱和圖書(shū)全部者,因?yàn)閯傇黾訄D書(shū)沒(méi)有被借閱,所以圖書(shū)狀態(tài)和圖書(shū)使用者為默認(rèn)值,分別為空閑和null,所以用戶無(wú)須輸入這兩個(gè)屬性值。完成輸入后,點(diǎn)擊確定按鈕,消息監(jiān)聽(tīng)模塊將調(diào)用bookBean結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,經(jīng)過(guò)該對(duì)象調(diào)用bookBeanbookAdd函數(shù),實(shí)施SQL語(yǔ)句,經(jīng)過(guò)insert語(yǔ)句完成圖書(shū)信息增加插入功效。 刪除圖書(shū)信息模塊:調(diào)用bookDel類結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,在初始化函數(shù)中顯示信息輸入對(duì)話框,提醒用戶輸入要?jiǎng)h除圖書(shū)ID。完成輸入后,點(diǎn)擊確定按鈕,消息監(jiān)聽(tīng)模塊將調(diào)用bookBean結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,經(jīng)過(guò)該對(duì)象調(diào)用bookBeanbookDel函數(shù),實(shí)施刪除SQL語(yǔ)句,經(jīng)過(guò)delete語(yǔ)句完成圖書(shū)信息刪除功效。修改圖書(shū)信息模塊:點(diǎn)擊按鈕后調(diào)用bookEdit類結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,在初始化函數(shù)中顯示信息輸入對(duì)話框,提醒用戶輸入要修改圖書(shū)ID和其它圖書(shū)信息,用戶將信息輸入完成后,點(diǎn)擊確定按鈕,消息監(jiān)聽(tīng)模塊將調(diào)用bookBean結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,經(jīng)過(guò)該對(duì)象調(diào)用bookBeanbookEdit函數(shù),實(shí)施修改SQL語(yǔ)句,經(jīng)過(guò)update語(yǔ)句完成圖書(shū)信息編輯功效。查找圖書(shū)信息模塊:點(diǎn)擊按鈕后調(diào)用bookSearch類結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,在初始化函數(shù)中顯示信息輸入對(duì)話框,提醒用戶輸入要查找圖書(shū)ID,用戶將信息輸入完成后,點(diǎn)擊確定按鈕,消息監(jiān)聽(tīng)模塊將調(diào)用bookResult結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,經(jīng)過(guò)該對(duì)象結(jié)構(gòu)函數(shù),實(shí)施查找SQL語(yǔ)句,經(jīng)過(guò)select語(yǔ)句完成圖書(shū)信息查找功效,然后結(jié)構(gòu)圖標(biāo),將查詢到信息顯示在圖表中。顯示圖書(shū)信息模塊:點(diǎn)擊按鈕后調(diào)用bookDisplay類結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)該類對(duì)象,在該對(duì)象結(jié)構(gòu)函數(shù)中調(diào)用bookAllSearch函數(shù),查詢?nèi)繄D書(shū)信息,顯示在表格中。 圖書(shū)流通管理模塊包含圖書(shū)借閱和歸還功效,其實(shí)就是對(duì)數(shù)據(jù)庫(kù)中某一統(tǒng)計(jì)集某一屬性進(jìn)行修改。 圖書(shū)借閱模塊: 用戶輸入要借閱圖書(shū)名稱和本人姓名,點(diǎn)擊確定后,將調(diào)用bookBean結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)對(duì)象,經(jīng)過(guò)該對(duì)象調(diào)用bookBook函數(shù),修改數(shù)據(jù)庫(kù)中信息,將圖書(shū)狀態(tài)屬性變?yōu)橐呀瑁瑢D書(shū)用戶屬性變?yōu)橛脩粜彰?,完成圖書(shū)借閱功效。圖書(shū)歸還模塊: 用戶輸入要?dú)w還圖書(shū)名稱,點(diǎn)擊確定后,將調(diào)用bookBean結(jié)構(gòu)函數(shù)產(chǎn)生一個(gè)對(duì)象,經(jīng)過(guò)該對(duì)象調(diào)用bookReturn函數(shù),修改數(shù)據(jù)庫(kù)中信息,把圖書(shū)狀態(tài)置為空閑,將圖書(shū)用戶置為空,從而完成圖書(shū)歸還功效。 備注:匯報(bào)此部分未附源代碼,詳見(jiàn)程序源碼部分。運(yùn)行截圖: 圖書(shū)信息增加: 圖書(shū)信息修改:圖書(shū)信息查詢: 圖書(shū)信息刪除: 圖書(shū)信息顯示:圖書(shū)借閱:圖書(shū)歸還:分析總結(jié): 本程序在數(shù)據(jù)庫(kù)設(shè)計(jì)方面能夠改為多張表存放方法,用三張表來(lái)統(tǒng)計(jì)圖書(shū)信息,借閱關(guān)系和學(xué)生信息,這么能夠降低數(shù)據(jù)冗余,還能夠增加部分其它功效,比圖書(shū)掛失等功效。因?yàn)閯倓偨佑|到Java界面設(shè)計(jì),所以本程序在界面設(shè)計(jì)方面還有有待改善地方。程序源碼:DatabaseConn.javapackagebookDB;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassDatabaseConn{ privateStatementstmt=null; ResultSetrs=null; privateConnectionconn=null; Stringsql; publicDatabaseConn(){} publicvoidOpenConn()throwsException{ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:library"); }catch(Exceptione){System.err.println("數(shù)據(jù)庫(kù)連接:"+e.getMessage());} } publicResultSetexecuteQuery(Stringsql){ stmt=null; rs=null; try{ stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); }catch(SQLExceptione){System.err.println("查詢數(shù)據(jù):"+e.getMessage());} returnrs; } publicvoidexecuteUpdate(Stringsql){ stmt=null; rs=null; try{ stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); mit(); }catch(SQLExceptione){System.err.println("更新數(shù)據(jù):"+e.getMessage());} } publicvoidcloseStmt(){ try{stmt.close();}catch(SQLExceptione){ System.err.println("釋放對(duì)象:"+e.getMessage()); } } publicvoidcloseConn(){ try{conn.close();}catch(SQLExceptionex){ System.err.println("釋放對(duì)象:"+ex.getMessage()); } } publicstaticStringtoGBK(Stringstr){ try{ if(str==null) str=null; else str=newString(str.getBytes("ISO-8859-1"),"GBK"); }catch(Exceptione){System.out.println(e);} returnstr; }}packagebookDB;importjava.awt.AWTEvent;importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;bookMain.javapublicclassbookMainextendsJFrameimplementsActionListener{ privatestaticfinallongserialVersionUID=1L; //----------建立菜單欄---------- JMenuBarmainMenu=newJMenuBar(); //--------------建立系統(tǒng)管理菜單組-------------- JMenumenuSystem=newJMenu(); JMenuItemitemExit=newJMenuItem(); JMenumenubook=newJMenu(); JMenumenuevent=newJMenu(); JMenuItemitemAdd=newJMenuItem(); JMenuItemitemEdit=newJMenuItem(); JMenuItemitemDelete=newJMenuItem(); JMenuItemitemSelect=newJMenuItem(); JMenuItemitemBook=newJMenuItem(); JMenuItemitemReturn=newJMenuItem(); JMenuItemitemDisplay=newJMenuItem(); //------------創(chuàng)建窗體模板對(duì)象-------------- publicstaticbookInfom_stu=newbookInfo(); publicbookMain(){ enableEvents(AWTEvent.WINDOW_EVENT_MASK); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setSize(600,480); this.setTitle("圖書(shū)管理系統(tǒng)"); try{ Init(); }catch(Exceptione){e.printStackTrace();} } privatevoidInit()throwsException{ ContainercontentPane=this.getContentPane(); contentPane.setLayout(newBorderLayout()); //------添加菜單組------- menuSystem.setText("系統(tǒng)操作"); menuSystem.setFont(newFont("Dialog",0,12)); menubook.setText("圖書(shū)信息管理"); menubook.setFont(newFont("Dialog",0,12)); menuevent.setText("圖書(shū)流通管理"); menuevent.setFont(newFont("Dialog",0,12)); //---------生成系統(tǒng)管理菜單組--------- itemExit.setText("退出"); itemExit.setFont(newFont("Dialog",0,12)); //--------------生成學(xué)生菜單組---------------- itemAdd.setText("增加圖書(shū)"); itemAdd.setFont(newFont("Dialog",0,12)); itemEdit.setText("修改信息"); itemEdit.setFont(newFont("Dialog",0,12)); itemDelete.setText("刪除圖書(shū)"); itemDelete.setFont(newFont("Dialog",0,12)); itemSelect.setText("查詢"); itemSelect.setFont(newFont("Dialog",0,12)); itemDisplay.setText("顯示全部信息"); itemDisplay.setFont(newFont("Dialog",0,12)); //--------------生成管理事務(wù)菜單組---------------- itemBook.setText("圖書(shū)借閱"); itemBook.setFont(newFont("Dialog",0,12)); itemReturn.setText("圖書(shū)歸還"); itemReturn.setFont(newFont("Dialog",0,12)); menuSystem.add(itemExit); menubook.add(itemAdd); menubook.add(itemEdit); menubook.add(itemDelete); menubook.add(itemSelect); menubook.add(itemDisplay); menuevent.add(itemBook); menuevent.add(itemReturn); //----組合菜單欄--- mainMenu.add(menuSystem); mainMenu.add(menubook); mainMenu.add(menuevent); this.setJMenuBar(mainMenu); //添加事件監(jiān)聽(tīng) itemExit.addActionListener(this); itemAdd.addActionListener(this); itemEdit.addActionListener(this); itemDelete.addActionListener(this); itemSelect.addActionListener(this); itemBook.addActionListener(this); itemReturn.addActionListener(this); itemDisplay.addActionListener(this); setVisible(true); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){System.exit(0);} }) ; } publicvoidactionPerformed(ActionEvente){ Objectobj=e.getSource(); if(obj==itemExit){System.exit(0);} elseif(obj==itemAdd){ bookAddasi=newbookAdd(); //asi.downInit(); asi.pack(); asi.setVisible(true); }elseif(obj==itemEdit){ bookEditesi=newbookEdit(); //esi.downInit(); esi.pack(); esi.setVisible(true); }elseif(obj==itemDelete){ bookDeldsi=newbookDel(); //dsi.downInit(); dsi.pack(); dsi.setVisible(true); }elseif(obj==itemSelect){ bookSearchsbid=newbookSearch(); sbid.pack(); sbid.setVisible(true); }elseif(obj==itemBook){ bookBooksboo=newbookBook(); sboo.pack(); sboo.setVisible(true); }elseif(obj==itemReturn){ bookReturnsre=newbookReturn(); sre.pack(); sre.setVisible(true); }elseif(obj==itemDisplay){ bookDisplaysre=newbookDisplay(); sre.pack(); sre.setVisible(true); } } publicstaticvoidmain(String[]args){newbookMain();}}bookAdd.javapackagebookDB;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassbookAddextendsJFrameimplementsActionListener{ Containerc; JLabeljLabel1=newJLabel(); JLabeljLabel2=newJLabel(); JLabeljLabel3=newJLabel(); JLabeljLabel4=newJLabel(); JLabeljLabel5=newJLabel(); JTextFieldsid=newJTextField(10); JTextFieldsname=newJTextField(10); JTextFieldsowner=newJTextField(10); JTextFieldsstatus=newJTextField(10); JTextFieldsuser=newJTextField(10); JButtonaddconfirm=newJButton(); publicbookAdd(){ this.setTitle("增加圖書(shū)信息"); this.setResizable(false); try{Init();}catch(Exceptione){e.printStackTrace();} //設(shè)置居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); } publicvoidInit()throwsException{ this.setSize(300,500); c=this.getContentPane(); c.setLayout(newFlowLayout()); jLabel1.setText("圖書(shū)ID:"); jLabel1.setFont(newFont("Dialog",0,12)); c.add(jLabel1); sid.setText(null); sid.setFont(newFont("Dialog",0,12)); c.add(sid); jLabel2.setText("圖書(shū)名稱:"); jLabel2.setFont(newFont("Dialog",0,12)); c.add(jLabel2); sname.setText(null); sname.setFont(newFont("Dialog",0,12)); c.add(sname); jLabel3.setText("圖書(shū)全部者:"); jLabel3.setFont(newFont("Dialog",0,12)); c.add(jLabel3); sowner.setText(null); sowner.setFont(newFont("Dialog",0,12)); c.add(sowner); addconfirm.setText("確定增加"); addconfirm.setFont(newFont("Dialog",0,12)); c.add(addconfirm); addconfirm.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ Objectobj=e.getSource(); if(obj==addconfirm){ bookBeanrs=newbookBean(); rs.bookAdd(sid.getText(),sname.getText(),sowner.getText()); this.dispose(); } }}bookInfo.javapackagebookDB;publicclassbookInfo{ Stringm_book_id; Stringm_book_name; Stringm_book_owner; Stringm_book_status; Stringm_book_user;}bookEdit.javapackagebookDB;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassbookEditextendsJFrameimplementsActionListener{ Containerc; JLabeljLabel1=newJLabel(); JLabeljLabel2=newJLabel(); JLabeljLabel3=newJLabel(); JLabeljLabel4=newJLabel(); JLabeljLabel5=newJLabel(); JTextFieldsid=newJTextField(10); JTextFieldsname=newJTextField(10); JTextFieldsowner=newJTextField(10); JTextFieldsstatus=newJTextField(10); JTextFieldsuser=newJTextField(10); JButtoneditconfirm=newJButton(); publicbookEdit(){ this.setTitle("修改圖書(shū)信息"); this.setResizable(false); try{Init();}catch(Exceptione){e.printStackTrace();} //設(shè)置居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); } publicvoidInit()throwsException{ this.setSize(300,500); c=this.getContentPane(); c.setLayout(newFlowLayout()); jLabel1.setText("要修改圖書(shū)ID:"); jLabel1.setFont(newFont("Dialog",0,12)); c.add(jLabel1); sid.setText(null); sid.setFont(newFont("Dialog",0,12)); c.add(sid); jLabel2.setText("圖書(shū)名稱:"); jLabel2.setFont(newFont("Dialog",0,12)); c.add(jLabel2); sname.setText(null); sname.setFont(newFont("Dialog",0,12)); c.add(sname); jLabel3.setText("圖書(shū)全部者:"); jLabel3.setFont(newFont("Dialog",0,12)); c.add(jLabel3); sowner.setText(null); sowner.setFont(newFont("Dialog",0,12)); c.add(sowner); editconfirm.setText("確定修改"); editconfirm.setFont(newFont("Dialog",0,12)); c.add(editconfirm); editconfirm.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ Objectobj=e.getSource(); if(obj==editconfirm){ bookBeanrs=newbookBean(); rs.bookModify(sid.getText(),sname.getText(),sowner.getText()); this.dispose(); } }}bookDel.javapackagebookDB;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassbookDelextendsJFrameimplementsActionListener{ Containerc; JLabeljLabel1=newJLabel(); JTextFieldsid=newJTextField(10); JButtondelconfirm=newJButton(); publicbookDel(){ this.setTitle("刪除圖書(shū)信息"); this.setResizable(false); try{Init();}catch(Exceptione){e.printStackTrace();} //設(shè)置居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); } publicvoidInit()throwsException{ this.setSize(300,500); c=this.getContentPane(); c.setLayout(newFlowLayout()); jLabel1.setText("要?jiǎng)h除圖書(shū)ID:"); jLabel1.setFont(newFont("Dialog",0,12)); c.add(jLabel1); sid.setText(null); sid.setFont(newFont("Dialog",0,12)); c.add(sid); delconfirm.setText("確定刪除"); delconfirm.setFont(newFont("Dialog",0,12)); c.add(delconfirm); delconfirm.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ Objectobj=e.getSource(); if(obj==delconfirm){ bookBeanrs=newbookBean(); rs.bookDel(sid.getText()); this.dispose(); } }}bookDisplay.javapackagebookDB;importjava.awt.*;importjavax.swing.*;publicclassbookDisplayextendsJFrame{ JLabeljLabel1=newJLabel(); JButtonjBExit=newJButton(); JScrollPanejScrollPane1; JTablejTabstuInfo; StringsNum; String[]列名={"圖書(shū)ID","圖書(shū)名","圖書(shū)全部者","圖書(shū)狀態(tài)","使用者"}; String[][]列值; StringsColValue; StringsColName; StringsFromValue; StringsToValue; publicbookDisplay(){ this.setTitle("學(xué)生信息查詢結(jié)果"); //--------設(shè)置運(yùn)行位置居中--------- DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); bookBeanrstu=newbookBean(); try{ 列值=rstu.bookAllSearch(); if(列值==null){ JOptionPane.showMessageDialog(null,"沒(méi)有符合條件統(tǒng)計(jì)"); this.dispose(); }else{ jTabstuInfo=newJTable(列值,列名); jScrollPane1=newJScrollPane(jTabstuInfo); this.getContentPane().add(jScrollPane1,BorderLayout.CENTER); this.pack(); this.setVisible(true); } }catch(Exceptione){e.printStackTrace();} }}bookBook.javapackagebookDB;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassbookBookextendsJFrameimplementsActionListener{ Containerc; JLabeljLabel1=newJLabel(); JLabeljLabel2=newJLabel(); JTextFieldsname=newJTextField(10); JTextFieldsuser=newJTextField(10); JButtonbookconfirm=newJButton(); publicbookBook(){ this.setTitle("借閱圖書(shū)"); this.setResizable(false); try{Init();}catch(Exceptione){e.printStackTrace();} //設(shè)置居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); } publicvoidInit()throwsException{ this.setSize(300,500); c=this.getContentPane(); c.setLayout(newFlowLayout()); jLabel1.setText("借閱圖書(shū)名稱:"); jLabel1.setFont(newFont("Dialog",0,12)); c.add(jLabel1); sname.setText(null); sname.setFont(newFont("Dialog",0,12)); c.add(sname); jLabel2.setText("借閱者姓名:"); jLabel2.setFont(newFont("Dialog",0,12)); c.add(jLabel2); suser.setText(null); suser.setFont(newFont("Dialog",0,12)); c.add(suser); bookconfirm.setText("確定"); bookconfirm.setFont(newFont("Dialog",0,12)); c.add(bookconfirm); bookconfirm.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ Objectobj=e.getSource(); if(obj==bookconfirm){ bookBeanrs=newbookBean(); rs.bookBook(sname.getText(),suser.getText()); this.dispose(); } }}bookReturn.javapackagebookDB;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassbookReturnextendsJFrameimplementsActionListener{ Containerc; JLabeljLabel1=newJLabel(); JTextFieldsname=newJTextField(10); JButtonreconfirm=newJButton(); publicbookReturn(){ this.setTitle("歸還圖書(shū)"); this.setResizable(false); try{Init();}catch(Exceptione){e.printStackTrace();} //設(shè)置居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); } publicvoidInit()throwsException{ this.setSize(300,500); c=this.getContentPane(); c.setLayout(newFlowLayout()); jLabel1.setText("歸還圖書(shū)名稱:"); jLabel1.setFont(newFont("Dialog",0,12)); c.add(jLabel1); sname.setText(null); sname.setFont(newFont("Dialog",0,12)); c.add(sname); reconfirm.setText("確定"); reconfirm.setFont(newFont("Dialog",0,12)); c.add(reconfirm); reconfirm.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ Objectobj=e.getSource(); if(obj==reconfirm){ bookBeanrs=newbookBean(); rs.bookReturn(sname.getText()); this.dispose(); } }}bookSearch.javapackagebookDB;importjava.awt.*;importjava.awt.event.*;importjavax.*;publicclassbookSearchextendsJFrameimplementsActionListener{ Containerc; JLabeljLabel1=newJLabel(); JTextFieldsFrom=newJTextField(4); JButtonconfirm=newJButton(); publicbookSearch(){ this.setTitle("按圖書(shū)ID查詢"); this.setResizable(false); try{Init();}catch(Exceptione){e.printStackTrace();} //設(shè)置居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); } publicvoidInit()throwsException{ this.setSize(300,500); c=this.getContentPane(); c.setLayout(newFlowLayout()); jLabel1.setText("請(qǐng)輸入圖書(shū)ID:"); jLabel1.setFont(newFont("Dialog",0,12)); c.add(jLabel1); sFrom.setText(null); sFrom.setFont(newFont("Dialog",0,12)); c.add(sFrom); confirm.setText("確定"); confirm.setFont(newFont("Dialog",0,12)); c.add(confirm); confirm.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ Objectobj=e.getSource(); if(obj==confirm){ Resultbookrs=newResultbook("book_id",sFrom.getText()); this.dispose(); } }}Resultbook.javapackagebookDB;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassResultbookextendsJFrame{ JLabeljLabel1=newJLabel(); JButtonjBExit=newJButton(); JScrollPanejScrollPane1; JTablejTabstuInfo; StringsNum; String[]列名={"圖書(shū)ID","圖書(shū)名","圖書(shū)全部者","圖書(shū)狀態(tài)","使用者"}; String[][]列值; StringsColValue; StringsColName; StringsFromValue; StringsToValue; publicResultbook(Stringcolname,Stringcolvalue){ this.sColValue=colvalue; this.sColName=colname; this.setTitle("圖書(shū)信息查詢結(jié)果"); //--------設(shè)置運(yùn)行位置居中--------- DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45); bookBeanrstu=newbookBean(); try{ 列值=rstu.bookSearch(sColValue); if(列值==null){ JOptionPane.showMessageDialog(null,"沒(méi)有符合條件統(tǒng)計(jì)"); this.dispose(); }else{ jTabstuInfo=newJTable(列值,列名); jScrollPane1=newJScrollPane(jTabstuInfo); this.getContentPane().add(jScrollPane1,BorderLayout.CENTER); this.pack(); this.setVisible(true); } }catch(Exceptione){e.printStackTrace();} }}bookBean.javapackagebookDB;importjava.sql.ResultSet;importjavax.swing.JOptionPane;importbookDB.DatabaseConn;publicclassbookBean{ Stringsql; ResultSetrs=null; Stringsid; Stringsname; Stringsowner; Stringsstatus; Stringsuser; StringcolName; StringcolValue; //-----------------添加圖書(shū)信息------------------ publicvoidbookAdd(Stringid,Stringname,Stringowner){ DatabaseConnDB=newDatabaseConn(); this.sid=id; this.sname=name; this.sowner=owner; this.sstatus="空閑"; this.suser=null; if(sid.equals("")){ JOptionPane.showMessageDialog(null,"請(qǐng)輸入圖書(shū)ID","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); return; } else{ sql="insertintobook(book_id,book_name,book_owner,book_status,book_user)values('"+sid+"','"+sname+"','"+sowner+"','"+sstatus+"','"+suser+"')"; try{DB.OpenConn(); DB.executeUpdate(sql); JOptionPane.showMessageDialog(null,"成功添加一條統(tǒng)計(jì)!"); }catch(Exceptione){ System.out.println(e); JOptionPane.showMessageDialog(null,"保留失敗!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); }finally{DB.closeStmt();DB.closeConn();} } } //-----------------修改圖書(shū)信息------------------ publicvoidbookModify(Stringid,Stringname,Stringowner){ DatabaseConnDB=newDatabaseConn(); this.sid=id; this.sname=name; this.sowner=owner; if(sid.equals("")){ JOptionPane.showMessageDialog(null,"請(qǐng)輸入圖書(shū)ID","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); return; } else{ sql="updatebooksetbook_name='"+sname+"',book_owner='"+sowner+"'wherebook_id="+sid+""; try{DB.OpenConn(); DB.executeUpdate(sql); JOptionPane.showMessageDialog(null,"成功修改一條統(tǒng)計(jì)!"); }catch(Exceptione){ System.out.println(e); JOptionPane.showMessageDialog(null,"更新失敗!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); }finally{DB.closeStmt();DB.closeConn();} } } //-----------------刪除圖書(shū)信息------------------ publicvoidbookDel(Stringid){ DatabaseConnDB=newDatabaseConn(); this.sid=id; sql="deletefrombookwherebook_id="+id+""; try{DB.OpenConn(); DB.executeUpdate(sql); JOptionPane.showMessageDialog(null,"成功刪除一條統(tǒng)計(jì)!"); }catch(Exceptione){ System.out.println(e); JOptionPane.showMessageDialog(null,"刪除失敗!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); }finally{DB.closeStmt();DB.closeConn();} } //------------依據(jù)指定ID查詢圖書(shū)信息------------------ publicString[][]bookSearch(Stringid){ this.colValue=id; DatabaseConnDB=newDatabaseConn(); String[][]sn=null; introw=0; inti=0; sql="select*frombookwherebook_id="+colValue+""; try{ DB.OpenConn(); rs=DB.executeQuery(sql); if(rs.last()){row=rs.getRow(); } if(row==0) {sn=null;} else { sn=newString[row][5]; rs.first(); rs.previous(); while(rs.next()) { sn[i][0]=rs.getString("book_id"
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年工程地質(zhì)三維建模的行業(yè)標(biāo)準(zhǔn)
- 2026年地質(zhì)三維建模在災(zāi)害預(yù)警中的應(yīng)用
- 2026上半年貴州事業(yè)單位聯(lián)考正安縣招聘65人筆試備考試題及答案解析
- 2026年購(gòu)房者行為模式的變化分析
- 2026年自清潔建筑材料的創(chuàng)新與應(yīng)用案例
- 2025年海南省行政管理崗筆試及答案
- 2025年孝南人事考試及答案
- 2026山東濰坊市公立三甲醫(yī)院病房護(hù)士招聘16人考試備考題庫(kù)及答案解析
- 2025年裸考教資筆試題目及答案
- 2025年招聘筆試往年真題及答案
- 施工總平面布置圖范本
- 嬰幼兒輔食添加及食譜制作
- 安全生產(chǎn)標(biāo)準(zhǔn)化對(duì)企業(yè)的影響安全生產(chǎn)
- 關(guān)于若干歷史問(wèn)題的決議(1945年)
- 畢業(yè)論文8000字【6篇】
- 隨訪管理系統(tǒng)功能參數(shù)
- SH/T 0362-1996抗氨汽輪機(jī)油
- GB/T 23280-2009開(kāi)式壓力機(jī)精度
- GB/T 17213.4-2015工業(yè)過(guò)程控制閥第4部分:檢驗(yàn)和例行試驗(yàn)
- FZ/T 73009-2021山羊絨針織品
- GB∕T 5900.2-2022 機(jī)床 主軸端部與卡盤(pán)連接尺寸 第2部分:凸輪鎖緊型
評(píng)論
0/150
提交評(píng)論