版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 圖書館管理系統(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è)中離不開信息處理,這正是計(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)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。圖書管理系統(tǒng)就是為了管理好圖書館信息而設(shè)計(jì)的。</p>
5、<p> 圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對(duì)借書卡的人工檢查進(jìn)行,對(duì)借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò)
6、;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計(jì)算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。</p><p> 數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書館采取手工方式對(duì)圖書借閱情況進(jìn)行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容
7、記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。如要對(duì)很長(zhǎng)時(shí)間以前的圖書進(jìn)行更改就更加困難了。</p><p> 基于這些問題,有必要建立一個(gè)圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書情況。</p><p&
8、gt;<b> 3正 文</b></p><p><b> 3.1功能需求分析</b></p><p> (1)作為學(xué)生對(duì)圖書管理系統(tǒng)的要求有:</p><p> 1. 能按各種方式(比如書名、編號(hào)、作者)查詢圖書館的藏書情況。</p><p> 2. &
9、#160; 能夠方便地借閱圖書、續(xù)借圖書、歸還圖書。</p><p> 3. 能夠查詢自己的基本資料、借閱圖書情況。</p><p> 4. 能夠熟悉圖書管理系統(tǒng)的使用。</p><p> (2)作為圖書管理員,他們對(duì)圖書管理系統(tǒng)的要求有:</p><p> 1. 能方便的對(duì)圖書進(jìn)行錄入
10、登記,注銷陳舊的書籍。</p><p> 2. 能夠方便地對(duì)新生進(jìn)行登記,或注銷已經(jīng)畢業(yè)的學(xué)生信息(基本信息,借閱信息)。</p><p> 3. 能夠隨時(shí)發(fā)布一些諸如各學(xué)院學(xué)生借閱圖書超期情況、館內(nèi)藏書情況、借情況息,以便各學(xué)院能夠隨時(shí)獲知本院學(xué)生的一些借書信息。</p><p><b> 3.2系統(tǒng)用例分析</b&
11、gt;</p><p> 圖書管理系統(tǒng)中包含書籍的采購(gòu)、入庫、編目、出借、歸還、淘汰等功能,以及讀者信息的管理。本系統(tǒng)對(duì)前期的工作進(jìn)行了簡(jiǎn)化,刪掉了書籍的采購(gòu)、入庫、編目等繁瑣的工作,僅對(duì)系統(tǒng)主要部分進(jìn)行分析。為了提高服務(wù)效果,圖書館系統(tǒng)實(shí)行開架閱覽,并為讀者提供客戶端,讀者可以查詢到館藏書目和個(gè)人在借圖書的信息。這項(xiàng)功能也可以通過互聯(lián)網(wǎng)實(shí)現(xiàn)。圖書管理員通過系統(tǒng)記錄圖書的出借和歸還,以及書目的維護(hù)和讀者信息的維
12、護(hù)。</p><p><b> 3.3系統(tǒng)模塊分析</b></p><p> 3.3.1新書入庫模塊:</p><p> (1)新書入庫界面包括圖書相關(guān)的屬性:編號(hào)、書名、作者、類別、出版日期、出版社、定價(jià)、數(shù)量、備注等。</p><p> 3.3.2圖書整理模塊:</p><p> ?。?/p>
13、1)圖書整理界面包括:圖書修改刪除、圖書類別編輯</p><p> 圖書修改刪除界面除了包括圖書的相關(guān)屬性還包括圖書修改功能。</p><p> 圖書類別編輯界面包括對(duì)類別編號(hào)、類別名稱進(jìn)行添加、刪除、修改的功模塊。</p><p> 3.3.3辦借書卡模塊:</p><p> 辦借書卡界面包括借書卡編號(hào)、持借書卡人的姓名、性別、組名
14、、證件號(hào)。</p><p> 3.3.4查詢模塊:</p><p> ?。?)借閱信息查詢:</p><p> 根據(jù)查詢方式如 按借書證號(hào)、按姓名等在文本框中輸入相關(guān)內(nèi)容即可查詢還可查詢到期圖書</p><p> ?。?)圖書信息查詢:</p><p> 查詢方式有:按書號(hào)、按書名、按作者、按類別、按出版社。在關(guān)
15、鍵字中輸入相關(guān)內(nèi)容,點(diǎn)擊“開始查詢”按鈕,在DataList中列出查詢結(jié)果。如果選中“模糊查詢”可查詢更多的相關(guān)信息。</p><p> ?。?)用戶信息查詢:</p><p> 查詢方式有:按借書證號(hào)、按姓名。在關(guān)鍵字框中輸入借書證號(hào)或者讀者姓名。</p><p><b> 組用戶管理模塊:</b></p><p>
16、; (4)組用戶管理界面:</p><p> 操作方式包括:修改、刪除、添加。</p><p> 組用戶信息包括:組編號(hào)、組名稱、最長(zhǎng)天數(shù)、最多本數(shù)。</p><p> 3.3.5圖書借還模塊:</p><p> 圖書借閱界面包括圖書編號(hào)、書名、類別、出版社、出版日期、借書證號(hào)等</p><p> 歸還圖書
17、界面包括圖書的屬性、歸還者的信息。</p><p><b> 4 總結(jié)</b></p><p> 通過完成本次圖書管理系統(tǒng)實(shí)踐,使我系統(tǒng)的經(jīng)歷了一次JAVA軟件開發(fā)的整個(gè)設(shè)計(jì)開發(fā)過程,把所學(xué)的知識(shí)綜合的運(yùn)用到這次實(shí)踐中,重新復(fù)習(xí)了課本上講到的知識(shí),覺得有一種溫故而知新的感覺,通過實(shí)踐同時(shí)也收獲了許多課本上沒有的東西。</p><p>
18、尤其是在開發(fā)圖書管理系統(tǒng)的過程當(dāng)中,也遇到了許多技術(shù)上或者其他方面的困難,但是也算經(jīng)過自己的努力,基本上克服了這些困難。由于我的水平確實(shí)有限,加之也沒有實(shí)際的項(xiàng)目經(jīng)驗(yàn),設(shè)計(jì)時(shí)間短,所以該系統(tǒng)還有許多不盡如人意的地方,比如功能較少,出錯(cuò)處理不夠等多方面問題 ,距離真正實(shí)用的圖書管理系統(tǒng)還有許多差距,但我相信,軟件開發(fā)是一個(gè)不斷完善的過程,我會(huì)在以后得學(xué)習(xí)當(dāng)中繼續(xù)完善的 。</p><p> 在這次設(shè)計(jì)過程中,培養(yǎng)
19、了我的自學(xué)能力,在遇到困難的時(shí)候,能夠認(rèn)真的對(duì)待,不放棄,無論是查看各種書籍還是到圖書館中查找各種資料,想盡一切辦法將這個(gè)問題解決。我總結(jié)了許多編程經(jīng)驗(yàn),這將在以后的學(xué)習(xí)生活中有很大的幫助。</p><p><b> 5、致謝</b></p><p> 感謝那些給我?guī)韼椭臅蚷nternet,還有周邊的同學(xué)們。還要感謝我們的指導(dǎo)老師給我們這么多學(xué)生的文檔認(rèn)真
20、批改,讓我們知道在課程設(shè)計(jì)與實(shí)現(xià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={"圖書編號(hào)","書名","定價(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、 詢 ");</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è)事件偵聽器</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ù)庫</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> { //成功寫入數(shù)據(jù)庫的記錄,追加到表格的末行顯示&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> //查詢數(shù)據(jù)庫</b></p><p> public void search(){</p><p> SearchDialog sd=new SearchDialog(f,"查詢",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除該條圖書信息嗎?"</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、類,用于顯示/編輯圖書信息的一個(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(" 圖書編號(hào) ");</p><p> private JTextField txtID=new JTextField();</p>
59、;<p> private JLabel labBookName=new JLabel(" 圖書名稱 ");</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中顯示圖書信息</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è)事件偵聽器</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> //將圖書單價(jià)由字符
85、串類型轉(zhuǎn)化為Double類型</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> //圖書編號(hào)不為空,且價(jià)格為數(shù)值類型時(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è)定圖書編號(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(" 圖書編號(hào) ");</p><p> private JTextField txtID=new JTextField();</p><p> private JRadioButton radBookName=new JRadioButton(" 圖書名稱 ");</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中顯示查詢條件</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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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圖書館管理系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)——圖書館管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告---圖書館管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告---圖書館管理系統(tǒng)
- java課程設(shè)計(jì)---圖書館信息管理系統(tǒng)
- java數(shù)據(jù)庫課程設(shè)計(jì) 圖書館管理系統(tǒng)
- java數(shù)據(jù)庫課程設(shè)計(jì)---圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設(shè)計(jì)
- java語言課程設(shè)計(jì)---圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 圖書館管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--圖書館管理系統(tǒng)
- java 圖書館管理系統(tǒng)(附全代碼)課程設(shè)計(jì)報(bào)告
- c語言圖書館管理系統(tǒng)課程設(shè)計(jì)---高校圖書館管理系統(tǒng)
- java-圖書館管理系統(tǒng)(附全代碼)-課程設(shè)計(jì)報(bào)告
- 圖書館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書館管理信息------系統(tǒng)課程設(shè)計(jì)
- jsp課程設(shè)計(jì)《圖書館管理系統(tǒng)》
- sqlserver課程設(shè)計(jì)——圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 軟件課程設(shè)計(jì)--圖書館管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論