版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)學(xué)與計(jì)算機(jī)學(xué)院</b></p><p><b> 課程設(shè)計(jì)說(shuō)明書(shū)</b></p><p> 課 程 名 稱:數(shù)據(jù)結(jié)構(gòu)與算法B綜合課程設(shè)計(jì)</p><p> 課 程 代 碼: </p><p> 題
2、目: 圖書(shū)管理系統(tǒng) </p><p> 年級(jí)/專業(yè)/班: </p><p> 學(xué) 生 姓 名: </p><p> 學(xué) 號(hào):
3、</p><p> 開(kāi) 始 時(shí) 間: 2011 年 12 月 08 日</p><p> 完 成 時(shí) 間: 2011 年 12 月 24 日</p><p><b> 課程設(shè)計(jì)成績(jī):</b></p><p> 指導(dǎo)教師簽名: 年 月 日</p>
4、;<p><b> 目 錄 </b></p><p><b> 摘要</b></p><p><b> 1 前言1</b></p><p> 1.1 問(wèn)題的提出1</p><p> 1.2 任務(wù)與分析1</p><p>
5、 2.軟件總體設(shè)計(jì)3</p><p> 2.1 開(kāi)發(fā)工具3</p><p> 2.2 系統(tǒng)框圖3</p><p> 2.3 模塊功能5</p><p> 2.3.1 圖書(shū)入庫(kù)..5</p><p> 2.3.2 清楚圖書(shū)5</p><p> 2.3.3 顯示庫(kù)存…5&
6、lt;/p><p> 2.3.4 讀者借閱.....................................................................................................................5</p><p> 2.3.5 讀者歸還.....................................
7、................................................................................5</p><p> 2.3.6 借閱查詢….........................................................................................................
8、........5</p><p> 3 軟件界面設(shè)計(jì)6</p><p> 3.1 控件介紹6</p><p><b> 3.2 窗體6</b></p><p> 3.3 文本編輯框6</p><p> 3.4 下拉列表框6</p><p><b&
9、gt; 3.5 密碼框6</b></p><p><b> 3.6 表格6</b></p><p> 3.7 菜單欄組件7</p><p> 4 功能詳細(xì)設(shè)計(jì)8</p><p> 4.1 界面登陸8</p><p> 4.2 新書(shū)錄入9</p>&
10、lt;p> 4.3 清楚圖書(shū)庫(kù)存10</p><p> 4.4 圖書(shū)借閱11</p><p> 4.5 圖書(shū)歸還13</p><p> 4.6 借閱顯示15</p><p> 4.7 軟件使用說(shuō)明15</p><p><b> 5 軟件測(cè)試17</b></p&g
11、t;<p><b> 結(jié) 論28</b></p><p><b> 致 謝29</b></p><p><b> 參考文獻(xiàn)30</b></p><p><b> 摘 要</b></p><p> 隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的飛速
12、發(fā)展,Internet/Intranet應(yīng)用在全球范圍內(nèi)日益普及,當(dāng)今社會(huì)正快速向信息化社會(huì)前進(jìn),信息自動(dòng)化的作用也越來(lái)越大。從而使我們從繁雜的事務(wù)中解放出來(lái),提高了我們的工作效率。</p><p> 目前學(xué)校圖書(shū)館的借閱工作部分還是手工管理,工作效率很低,并且不能及時(shí)了解圖書(shū)的種類(lèi)和學(xué)生們比較需求的圖書(shū)等,不能更好的適應(yīng)當(dāng)前學(xué)生的借閱要求。手工管理還存在這許多弊端,由于不可避免的人為因素,造成數(shù)據(jù)的遺漏、誤報(bào)
13、。計(jì)算機(jī)信息化管理有著儲(chǔ)存量大,速度快等許多優(yōu)點(diǎn),提供給我們的處理信息及時(shí)快捷,因此我們利用計(jì)算機(jī)提供給我們的信息對(duì)學(xué)生們的借閱過(guò)程形成一整套動(dòng)態(tài)的管理。</p><p> 本系統(tǒng)將會(huì)涉及到圖書(shū)館日常管理工作的基本常見(jiàn)細(xì)節(jié),諸如新圖書(shū)的入庫(kù)登記,圖書(shū)館所有書(shū)籍的分類(lèi)管理,圖書(shū)的查詢,圖書(shū)的借閱、退還手續(xù)的登記,費(fèi)舊圖書(shū)的清理撤除等,本系統(tǒng)所要實(shí)現(xiàn)的這些功能基本上涵蓋了圖書(shū)館的日常管理工作,基本能夠滿足校園圖書(shū)館
14、的工作人員的管理需要。</p><p> 在對(duì)本系統(tǒng)的具體開(kāi)發(fā)過(guò)程當(dāng)中,將采用Java語(yǔ)言進(jìn)行開(kāi)發(fā),以文本文件實(shí)現(xiàn)后臺(tái)數(shù)據(jù)庫(kù),本系統(tǒng)是完全基于圖形化用戶界面(GUI)的單機(jī)版本。</p><p> 關(guān)鍵詞:信息化 軟件工程 軟件生命周期 圖形化用戶界面</p><p><b> Abstract</b></p><p&
15、gt; The full name of our System is: The Management Information System of Campus’s Library. At present, the computer technology is developing ever-growing, and the campus’s information construction also have pushing on,
16、by contrast, the method of management in many university library is still by man, the library’workers must face to the large number of books, and also face to fall into the trouble. Actually, the work can be done by the
17、computer which have a management information system. Then the hea</p><p> This is the goal which our system want to achieve finally.</p><p> The principle of development to our system will be
18、following with Software Engineering, we use the traditional model which be called Waterfall, and the course of development will be divided into six stage. We will develop the system in sequence.</p><p> Our
19、 system contains many operations about library’s everyday work, such as Register New Books, Classify Books according to their subjects, Find Books, Dispose old books, and so on, our system can finish all of the work, and
20、 can meet the requirements of the library’sworkers.</p><p> During the development of our system, we use the tool of JAVA to develop it, our system is on the basis of the Access Database.</p><p&g
21、t;<b> 1 前言 </b></p><p><b> 1.1 問(wèn)題的提出</b></p><p> 首先,圖書(shū)館的管理直接關(guān)系到我們大學(xué)生如何更好的使用圖書(shū),更充分的利用現(xiàn)有資源學(xué)習(xí),提高自身素質(zhì)。針對(duì)當(dāng)今的大學(xué)圖書(shū)館藏書(shū)越來(lái)越多,學(xué)生借書(shū)越來(lái)越頻繁,圖書(shū)管理較為繁瑣,圖書(shū)館管理工作人員付出的工作時(shí)間越來(lái)越多,得到的效率卻很低這個(gè)現(xiàn)狀
22、。為提高工作效率,減輕圖書(shū)館工作人員的工作負(fù)擔(dān),決定開(kāi)發(fā)學(xué)校圖書(shū)館管理系統(tǒng)軟件,以幫助更好的實(shí)現(xiàn)圖書(shū)館的管理,讓我們能更便捷的借閱圖書(shū),讓老師能花最少的時(shí)間辦理好借閱圖書(shū)手續(xù)。</p><p> 開(kāi)發(fā)此圖書(shū)館管理系統(tǒng)軟件,也是對(duì)實(shí)現(xiàn)數(shù)字化圖書(shū)館管理的支持,現(xiàn)今各大學(xué)普遍存在著一個(gè)現(xiàn)象,圖書(shū)的借閱手續(xù)都是由專門(mén)的老師來(lái)實(shí)現(xiàn)辦理的,每當(dāng)借閱高峰期時(shí),排隊(duì)借書(shū)的場(chǎng)面屢見(jiàn)不鮮,這樣即耗費(fèi)時(shí)間又使原本不太大的借書(shū)大廳擁擠
23、不堪。圖書(shū)館管理系統(tǒng)的實(shí)現(xiàn),可以著眼于數(shù)字化借閱,簡(jiǎn)化學(xué)生圖書(shū)查詢流程,簡(jiǎn)化圖書(shū)外借登記手續(xù),即提高借閱效率又可實(shí)現(xiàn)圖書(shū)借閱的完整進(jìn)出記錄,保證圖書(shū)的合理使用,讓廣大師生受益。</p><p><b> 1.2 任務(wù)與分析</b></p><p> 本課題主要的任務(wù)是設(shè)計(jì)一個(gè)圖書(shū)管理系統(tǒng),實(shí)現(xiàn)對(duì)圖書(shū)的采編入庫(kù),清除,查找,借閱,歸還以及顯示功能</p>
24、<p> 1.基于圖形用戶界面(GUI)的標(biāo)準(zhǔn)“Windows” 應(yīng)用程序。</p><p> 2.初始輸入數(shù)據(jù):自由輸入。</p><p><b> 3.基本要求:</b></p><p> ?。?)每種書(shū)的登記內(nèi)容至少包括書(shū)號(hào)、書(shū)名、著者、現(xiàn)存量和總庫(kù)存量等五項(xiàng)。</p><p> ?。?)由于圖
25、書(shū)管理的基本業(yè)務(wù)活動(dòng)都是通過(guò)書(shū)號(hào)(即關(guān)鍵字)進(jìn)行的,所以要用對(duì)書(shū)號(hào) 索引,以獲得高效率。</p><p> 系統(tǒng)應(yīng)實(shí)現(xiàn)的基本功能有:</p><p> ?。?)采編入庫(kù):新購(gòu)入一種書(shū),經(jīng)分類(lèi)和確定書(shū)號(hào)之后登記到圖書(shū)帳目中去。如果這兩種書(shū)在帳中已有,則只將總庫(kù)存量增加。</p><p> (2)清除庫(kù)存:某種書(shū)已無(wú)保留價(jià)值,將它從圖書(shū)帳目中注銷(xiāo)。</p>
26、;<p> ?。?)借閱:如果一種書(shū)的現(xiàn)存量大于零,則借出一本,登記借閱者的圖書(shū)證號(hào)和歸還期限。</p><p> ?。?)歸還:注銷(xiāo)對(duì)借閱者的登記,改變?cè)摃?shū)的現(xiàn)存量。</p><p> (5)顯示:以凹入表的形式顯示B樹(shù)。這個(gè)操作是為了調(diào)試和維護(hù)的目的而設(shè)置的。</p><p><b> 4.界面設(shè)計(jì)總要求</b></
27、p><p> ?。?)操作流程簡(jiǎn)便合理,操作界面美觀自然,符合用戶一般操作習(xí)慣。</p><p> ?。?)界面簡(jiǎn)潔美觀,配色和諧,比例合適,符合大多數(shù)人的審美趣向。</p><p> 5.菜單設(shè)置“使用說(shuō)明”,介紹本軟件開(kāi)發(fā)者、特色、各項(xiàng)功能以及如何使用。</p><p><b> 2.系統(tǒng)總體設(shè)計(jì)</b></p
28、><p><b> 2.1 開(kāi)發(fā)工具</b></p><p><b> eclipse</b></p><p><b> 優(yōu)點(diǎn):</b></p><p> 1,從編寫(xiě)、查錯(cuò)、編譯、幫助等等各方面為Java語(yǔ)言貼身定做。 2,可無(wú)限擴(kuò)展的強(qiáng)大插件功能。
29、 3,眾多公司、廠商、組織的鼎立支持。 4,開(kāi)放,自由,免費(fèi)。 </p><p><b> 開(kāi)發(fā)環(huán)境:Win7</b></p><p> 運(yùn)行環(huán)境:Win7。</p><p><b> 2.2 系統(tǒng)框圖</b></p><p> ?。?)系統(tǒng)組成框圖:如圖2-1所示<
30、/p><p> 圖2-1 系統(tǒng)組成框圖</p><p> (2) 系統(tǒng)流程圖: 如圖2-2-1,圖2-2-2所示</p><p> 圖2-2-1 系統(tǒng)流程圖</p><p> 圖2-2-1 系統(tǒng)流程圖</p><p><b> 2.3 模塊功能</b></p><p>
31、; 2.3.1 圖書(shū)入庫(kù)</p><p> 輸入編采入庫(kù)圖書(shū)的書(shū)號(hào),書(shū)名,著作,現(xiàn)存量,以及總?cè)霂?kù)量,入庫(kù)成功后,將其圖書(shū)信息保存在文本文檔中</p><p> 2.3.2 清除圖書(shū)</p><p> 輸入圖書(shū)的編號(hào)對(duì)其進(jìn)行刪除,刪除成功后,將其文本文檔中的現(xiàn)存量和中庫(kù)存量置為0</p><p> 2.3.3 顯示庫(kù)存</p&
32、gt;<p> 羅列出所有庫(kù)存圖書(shū)的書(shū)號(hào),書(shū)名,著作,現(xiàn)存量,以及總庫(kù)存量</p><p> 2.3.4 讀者借閱</p><p> 輸入所需借閱圖書(shū)的編號(hào),書(shū)名和借書(shū)日期,借閱成功后,將其借閱信息保存值文本文檔中</p><p> 2.3.5 讀者歸還</p><p> 輸入所歸還圖書(shū)的書(shū)號(hào),歸還成功后,將其以前借閱
33、信息中的借閱日期置為0-0-0</p><p> 2.3.5 借閱查詢</p><p> 羅列出讀者所借閱圖書(shū)的記錄</p><p><b> 3 人機(jī)界面設(shè)計(jì)</b></p><p><b> 3.1 控件介紹</b></p><p> 控件是對(duì)數(shù)據(jù)和方法的封裝。
34、控件可以有自己的屬性和方法。屬性是控件數(shù)據(jù)的簡(jiǎn)單訪問(wèn)者。事件則是控件的一些簡(jiǎn)單而可見(jiàn)的功能。 所有的控件都有很多屬性,用于處理控件的操作 </p><p> 3.2 窗體(以下逐個(gè)闡述:你選用的控件的截圖、特點(diǎn)、選用理由)</p><p> 窗口JFrame一個(gè)底層容器,其他組件必須添加到底層容器中,以便借助這個(gè)底層容器和操作系統(tǒng)進(jìn)行信息交互.</p><p
35、> 使用了菜單條,菜單與菜單項(xiàng),實(shí)現(xiàn)窗口間的切換.</p><p><b> 3.3 文本編輯框</b></p><p> 文本框特點(diǎn)是允許用戶在文本框中輸入單行文本</p><p><b> 3.4 密碼框</b></p><p> 文本密碼框允許用戶在密碼框內(nèi)輸入單行密碼,密碼框
36、的回顯字符是’*’.</p><p><b> 3.5 按鈕與標(biāo)簽</b></p><p> 在按鈕上設(shè)置點(diǎn)擊事件.</p><p><b> 3.6 表格</b></p><p> 表格以行和列的形勢(shì)顯示數(shù)據(jù),允許對(duì)表格的數(shù)據(jù)進(jìn)行編輯,表格的模型功能強(qiáng)大,靈活并易于執(zhí)行</p>
37、<p> 3.7 菜單組件(必須有菜單,在此講述菜單組件及其設(shè)計(jì))</p><p> 窗口中的菜單條,菜單,菜單項(xiàng)是非常熟悉的組件,菜單放在菜單條里面,菜單項(xiàng)放在菜單里面</p><p><b> 4 功能詳細(xì)設(shè)計(jì)</b></p><p><b> 4.1 登錄界面</b></p>&l
38、t;p> 用戶從登錄界面輸入用戶名與密碼,輸入管理員的用戶與密碼,并驗(yàn)證密碼正確后,進(jìn)入管理員管理板塊.輸入學(xué)生的用戶名與密碼,并驗(yàn)證正確后,進(jìn)入學(xué)生板塊.</p><p><b> 核心代碼:</b></p><p> jbn2.addActionListener(new ActionListener() {</p><p>
39、public void actionPerformed(ActionEvent arg0) {</p><p> System.exit(0);</p><p><b> }</b></p><p><b> });</b></p><p> jbn1.addActionListener(n
40、ew ActionListener(){</p><p> public void actionPerformed(ActionEvent e) {</p><p> String usernameinput = jtf1.getText();</p><p> String pwdstrinput = String.valueOf(jpf.getPasswo
41、rd());</p><p> if ((usernameinput.equals(username))</p><p> && (pwdstrinput.equals(pwdstr)) && true==r1.isSelected()) {</p><p> JOptionPane.showMessageDialog(null
42、, "登陸成功!");</p><p> new ListenGUI2();</p><p> setVisible(false);</p><p> jtf1.grabFocus();</p><p> jpf.grabFocus();</p><p><b> return;
43、</b></p><p><b> } </b></p><p> else if ((usernameinput.equals(username2))</p><p> && (pwdstrinput.equals(pwdstr2)) && true==r2.isSelected()) {&
44、lt;/p><p> JOptionPane.showMessageDialog(null, "登陸成功!");</p><p> new ListenGUI1();</p><p> setVisible(false);</p><p> jtf1.grabFocus();</p><p>
45、 jpf.grabFocus();</p><p><b> return;</b></p><p><b> }</b></p><p> else if (pwdstrinput == null || "".equals(pwdstrinput)) {</p><p>
46、 JOptionPane.showMessageDialog(null, "密碼不能為空");</p><p> jpf.grabFocus();</p><p><b> return;</b></p><p> } else if (pwdstrinput.length() < 6) {</p>
47、<p> JOptionPane.showMessageDialog(null, "密碼不能小于6位");</p><p> jpf.grabFocus();</p><p><b> return;</b></p><p><b> } else {</b></p>
48、<p> JOptionPane.showMessageDialog(null, "登陸失??!");</p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p>&
49、lt;b> 4.2 新書(shū)的錄入</b></p><p> 管理員輸入所需錄入新書(shū)的編號(hào),書(shū)名,著作,現(xiàn)存量和中庫(kù)存量后,點(diǎn)擊錄入,則系統(tǒng)自動(dòng)將錄入的新書(shū)信息保存在文本文檔中.</p><p> 用文本文檔操作不方面管理員的后臺(tái)管理,查看書(shū)的信息不能直接打開(kāi)文本文檔進(jìn)行查看,而是必須進(jìn)入管理界面才能進(jìn)行查看.</p><p><b>
50、 核心代碼:</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> if(f.exists()){</p><p> FileInputStream fi
51、;</p><p><b> try {</b></p><p> fi = new FileInputStream(f);</p><p> ObjectInputStream oi=new ObjectInputStream(fi);</p><p> bookslist=(LinkedList<Boo
52、ks>)oi.readObject();</p><p> fi.close();</p><p> oi.close();</p><p> Books books=new Books();</p><p> String s1=no.getText();</p><p> String s2=nam
53、e.getText();</p><p> String s3=actor.getText();</p><p> String s4=save.getText();</p><p> String s5=allsave.getText();</p><p> while(i<bookslist.size())</p>
54、;<p><b> {</b></p><p> Books bo=(Books)bookslist.get(i);</p><p> if(s1.equals(bo.getNo())&&s2.equals(bo.getName())&&s3.equals(bo.getActor()))</p><
55、;p><b> {</b></p><p><b> int a,b;</b></p><p> a=Integer.parseInt(bo.getAllsave())+Integer.parseInt(s5);</p><p> b=Integer.parseInt(bo.getSave())+Intege
56、r.parseInt(s5);</p><p> bo.setAllsave(String.valueOf(a));</p><p> bo.setSave(String.valueOf(b));</p><p><b> break;</b></p><p><b> }</b></
57、p><p><b> i++;</b></p><p><b> }</b></p><p> if(i==bookslist.size())</p><p><b> {</b></p><p> books.setNo(s1); <
58、;/p><p> books.setName(s2);</p><p> books.setActor(s3);</p><p> books.setSave(s4);</p><p> books.setAllsave(s5);</p><p> bookslist.add(books);</p>
59、<p><b> }</b></p><p> FileOutputStream fo=new FileOutputStream(f);</p><p> ObjectOutputStream out=new ObjectOutputStream(fo);</p><p> out.writeObject(bookslist
60、);</p><p> out.close(); </p><p> } catch (Exception ee) {}</p><p><b> }</b></p><p><b> else{</b></p><p><b> try{</b&g
61、t;</p><p> f.createNewFile();</p><p> Books books=new Books();</p><p> books.setNo(no.getText());</p><p> books.setName(name.getText());</p><p> books
62、.setActor(actor.getText());</p><p> books.setSave(save.getText());</p><p> books.setAllsave(allsave.getText());</p><p> bookslist.add(books);</p><p> FileOutputStre
63、am fo=new FileOutputStream(f);</p><p> ObjectOutputStream out=new ObjectOutputStream(fo);</p><p> out.writeObject(bookslist);</p><p> out.close();</p><p><b>
64、}</b></p><p> catch(Exception e1) {}</p><p><b> }</b></p><p> 4.3 清除圖書(shū)庫(kù)存</p><p> 管理員輸入所需刪除圖書(shū)的編號(hào),如庫(kù)存中有此編號(hào)的書(shū),則將此書(shū)的現(xiàn)存量與總庫(kù)存量賦值為零.</p><p>
65、 主要用到的數(shù)據(jù)結(jié)構(gòu)是鏈表,方便對(duì)其的刪除操作.其確實(shí)是從鏈表的頭依次遍歷,直到找到所需的圖書(shū)編號(hào)或者到鏈表尾部.這樣遍歷的時(shí)間效率比較低,對(duì)于大量的圖書(shū)需要遍歷的話,此算法的時(shí)間效率低</p><p><b> 核心代碼:</b></p><p> public void actionPerformed(ActionEvent e) {</p>
66、<p> if(file.exists()){</p><p><b> try {</b></p><p> fi = new FileInputStream(file);</p><p> ObjectInputStream oi=new ObjectInputStream(fi);</p><p>
67、; bookslist1=(LinkedList<Books>)oi.readObject();</p><p> fi.close();</p><p> oi.close();</p><p> Books books=new Books();</p><p> String s=no.getText();</
68、p><p> while(i<bookslist1.size())</p><p><b> {</b></p><p> Books bo=(Books)bookslist1.get(i);</p><p> if(s.equals(bo.getNo()))</p><p><b
69、> {</b></p><p><b> int a,b;</b></p><p><b> a=0;</b></p><p><b> b=0;</b></p><p> bo.setAllsave(String.valueOf(a));</
70、p><p> bo.setSave(String.valueOf(b));</p><p> JOptionPane.showMessageDialog(null, "刪除成功!");</p><p><b> break;</b></p><p><b> }</b><
71、;/p><p><b> i++;</b></p><p><b> }</b></p><p> FileOutputStream fo=new FileOutputStream(file);</p><p> ObjectOutputStream out=new ObjectOutputSt
72、ream(fo);</p><p> out.writeObject(bookslist1);</p><p> fo.close();</p><p> out.close();</p><p> } catch (Exception ee) {}</p><p><b> }</b>
73、</p><p><b> 4.4 圖書(shū)的借閱</b></p><p> 學(xué)生輸入所需借閱圖書(shū)的編號(hào),書(shū)名和借閱日期,如果此書(shū)的現(xiàn)存量大于零,則將其現(xiàn)存量減一,讀者借書(shū)成功.并且在讀者信息中記錄讀者借閱了此圖書(shū),將借閱信息寫(xiě)入文本文件.</p><p> 主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的圖書(shū)編號(hào)或者到鏈表尾部.這樣
74、遍歷的時(shí)間效率比較低,對(duì)于大量的圖書(shū)需要遍歷的話,此算法的時(shí)間效率低</p><p><b> 核心代碼:</b></p><p> public void actionPerformed(ActionEvent e) {</p><p><b> try{ </b></p><p> Fi
75、leInputStream fi=new FileInputStream(file);</p><p> ObjectInputStream oi=new ObjectInputStream(fi);</p><p> bookslist1=(LinkedList<Books>)oi.readObject();</p><p> fi.close
76、();</p><p> oi.close(); </p><p> Books books=new Books();</p><p> books.setNo(rno.getText());</p><p> while(i<bookslist1.size())</p><p><b> {
77、</b></p><p> Books bo=(Books)bookslist1.get(i);</p><p> if(books.getNo().equals(bo.getNo())&&Integer.parseInt(bo.getSave())>0)</p><p><b> {</b></p
78、><p><b> int a;</b></p><p> a=Integer.parseInt(bo.getSave())-1;</p><p> bo.setSave(String.valueOf(a));</p><p> JOptionPane.showMessageDialog(null, "借閱
79、成功!");</p><p><b> break;</b></p><p><b> }</b></p><p> if(Integer.parseInt(bo.getSave())==m&&books.getNo().equals(bo.getNo()))</p><
80、p><b> {</b></p><p> JOptionPane.showMessageDialog(null, "此書(shū)全部借出!");</p><p> System.exit(0);</p><p><b> }</b></p><p><b>
81、i++;</b></p><p><b> }</b></p><p> if(i==bookslist1.size())</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null, "此書(shū)圖書(shū)館無(wú)庫(kù)存
82、!");</p><p> System.exit(0);</p><p><b> }</b></p><p> FileOutputStream fo=new FileOutputStream(file);</p><p> ObjectOutputStream out=new ObjectOutp
83、utStream(fo);</p><p> out.writeObject(bookslist1);</p><p> out.close();</p><p> if(file1.exists())</p><p><b> {</b></p><p><b> try{&
84、lt;/b></p><p> FileInputStream fi1 = new FileInputStream(file1);</p><p> ObjectInputStream oi1=new ObjectInputStream(fi1);</p><p> readerlist1=(LinkedList<Reader>)oi1.re
85、adObject();</p><p> fi1.close();</p><p> oi1.close();</p><p> Reader readers=new Reader();</p><p> String s1=rno.getText();</p><p> String s2=rname.ge
86、tText();</p><p> String s3=borrowdate.getText();</p><p> readers.setRno(s1); </p><p> readers.setRname(s2);</p><p> readers.setBorrowdate(s3);</p><p&
87、gt; readerlist1.add(readers);</p><p> FileOutputStream fo1=new FileOutputStream(file1);</p><p> ObjectOutputStream out1=new ObjectOutputStream(fo1);</p><p> out1.writeObject(rea
88、derlist1);</p><p> out1.close();</p><p> } catch(Exception ee){}</p><p><b> }</b></p><p><b> else{</b></p><p><b> try{&l
89、t;/b></p><p> file1.createNewFile();</p><p> Reader readers=new Reader();</p><p> String s1=rno.getText();</p><p> String s2=rname.getText();</p><p>
90、; String s3=borrowdate.getText();</p><p> readers.setRno(s1); </p><p> readers.setRname(s2);</p><p> readers.setBorrowdate(s3);</p><p> readerlist1.add(readers
91、);</p><p> FileOutputStream fo1=new FileOutputStream(file1);</p><p> ObjectOutputStream out1=new ObjectOutputStream(fo1);</p><p> out1.writeObject(readerlist1);</p><p&
92、gt; out1.close();</p><p><b> }</b></p><p> catch(Exception e1) {}</p><p><b> }</b></p><p> }catch(Exception ee){}</p><p><b
93、> }</b></p><p><b> 4.5 圖書(shū)的歸還</b></p><p> 學(xué)生輸入需要?dú)w還圖書(shū)的編號(hào),如果歸還成功則將讀者的借書(shū)日期置為0-0-0.</p><p> 主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的歸還圖書(shū)的編號(hào)或者到鏈表尾部.這樣遍歷的時(shí)間效率比較低,對(duì)于大量的圖書(shū)需要遍歷的話
94、,此算法的時(shí)間效率低</p><p><b> 核心代碼:</b></p><p> public void actionPerformed(ActionEvent e) {</p><p><b> try{ </b></p><p> FileInputStream fi=new F
95、ileInputStream(file);</p><p> ObjectInputStream oi=new ObjectInputStream(fi);</p><p> bookslist1=(LinkedList<Books>)oi.readObject();</p><p> fi.close();</p><p&g
96、t; oi.close(); </p><p> Books books=new Books();</p><p> books.setNo(rno.getText());</p><p> while(i<bookslist1.size())</p><p><b> {</b></p>
97、<p> Books bo=(Books)bookslist1.get(i);</p><p> if(books.getNo().equals(bo.getNo()))</p><p><b> {</b></p><p><b> int a;</b></p><p> a=
98、Integer.parseInt(bo.getSave())+1;</p><p> bo.setSave(String.valueOf(a));</p><p> JOptionPane.showMessageDialog(null, "歸還成功!"); </p><p><b> }</b></p>
99、<p><b> i++;</b></p><p><b> }</b></p><p> FileOutputStream fo=new FileOutputStream(file);</p><p> ObjectOutputStream out=new ObjectOutputStream(fo)
100、;</p><p> out.writeObject(bookslist1);</p><p> out.close();</p><p> FileInputStream fi1 = new FileInputStream(file1);</p><p> ObjectInputStream oi1=new ObjectInputS
101、tream(fi1);</p><p> readerlist1=(LinkedList<Reader>)oi1.readObject();</p><p> fi1.close();</p><p> oi1.close();</p><p> Reader readers=new Reader();</p>
102、<p> readers.setRno(rno.getText());</p><p> while(j<readerlist1.size())</p><p><b> {</b></p><p> Reader bo1=(Reader)readerlist1.get(j);</p><p>
103、; if(readers.getRno().equals(bo1.getRno()))</p><p><b> {</b></p><p> bo1.setBorrowdate("0-0-0");</p><p><b> }</b></p><p><b>
104、 j++;</b></p><p><b> }</b></p><p> FileOutputStream fo1=new FileOutputStream(file1);</p><p> ObjectOutputStream out1=new ObjectOutputStream(fo1);</p>&l
105、t;p> out1.writeObject(readerlist1);</p><p> out1.close();</p><p><b> }</b></p><p> catch(Exception ee){}</p><p><b> }</b></p><
106、;p><b> 4.6 借閱顯示</b></p><p> 顯示出所有學(xué)生借閱的書(shū)籍,并能得知這些書(shū)籍時(shí)候歸還. </p><p><b> 核心代碼:</b></p><p> public void actionPerformed(ActionEvent e) {</p><p>
107、 if(e.getSource()==顯示) {</p><p><b> try{ </b></p><p> FileInputStream fi=new FileInputStream(file);</p><p> ObjectInputStream oi=new ObjectInputStream(fi);</p>
108、;<p> LinkedList<Reader> readerList=(LinkedList<Reader>)oi.readObject();</p><p> fi.close();</p><p> oi.close(); </p><p> int length=readerList.size();</p
109、><p> 表格單元=new Object[length][3];</p><p> table=new JTable(表格單元,列名); </p><p> pCenter.removeAll(); </p><p> pCenter.add("顯示",new JScrollPane(table)); </p&
110、gt;<p> pCenter.validate(); </p><p> Iterator<Reader> iter=readerList.iterator();</p><p><b> int i=0;</b></p><p> while(iter.hasNext()) {</p>
111、<p> Reader read =iter.next();</p><p> 表格單元[i][0]= read.getRno();</p><p> 表格單元[i][1]=read.getRname();</p><p> 表格單元[i][2]=read.getBorrowdate();</p><p><b&
112、gt; i++;</b></p><p><b> }</b></p><p> table.repaint();</p><p><b> }</b></p><p> catch(Exception ee){}</p><p> }
113、 </p><p> 4.7 軟件使用說(shuō)明</p><p> 結(jié)合運(yùn)行過(guò)程截圖說(shuō)明本軟件的使用步驟等 </p><p> (1).系統(tǒng)登錄界面,用戶名輸入黃朋,密碼輸入111265,代表教室管理員登錄,進(jìn)行圖書(shū)管理. 用戶名輸入黃,密碼輸入111111,代表學(xué)生登錄,進(jìn)行圖書(shū)的借閱. </
114、p><p> 管理員界面,點(diǎn)擊入庫(kù)</p><p> 管理員界面,輸入相應(yīng)的信息點(diǎn)擊錄入.</p><p> .管理員界面,點(diǎn)擊顯示,則顯示所有庫(kù)存圖書(shū)的信息.</p><p><b> (5)點(diǎn)擊清除</b></p><p> .輸入書(shū)號(hào),點(diǎn)擊刪除.</p><p&g
115、t; .顯示出刪除后的圖書(shū)庫(kù)存信息.</p><p> 學(xué)生管理界面,點(diǎn)擊借閱</p><p> .學(xué)生借閱,輸入圖書(shū)的書(shū)號(hào),書(shū)名,結(jié)束日期,點(diǎn)擊確定</p><p> .點(diǎn)擊歸還,則進(jìn)入此界面,輸入書(shū)號(hào),點(diǎn)擊確定.</p><p> .點(diǎn)擊顯示,則進(jìn)入此界面,顯示讀者的借閱信息</p><p><b&
116、gt; 5 系統(tǒng)功能測(cè)試</b></p><p> 結(jié)合程序運(yùn)行過(guò)程的截圖,闡述本軟件各個(gè)模塊功能的實(shí)現(xiàn)以及協(xié)作工作情況</p><p><b> 5.1 登錄界面</b></p><p> 一點(diǎn)擊程序運(yùn)行就會(huì)出現(xiàn)如下的登陸界面:</p><p> 輸入用戶名為“黃朋”、密碼為“111265”、選
117、擇教師然后點(diǎn)擊登錄就可以登錄到老師登陸界面進(jìn)行相關(guān)操作,如果這三者不匹配,則會(huì)出現(xiàn)登錄失敗的提示。</p><p> 輸入用戶名為“黃”、密碼為“111111”、選擇學(xué)然后點(diǎn)擊登錄就可以登錄到學(xué)生登陸界面進(jìn)行相關(guān)操作,如果這三者不匹配,則會(huì)出現(xiàn)登錄失敗的提示。</p><p><b> 5.2入庫(kù)和顯示</b></p><p> 當(dāng)你登錄
118、教師賬號(hào)成功后就能跳入下面的界面進(jìn)行下一步操作</p><p> 點(diǎn)擊入庫(kù)就會(huì)顯示下一個(gè)窗口,在該窗口的文本框里面輸入你想要編輯的書(shū)的信息再點(diǎn)擊錄入就可以實(shí)現(xiàn)錄入的功能:</p><p> 點(diǎn)擊菜單選項(xiàng)就會(huì)顯示出錄入和顯示兩個(gè)選項(xiàng),再點(diǎn)擊顯示就會(huì)出現(xiàn)以下圖片,這就完成了顯示的功能:</p><p><b> 5.3清除功能</b><
119、/p><p> 在登錄到老師界面過(guò)后,不點(diǎn)擊入庫(kù),點(diǎn)擊清除,再在書(shū)號(hào)后面的文本框里面輸入想要?jiǎng)h除的書(shū)號(hào),就可以清除不要的書(shū)籍</p><p><b> 5.4歸還</b></p><p> 從最開(kāi)始的界面登錄到學(xué)生登陸界面后就會(huì)跳出該窗口:</p><p> 點(diǎn)擊歸還按鈕并輸入你想要?dú)w還的書(shū)的書(shū)號(hào),點(diǎn)擊確定,就可以實(shí)
120、現(xiàn)歸還的功能:</p><p><b> 5.5借閱</b></p><p> 點(diǎn)擊借閱按鈕,在新出現(xiàn)的窗口上輸入你要借閱的書(shū)名書(shū)號(hào)以及你的歸還日期,點(diǎn)擊確定就可以實(shí)現(xiàn)圖書(shū)的借閱:</p><p><b> 5.6顯示</b></p><p> 在登錄學(xué)生界面后點(diǎn)擊顯示,就會(huì)完成對(duì)學(xué)生的圖書(shū)
121、顯示功能</p><p><b> 結(jié) 論</b></p><p> 本次我們組做的是圖書(shū)管理系統(tǒng),總的來(lái)說(shuō),完成的還算可以,基本的功能都完成了,如對(duì)圖書(shū)的采編入庫(kù),登記圖書(shū)的一般信息,還有老師對(duì)于已無(wú)使用價(jià)值的書(shū)籍的刪除,以及學(xué)生對(duì)圖書(shū)的借閱、歸還和顯示,都在一定程度上實(shí)現(xiàn)了。通過(guò)對(duì)圖書(shū)管理系統(tǒng),我們對(duì)Java面向?qū)ο蟪绦蛟O(shè)計(jì)有了更深入的了解,也從實(shí)踐中體會(huì)到了
122、Java語(yǔ)言的優(yōu)點(diǎn),更簡(jiǎn)單易懂,我們使用的是eclipse開(kāi)發(fā)環(huán)境,該環(huán)境可以進(jìn)行錯(cuò)誤提示,讓我們改錯(cuò)的時(shí)間減少不少,提高了工作的效率。我們將系統(tǒng)的各個(gè)模塊功能做了大致的分析,成員變量函數(shù)等做了一定的規(guī)定后,就把各個(gè)模塊具體的分配到各個(gè)組員手里,大家分工進(jìn)行源代碼的編寫(xiě),到最后將各個(gè)模塊合在一起,再對(duì)不和諧的地方進(jìn)行修改。</p><p><b> 致 謝</b></p>&
123、lt;p> 這次的課程設(shè)計(jì)可以順利完成,首先要感謝指導(dǎo)老師**老師的悉心指導(dǎo),然后是感謝**數(shù)學(xué)與計(jì)算機(jī)學(xué)院提供機(jī)房給我們實(shí)際操作,最后要感謝各個(gè)組員,因?yàn)橛写蠹业墓餐浜?,才可以高效率地完成這次課程設(shè)計(jì)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1][1] 耿祥義,張樂(lè)平等,JAVA面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版,2010,1,1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)借閱管理系統(tǒng)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)----圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)(圖書(shū)館管理系統(tǒng))
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 圖書(shū)館管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 課程設(shè)計(jì)--圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)
- c語(yǔ)言圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)---高校圖書(shū)館管理系統(tǒng)
- 算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——員工管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論