

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告</p><p><b> 1目錄</b></p><p> 引言----------------------------------------------------------------2</p><p> 正文------------------------------------
2、----------------------------3</p><p> 結(jié)論和建議----------------------------------------------------------4</p><p> 致謝----------------------------------------------------------------5</p>&l
3、t;p> 參考文獻(xiàn)------------------------------------------------------------5</p><p> 附錄------------------------------------------------------------5—20</p><p><b> 2 引 言</b></p>
4、<p> 當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。圖書(shū)管理系統(tǒng)就是為了管理好圖書(shū)館信息而設(shè)計(jì)的。</p>
5、<p> 圖書(shū)館作為一種信息資源的集散地,圖書(shū)和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書(shū)館都是初步開(kāi)始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書(shū)借閱情況(如借書(shū)天數(shù)、超過(guò)限定借書(shū)時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對(duì)借書(shū)卡的人工檢查進(jìn)行,對(duì)借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò)
6、;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩?lái)說(shuō),缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書(shū)館有計(jì)算機(jī),但是尚未用于信息管理,沒(méi)有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開(kāi)發(fā)的基本環(huán)境。</p><p> 數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書(shū)館采取手工方式對(duì)圖書(shū)借閱情況進(jìn)行人工管理,由于信息比較多,圖書(shū)借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書(shū)證上,圖書(shū)的數(shù)目和內(nèi)容
7、記錄在文件中,圖書(shū)館的工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢(xún),就得在眾多的資料中翻閱、查找了,造成查詢(xún)費(fèi)時(shí)、費(fèi)力。如要對(duì)很長(zhǎng)時(shí)間以前的圖書(shū)進(jìn)行更改就更加困難了。</p><p> 基于這些問(wèn)題,有必要建立一個(gè)圖書(shū)管理系統(tǒng),使圖書(shū)管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書(shū)管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢(xún)和修改圖書(shū)情況。</p><p&
8、gt;<b> 3正 文</b></p><p><b> 3.1功能需求分析</b></p><p> ?。?)作為學(xué)生對(duì)圖書(shū)管理系統(tǒng)的要求有:</p><p> 1. 能按各種方式(比如書(shū)名、編號(hào)、作者)查詢(xún)圖書(shū)館的藏書(shū)情況。</p><p> 2. &
9、#160; 能夠方便地借閱圖書(shū)、續(xù)借圖書(shū)、歸還圖書(shū)。</p><p> 3. 能夠查詢(xún)自己的基本資料、借閱圖書(shū)情況。</p><p> 4. 能夠熟悉圖書(shū)管理系統(tǒng)的使用。</p><p> (2)作為圖書(shū)管理員,他們對(duì)圖書(shū)管理系統(tǒng)的要求有:</p><p> 1. 能方便的對(duì)圖書(shū)進(jìn)行錄入
10、登記,注銷(xiāo)陳舊的書(shū)籍。</p><p> 2. 能夠方便地對(duì)新生進(jìn)行登記,或注銷(xiāo)已經(jīng)畢業(yè)的學(xué)生信息(基本信息,借閱信息)。</p><p> 3. 能夠隨時(shí)發(fā)布一些諸如各學(xué)院學(xué)生借閱圖書(shū)超期情況、館內(nèi)藏書(shū)情況、借情況息,以便各學(xué)院能夠隨時(shí)獲知本院學(xué)生的一些借書(shū)信息。</p><p><b> 3.2系統(tǒng)用例分析</b&
11、gt;</p><p> 圖書(shū)管理系統(tǒng)中包含書(shū)籍的采購(gòu)、入庫(kù)、編目、出借、歸還、淘汰等功能,以及讀者信息的管理。本系統(tǒng)對(duì)前期的工作進(jìn)行了簡(jiǎn)化,刪掉了書(shū)籍的采購(gòu)、入庫(kù)、編目等繁瑣的工作,僅對(duì)系統(tǒng)主要部分進(jìn)行分析。為了提高服務(wù)效果,圖書(shū)館系統(tǒng)實(shí)行開(kāi)架閱覽,并為讀者提供客戶端,讀者可以查詢(xún)到館藏書(shū)目和個(gè)人在借圖書(shū)的信息。這項(xiàng)功能也可以通過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)。圖書(shū)管理員通過(guò)系統(tǒng)記錄圖書(shū)的出借和歸還,以及書(shū)目的維護(hù)和讀者信息的維
12、護(hù)。</p><p><b> 3.3系統(tǒng)模塊分析</b></p><p> 3.3.1新書(shū)入庫(kù)模塊:</p><p> (1)新書(shū)入庫(kù)界面包括圖書(shū)相關(guān)的屬性:編號(hào)、書(shū)名、作者、類(lèi)別、出版日期、出版社、定價(jià)、數(shù)量、備注等。</p><p> 3.3.2圖書(shū)整理模塊:</p><p> ?。?/p>
13、1)圖書(shū)整理界面包括:圖書(shū)修改刪除、圖書(shū)類(lèi)別編輯</p><p> 圖書(shū)修改刪除界面除了包括圖書(shū)的相關(guān)屬性還包括圖書(shū)修改功能。</p><p> 圖書(shū)類(lèi)別編輯界面包括對(duì)類(lèi)別編號(hào)、類(lèi)別名稱(chēng)進(jìn)行添加、刪除、修改的功模塊。</p><p> 3.3.3辦借書(shū)卡模塊:</p><p> 辦借書(shū)卡界面包括借書(shū)卡編號(hào)、持借書(shū)卡人的姓名、性別、組名
14、、證件號(hào)。</p><p> 3.3.4查詢(xún)模塊:</p><p> ?。?)借閱信息查詢(xún):</p><p> 根據(jù)查詢(xún)方式如 按借書(shū)證號(hào)、按姓名等在文本框中輸入相關(guān)內(nèi)容即可查詢(xún)還可查詢(xún)到期圖書(shū)</p><p> (2)圖書(shū)信息查詢(xún):</p><p> 查詢(xún)方式有:按書(shū)號(hào)、按書(shū)名、按作者、按類(lèi)別、按出版社。在關(guān)
15、鍵字中輸入相關(guān)內(nèi)容,點(diǎn)擊“開(kāi)始查詢(xún)”按鈕,在DataList中列出查詢(xún)結(jié)果。如果選中“模糊查詢(xún)”可查詢(xún)更多的相關(guān)信息。</p><p> ?。?)用戶信息查詢(xún):</p><p> 查詢(xún)方式有:按借書(shū)證號(hào)、按姓名。在關(guān)鍵字框中輸入借書(shū)證號(hào)或者讀者姓名。</p><p><b> 組用戶管理模塊:</b></p><p>
16、; ?。?)組用戶管理界面:</p><p> 操作方式包括:修改、刪除、添加。</p><p> 組用戶信息包括:組編號(hào)、組名稱(chēng)、最長(zhǎng)天數(shù)、最多本數(shù)。</p><p> 3.3.5圖書(shū)借還模塊:</p><p> 圖書(shū)借閱界面包括圖書(shū)編號(hào)、書(shū)名、類(lèi)別、出版社、出版日期、借書(shū)證號(hào)等</p><p> 歸還圖書(shū)
17、界面包括圖書(shū)的屬性、歸還者的信息。</p><p><b> 4 總結(jié)</b></p><p> 通過(guò)完成本次圖書(shū)管理系統(tǒng)實(shí)踐,使我系統(tǒng)的經(jīng)歷了一次JAVA軟件開(kāi)發(fā)的整個(gè)設(shè)計(jì)開(kāi)發(fā)過(guò)程,把所學(xué)的知識(shí)綜合的運(yùn)用到這次實(shí)踐中,重新復(fù)習(xí)了課本上講到的知識(shí),覺(jué)得有一種溫故而知新的感覺(jué),通過(guò)實(shí)踐同時(shí)也收獲了許多課本上沒(méi)有的東西。</p><p>
18、尤其是在開(kāi)發(fā)圖書(shū)管理系統(tǒng)的過(guò)程當(dāng)中,也遇到了許多技術(shù)上或者其他方面的困難,但是也算經(jīng)過(guò)自己的努力,基本上克服了這些困難。由于我的水平確實(shí)有限,加之也沒(méi)有實(shí)際的項(xiàng)目經(jīng)驗(yàn),設(shè)計(jì)時(shí)間短,所以該系統(tǒng)還有許多不盡如人意的地方,比如功能較少,出錯(cuò)處理不夠等多方面問(wèn)題 ,距離真正實(shí)用的圖書(shū)管理系統(tǒng)還有許多差距,但我相信,軟件開(kāi)發(fā)是一個(gè)不斷完善的過(guò)程,我會(huì)在以后得學(xué)習(xí)當(dāng)中繼續(xù)完善的 。</p><p> 在這次設(shè)計(jì)過(guò)程中,培養(yǎng)
19、了我的自學(xué)能力,在遇到困難的時(shí)候,能夠認(rèn)真的對(duì)待,不放棄,無(wú)論是查看各種書(shū)籍還是到圖書(shū)館中查找各種資料,想盡一切辦法將這個(gè)問(wèn)題解決。我總結(jié)了許多編程經(jīng)驗(yàn),這將在以后的學(xué)習(xí)生活中有很大的幫助。</p><p><b> 5、致謝</b></p><p> 感謝那些給我?guī)?lái)幫助的書(shū)籍和internet,還有周邊的同學(xué)們。還要感謝我們的指導(dǎo)老師給我們這么多學(xué)生的文檔認(rèn)真
20、批改,讓我們知道在課程設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程中存在的問(wèn)題。</p><p><b> 6、參考文獻(xiàn)</b></p><p> [1] 王克宏、郝建文. Java技術(shù)教程 [M]. 北京:清華大學(xué)出版社,2002年</p><p> [2] 基于JAVA的學(xué)生信息管理系統(tǒng) 李偉 電子科技大學(xué) 【碩士】電子科技大學(xué) 2009-04-01
21、 0 578 </p><p> [3] J2EE框架及全文檢索技術(shù)在信息管理系統(tǒng)中的應(yīng)用 徐立峰 電子科技大學(xué) 【碩士】電子科技大學(xué) 2009-10-01 </p><p><b> 7、附錄</b></p><p><b> 附部分主要源代碼:</b></p><p>
22、; import javax.swing.*; </p><p> import java.awt.*;</p><p> import java.awt.event.*; </p><p> import javax.swing.table.*;</p><p> import java.sql.*;</p&
23、gt;<p> import edu.njust.cs.*;</p><p> public class SimpleBookManager{</p><p> public static void main(String []args){</p><p> SetFont.setFont(new Font("楷體", 0,
24、 12));</p><p> Connection con=null;</p><p><b> try{</b></p><p> con=SqlUtil.acquireConnection("127.0.0.1",</p><p> "1433","book
25、Test","admin","xyz");</p><p> }catch(Exception e){</p><p> System.out.println(e);</p><p> System.exit(-1);</p><p><b> }</b><
26、/p><p> if(con!=null){</p><p> JFrame f=new JFrame();</p><p> f.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p>&
27、lt;p> System.exit(0);</p><p><b> }</b></p><p><b> });</b></p><p> f.getContentPane().add(new BookManager(f,con));</p><p> f.setSize(6
28、00,400);</p><p><b> f.show();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> class Boo
29、kManager extends JPanel implements ActionListener{</p><p> private String [] columnNames={"圖書(shū)編號(hào)","書(shū)名","定價(jià)","出版社"};</p><p> private Class []dataType={Str
30、ing.class,String.class,Double.class,String.class};</p><p> private CustomTableModel model=null;</p><p> private JTable table=null;</p><p> private Connection con=null;</p>
31、;<p> private JButton btnAdd=new TextAndPicButton("image/addrow20.gif"," 增 加 ");</p><p> private JButton btnSearch=new TextAndPicButton("image/search20.gif"," 查
32、 詢(xún) ");</p><p> private JButton btnDelete=new TextAndPicButton("image/deleterow20.gif"," 刪 除 ");</p><p> private JButton btnExit=new TextAndPicButton("image/exi
33、t20.gif"," 退 出 ");</p><p> private JFrame f=null;</p><p> public BookManager(JFrame f,Connection con){</p><p><b> this.f=f;</b></p><p>
34、 this.con=con;</p><p><b> //構(gòu)建工具條</b></p><p> JToolBar toolBar=new JToolBar();</p><p> toolBar.add(btnAdd);</p><p> toolBar.add(btnSearch);</p>&
35、lt;p> toolBar.add(btnDelete);</p><p> toolBar.add(btnExit);</p><p><b> //注冊(cè)事件偵聽(tīng)器</b></p><p> btnAdd.addActionListener(this);</p><p> btnSearch.add
36、ActionListener(this);</p><p> btnDelete.addActionListener(this);</p><p> btnExit.addActionListener(this);</p><p><b> //構(gòu)建表格</b></p><p> model=new Cust
37、omTableModel(0,columnNames.length,columnNames,dataType);</p><p> table = new JTable(model); </p><p> table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);</p><p> table.setSelection
38、Mode(ListSelectionModel.SINGLE_SELECTION );</p><p> //設(shè)定表格每列的寬度</p><p> setTableColumnWidth(0,100);</p><p> setTableColumnWidth(1,200);</p><p> setTableColumnWidth(
39、2,100);</p><p> setTableColumnWidth(3,250);</p><p> //布局工具條及表格</p><p> this.setLayout(new BorderLayout());</p><p> this.add(toolBar,BorderLayout.NORTH);</p&g
40、t;<p> this.add(new JScrollPane(table),BorderLayout.CENTER);</p><p><b> }</b></p><p> //設(shè)置表格指定列的寬度</p><p> public void setTableColumnWidth(int column,int
41、width){</p><p> if(column<columnNames.length&&column>=0){</p><p> TableColumn col=table.getColumn(columnNames[column]);</p><p> col.setPreferredWidth(width);</
42、p><p><b> }</b></p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e){</p><p> Object s=e.getSource();</p><p> if(s
43、==this.btnAdd) add();</p><p> else if(s==this.btnSearch)search();</p><p> else if(s==this.btnDelete) delete();</p><p> else if(s==this.btnExit) System.exit(0);</p><p&
44、gt;<b> }</b></p><p> //增加一條記錄到數(shù)據(jù)庫(kù)</p><p> public void add(){</p><p> BookEditor be=new BookEditor(f,"增加",true);</p><p> be.show();</p>
45、<p> //只有點(diǎn)擊了信息對(duì)話框中的確定按鈕,才增加記錄</p><p> if(be.getActionCode()==be.OK){</p><p> String insertSql="insert into bookInfo VALUES (?,?,?,?)";</p><p> Object []lineForDB
46、Add={be.getID(),be.getBookName(),</p><p> be.getBookPrice(),be.getBookPress()};</p><p> if(SqlUtil.addRowToDB(con,insertSql,lineForDBAdd))</p><p> { //成功寫(xiě)入數(shù)據(jù)庫(kù)的記錄,追加到表格的末行顯示&l
47、t;/p><p> Object []lineForTable=</p><p> SqlUtil.getLineForTableFromLineForDB(lineForDBAdd,dataType);</p><p> model.insertRow(model.getRowCount(),lineForTable);</p><p>
48、 //將表格的最后一行選中</p><p> table.changeSelection(model.getRowCount()-1,0,false,false);</p><p><b> }</b></p><p><b> else</b></p><p> JOptionPan
49、e.showMessageDialog(this,"新增時(shí)出錯(cuò)!",</p><p> "提示",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }</b></p><p><b> }</b></p><
50、;p><b> //查詢(xún)數(shù)據(jù)庫(kù)</b></p><p> public void search(){</p><p> SearchDialog sd=new SearchDialog(f,"查詢(xún)",true);</p><p> sd.show();</p><p> if(sd.g
51、etActionCode()==sd.OK){</p><p> String readSql=sd.getSQL();</p><p> SqlUtil.readDBToTable(con,readSql,model,dataType);</p><p><b> }</b></p><p><b>
52、 }</b></p><p><b> //刪除選定的記錄</b></p><p> public void delete(){</p><p> int selected=table.getSelectedRow();</p><p> if(selected>=0&&sele
53、cted<model.getRowCount()){</p><p> int result=JOptionPane.showConfirmDialog (f,"您確定要?jiǎng)h除該條圖書(shū)信息嗎?"</p><p> ,"確認(rèn)",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);&l
54、t;/p><p> if (result!=JOptionPane.YES_OPTION)return ;</p><p> String deleteSql="delete from bookInfo where bookID=?";</p><p> Object []keys={model.getValueAt(selected,0).
55、toString()};</p><p> if(SqlUtil.deleteFromDB(con,deleteSql,keys))</p><p> model.removeRow(selected);</p><p><b> }</b></p><p><b> else</b><
56、;/p><p> JOptionPane.showMessageDialog(f,"請(qǐng)選定要?jiǎng)h除的一行!"</p><p> ,"提示",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }</b></p><p> //內(nèi)部
57、類(lèi),用于顯示/編輯圖書(shū)信息的一個(gè)模式對(duì)話框</p><p> class BookEditor extends JDialog implements ActionListener{</p><p> final int OK=1;</p><p> final int CANCEL=-1;</p><p> final int
58、 CLOSE=0;</p><p> private int actionCode=CANCEL;</p><p> private JLabel labID=new JLabel(" 圖書(shū)編號(hào) ");</p><p> private JTextField txtID=new JTextField();</p>
59、;<p> private JLabel labBookName=new JLabel(" 圖書(shū)名稱(chēng) ");</p><p> private JTextField txtBookName=new JTextField();</p><p> private JLabel labBookPrice=new JLabel(" 單
60、 價(jià) ");</p><p> private JTextField txtBookPrice=new JTextField();</p><p> private JLabel labBookPress=new JLabel(" 出 版 社 ");</p><p> private JTextFi
61、eld txtBookPress=new JTextField();</p><p> private JButton btnPre=new JButton("上一個(gè)");</p><p> private JButton btnNext=new JButton("下一個(gè)"); </p><p> p
62、rivate JButton btnOk=new JButton("確定");</p><p> private JButton btnCancel=new JButton("取消");</p><p> private JFrame f=null;</p><p> public BookEditor(JFrame f
63、,String s,boolean b){</p><p> super(f,s,b);</p><p><b> this.f=f;</b></p><p> //面板p中顯示圖書(shū)信息</p><p> JPanel p=new JPanel();</p><p> p.setLay
64、out(new GridBagLayout());</p><p> LayoutUtil.add(p,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,0,0,1,1,labID);</p><p> LayoutUtil.add(p,GridBagConstraints.HORI
65、ZONTAL,</p><p> GridBagConstraints.CENTER,100,0,1,0,1,1,txtID);</p><p> LayoutUtil.add(p,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,2,0,1,1,labBookName);</
66、p><p> LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p> GridBagConstraints.CENTER,100,0,3,0,1,1,txtBookName);</p><p> LayoutUtil.add(p,GridBagConstraints.NONE,</p>
67、<p> GridBagConstraints.CENTER,0,0,0,1,1,1,labBookPrice);</p><p> LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p> GridBagConstraints.CENTER,100,0,1,1,1,1,txtBookPrice);</p>
68、<p> LayoutUtil.add(p,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,2,1,1,1,labBookPress);</p><p> LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p>
69、 GridBagConstraints.CENTER,100,0,3,1,1,1,txtBookPress);</p><p><b> //注冊(cè)事件偵聽(tīng)器</b></p><p> btnOk.addActionListener(this);</p><p> btnCancel.addActionListener(this);<
70、;/p><p> btnPre.addActionListener(this);</p><p> btnNext.addActionListener(this);</p><p> btnOk.setIcon(new ImageIcon("image/ok20.gif"));</p><p> btnCan
71、cel.setIcon(new ImageIcon("image/cancel20.gif"));</p><p> btnPre.setIcon(new ImageIcon("image/pre20.gif"));</p><p> btnNext.setIcon(new ImageIcon("image/next20.gif&quo
72、t;));</p><p> btnNext.setHorizontalTextPosition(SwingConstants.LEFT);</p><p> //在增加模式下前后移動(dòng)按鈕置為不可用</p><p> //讀者擴(kuò)展該程序具有編輯功能時(shí),可以將前后移動(dòng)按鈕置為可用</p><p> if(s.equals(&quo
73、t;增加")){</p><p> btnPre.setEnabled(false);</p><p> btnNext.setEnabled(false);</p><p><b> }</b></p><p> //面板ap中顯示4個(gè)按鈕</p><p> JPane
74、l ap=new JPanel();</p><p> ap.setLayout(new GridBagLayout());</p><p> LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,0,0,1,1,this.btnPre);</p
75、><p> LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,1,0,1,1,this.btnNext);</p><p> LayoutUtil.add(ap,GridBagConstraints.HORIZONTAL,</p><
76、;p> GridBagConstraints.CENTER,100,0,2,0,1,1,new JLabel());</p><p> LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,3,0,1,1,this.btnOk);</p><p>
77、; LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,4,0,1,1,this.btnCancel);</p><p> getContentPane().add(p,BorderLayout.CENTER);</p><p> getConte
78、ntPane().add(ap,BorderLayout.SOUTH);</p><p> //將對(duì)話框窗口定位在父窗口的居中位置</p><p> setSizeAndPosition(550,120);</p><p> this.addWindowListener(new WindowAdapter(){</p><p>
79、 public void windowClosing(WindowEvent e){</p><p> actionCode=CLOSE;</p><p><b> }</b></p><p><b> });</b></p><p><b> }</b><
80、/p><p> //將對(duì)話框窗口定位在父窗口的居中位置</p><p> public void setSizeAndPosition(int w,int h){</p><p> this.setSize(w,h);</p><p> Dimension d=f.getSize();</p><p> Poin
81、t pp=f.getLocation();</p><p> this.setLocation(pp.x+(d.width-w)/2,pp.y+(d.height-h)/2);</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e){</p>
82、<p> Object s=e.getSource();</p><p> if(s==this.btnCancel){</p><p> this.actionCode=this.CANCEL;</p><p> this.setVisible(false);</p><p><b> }</b&g
83、t;</p><p> else if(s==this.btnOk) okClicked();</p><p><b> }</b></p><p> public String getID(){</p><p> return txtID.getText().trim();</p>
84、<p><b> }</b></p><p> public String getBookName(){</p><p> return txtBookName.getText().trim();</p><p><b> }</b></p><p> //將圖書(shū)單價(jià)由字符
85、串類(lèi)型轉(zhuǎn)化為Double類(lèi)型</p><p> //如果不是合法的數(shù)值字符串,取值Double.NEGATIVE_INFINITY</p><p> public Double getBookPrice(){</p><p> double result=Double.NEGATIVE_INFINITY;</p><p><b&g
86、t; try{</b></p><p> result=Double.parseDouble(this.txtBookPrice.getText().trim());</p><p> }catch(Exception e){</p><p> result=Double.NEGATIVE_INFINITY;</p><p&g
87、t;<b> }</b></p><p> return new Double(result);</p><p><b> }</b></p><p> public String getBookPress(){</p><p> return txtBookPress.getText()
88、.trim();</p><p><b> }</b></p><p> public int getActionCode(){</p><p> return this.actionCode;</p><p><b> }</b></p><p> public
89、void okClicked(){</p><p> //圖書(shū)編號(hào)不為空,且價(jià)格為數(shù)值類(lèi)型時(shí) 隱藏對(duì)話框</p><p> if(!this.txtID.getText().trim().equals("")){</p><p><b> try{</b></p><p> Double.p
90、arseDouble(this.txtBookPrice.getText().trim());</p><p> }catch(Exception e){</p><p> JOptionPane.showMessageDialog(f,"價(jià)格非法!","提示",</p><p> JOptionPane.INFORMA
91、TION_MESSAGE);</p><p><b> return ;</b></p><p><b> }</b></p><p> this.actionCode=this.OK;</p><p> this.setVisible(false);</p><p&g
92、t;<b> }</b></p><p><b> else</b></p><p> JOptionPane.showMessageDialog(f,"請(qǐng)?jiān)O(shè)定圖書(shū)編號(hào)!","提示",</p><p> JOptionPane.INFORMATION_MESSAGE);&l
93、t;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> class SearchDialog extends JDialog implements ActionListener{</p>
94、;<p> final int OK=1;</p><p> final int CANCEL=-1;</p><p> final int CLOSE=0;</p><p> private int actionCode=CANCEL;</p><p> private JRadioButton rad
95、ID=new JRadioButton(" 圖書(shū)編號(hào) ");</p><p> private JTextField txtID=new JTextField();</p><p> private JRadioButton radBookName=new JRadioButton(" 圖書(shū)名稱(chēng) ");</p><p
96、> private JTextField txtBookName=new JTextField();</p><p> private JRadioButton radBookPress=new JRadioButton(" 出 版 社 ");</p><p> private JTextField txtBookPress=new JTextFi
97、eld();</p><p> private JButton btnOk=new JButton("確定(Yes)");</p><p> private JButton btnCancel=new JButton("取消(Esc)");</p><p> private JFrame f=null;</p&g
98、t;<p> public SearchDialog(JFrame f,String s,boolean b){</p><p> super(f,s,b);</p><p><b> this.f=f;</b></p><p> ButtonGroup group=new ButtonGroup();</p&g
99、t;<p> group.add(radID);</p><p> group.add(radBookName);</p><p> group.add(radBookPress);</p><p> txtID.setEditable(false);</p><p> radBookName.setSelecte
100、d(true);</p><p> txtBookPress.setEditable(false);</p><p> radID.addActionListener(this);</p><p> radBookName.addActionListener(this);</p><p> radBookPress.addActi
101、onListener(this);</p><p> //面板p中顯示查詢(xún)條件</p><p> JPanel p=new JPanel();</p><p> p.setLayout(new GridBagLayout());</p><p> LayoutUtil.add(p,GridBagConstraints.NONE,&
102、lt;/p><p> GridBagConstraints.CENTER,0,0,0,0,1,1,radID);</p><p> LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p> GridBagConstraints.CENTER,100,0,1,0,1,1,txtID);</p>&
103、lt;p> LayoutUtil.add(p,GridBagConstraints.NONE,</p><p> GridBagConstraints.WEST,0,0,0,1,1,1,radBookName);</p><p> LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p> Grid
104、BagConstraints.CENTER,100,0,1,1,1,1,txtBookName);</p><p> LayoutUtil.add(p,GridBagConstraints.NONE,</p><p> GridBagConstraints.CENTER,0,0,0,2,1,1,radBookPress);</p><p> LayoutUti
105、l.add(p,GridBagConstraints.HORIZONTAL,</p><p> GridBagConstraints.CENTER,100,0,1,2,1,1,txtBookPress);</p><p> btnOk.setIcon(new ImageIcon("image/ok20.gif"));</p><p> bt
106、nCancel.setIcon(new ImageIcon("image/cancel20.gif"));</p><p> btnOk.addActionListener(this);</p><p> btnCancel.addActionListener(this);</p><p> //面板ap中顯示確定 取消按鈕<
107、/p><p> JPanel ap=new JPanel();</p><p> ap.add(btnOk);</p><p> ap.add(btnCancel);</p><p> getContentPane().add(p,BorderLayout.CENTER);</p><p> getConte
108、ntPane().add(ap,BorderLayout.SOUTH);</p><p> setSizeAndPosition(300,200);</p><p> this.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){&
109、lt;/p><p> actionCode=CLOSE;</p><p><b> }</b></p><p><b> });</b></p><p><b> }</b></p><p> //將對(duì)話框窗口定位在父窗口的居中位置</p&
110、gt;<p> public void setSizeAndPosition(int w,int h){</p><p> this.setSize(w,h);</p><p> Dimension d=f.getSize();</p><p> Point pp=f.getLocation();</p><p> t
111、his.setLocation(pp.x+(d.width-w)/2,pp.y+(d.height-h)/2);</p><p><b> }</b></p><p> public void setTxtEditable(boolean b1,boolean b2,boolean b3){</p><p> txtID.setEdita
112、ble(b1);</p><p> txtBookName.setEditable(b2);</p><p> txtBookPress.setEditable(b3);</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e){
113、</p><p> Object s=e.getSource();</p><p> if(s==this.radID)setTxtEditable(true,false,false);</p><p> else if(s==this.radBookName)setTxtEditable(false,true,false);</p><
114、;p> else if(s==this.radBookPress)setTxtEditable(false,false,true);</p><p> else if(s==this.btnOk){</p><p> this.actionCode=this.OK;</p><p> this.setVisible(false);</p>
115、<p><b> }</b></p><p> else if(s==this.btnCancel){</p><p> this.actionCode=this.CANCEL;</p><p> this.setVisible(false);</p><p><b> }</b&
116、gt;</p><p><b> }</b></p><p> public int getActionCode(){</p><p> return actionCode;</p><p><b> }</b></p><p> public String get
117、SQL(){</p><p> String sql="select * from bookInfo where ";</p><p> if(radID.isSelected())</p><p> sql=sql+" bookID like '%"+txtID.getText().trim()+"%
118、'";</p><p> else if(radBookName.isSelected())</p><p> sql=sql+" bookName like '%"+txtBookName.getText().trim()+"%'";</p><p> else if(radBookP
119、ress.isSelected())</p><p> sql=sql+" bookPress like '%"+txtBookPress.getText().trim()+"%'";</p><p> return sql;</p><p><b> }</b></p>
120、<p><b> }</b></p><p> package edu.njust.cs;</p><p> import java.sql.*;</p><p> import javax.swing.*;</p><p> import java.util.*;</p><
121、p> import java.io.*;</p><p> public class SqlUtil{</p><p><b> //讀入配置文件</b></p><p> public static Properties loadProperty(String fileName){</p><p> P
122、roperties prop=new Properties();</p><p><b> try{</b></p><p> FileInputStream in=new FileInputStream(</p><p> System.getProperties().get("user.dir")+"
123、;/"+fileName);</p><p> prop.load(in);</p><p> in.close();</p><p> }catch(IOException e){</p><p> e.printStackTrace();</p><p> JOptionPane.sho
124、wMessageDialog(null,</p><p> "配置文件丟失!\n建議重新安裝程序",</p><p><b> "信息",</b></p><p> JOptionPane.ERROR_MESSAGE);</p><p> prop=null;</p&
125、gt;<p><b> }</b></p><p> return prop;</p><p><b> }</b></p><p> //建立和MS SQL SERVER的連接</p><p> public static Connection acquireConnec
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)——圖書(shū)館管理系統(tǒng)
- java圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)
- java課程設(shè)計(jì)---圖書(shū)館信息管理系統(tǒng)
- java數(shù)據(jù)庫(kù)課程設(shè)計(jì) 圖書(shū)館管理系統(tǒng)
- java數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)
- java 圖書(shū)館管理系統(tǒng)(附全代碼)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)--圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)
- java語(yǔ)言課程設(shè)計(jì)---圖書(shū)館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- java 圖書(shū)館管理系統(tǒng)(附全代碼)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)---高校圖書(shū)館管理系統(tǒng)
- java-圖書(shū)館管理系統(tǒng)(附全代碼)-課程設(shè)計(jì)報(bào)告
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)館管理信息------系統(tǒng)課程設(shè)計(jì)
- jsp課程設(shè)計(jì)《圖書(shū)館管理系統(tǒng)》
- sqlserver課程設(shè)計(jì)——圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論