數(shù)據(jù)結(jié)構(gòu)與算法b綜合課程設(shè)計(jì)--圖書館管理系統(tǒng)_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ì)說明書</b></p><p>  課 程 名 稱:數(shù)據(jù)結(jié)構(gòu)與算法B綜合課程設(shè)計(jì)</p><p>  課 程 代 碼: </p><p>  題

2、目: 圖書管理系統(tǒng) </p><p>  年級(jí)/專業(yè)/班: </p><p>  學(xué) 生 姓 名: </p><p>  學(xué)   號(hào):

3、</p><p>  開 始 時(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 問題的提出1</p><p>  1.2 任務(wù)與分析1</p><p>

5、  2.軟件總體設(shè)計(jì)3</p><p>  2.1 開發(fā)工具3</p><p>  2.2 系統(tǒng)框圖3</p><p>  2.3 模塊功能5</p><p>  2.3.1 圖書入庫..5</p><p>  2.3.2 清楚圖書5</p><p>  2.3.3 顯示庫存…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 新書錄入9</p>&

10、lt;p>  4.3 清楚圖書庫存10</p><p>  4.4 圖書借閱11</p><p>  4.5 圖書歸還13</p><p>  4.6 借閱顯示15</p><p>  4.7 軟件使用說明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)化的作用也越來越大。從而使我們從繁雜的事務(wù)中解放出來,提高了我們的工作效率。</p><p>  目前學(xué)校圖書館的借閱工作部分還是手工管理,工作效率很低,并且不能及時(shí)了解圖書的種類和學(xué)生們比較需求的圖書等,不能更好的適應(yīng)當(dāng)前學(xué)生的借閱要求。手工管理還存在這許多弊端,由于不可避免的人為因素,造成數(shù)據(jù)的遺漏、誤報(bào)

13、。計(jì)算機(jī)信息化管理有著儲(chǔ)存量大,速度快等許多優(yōu)點(diǎn),提供給我們的處理信息及時(shí)快捷,因此我們利用計(jì)算機(jī)提供給我們的信息對(duì)學(xué)生們的借閱過程形成一整套動(dòng)態(tài)的管理。</p><p>  本系統(tǒng)將會(huì)涉及到圖書館日常管理工作的基本常見細(xì)節(jié),諸如新圖書的入庫登記,圖書館所有書籍的分類管理,圖書的查詢,圖書的借閱、退還手續(xù)的登記,費(fèi)舊圖書的清理撤除等,本系統(tǒng)所要實(shí)現(xiàn)的這些功能基本上涵蓋了圖書館的日常管理工作,基本能夠滿足校園圖書館

14、的工作人員的管理需要。</p><p>  在對(duì)本系統(tǒng)的具體開發(fā)過程當(dāng)中,將采用Java語言進(jìn)行開發(fā),以文本文件實(shí)現(xiàn)后臺(tái)數(shù)據(jù)庫,本系統(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 問題的提出</b></p><p>  首先,圖書館的管理直接關(guān)系到我們大學(xué)生如何更好的使用圖書,更充分的利用現(xiàn)有資源學(xué)習(xí),提高自身素質(zhì)。針對(duì)當(dāng)今的大學(xué)圖書館藏書越來越多,學(xué)生借書越來越頻繁,圖書管理較為繁瑣,圖書館管理工作人員付出的工作時(shí)間越來越多,得到的效率卻很低這個(gè)現(xiàn)狀

22、。為提高工作效率,減輕圖書館工作人員的工作負(fù)擔(dān),決定開發(fā)學(xué)校圖書館管理系統(tǒng)軟件,以幫助更好的實(shí)現(xiàn)圖書館的管理,讓我們能更便捷的借閱圖書,讓老師能花最少的時(shí)間辦理好借閱圖書手續(xù)。</p><p>  開發(fā)此圖書館管理系統(tǒng)軟件,也是對(duì)實(shí)現(xiàn)數(shù)字化圖書館管理的支持,現(xiàn)今各大學(xué)普遍存在著一個(gè)現(xiàn)象,圖書的借閱手續(xù)都是由專門的老師來實(shí)現(xiàn)辦理的,每當(dāng)借閱高峰期時(shí),排隊(duì)借書的場(chǎng)面屢見不鮮,這樣即耗費(fèi)時(shí)間又使原本不太大的借書大廳擁擠

23、不堪。圖書館管理系統(tǒng)的實(shí)現(xiàn),可以著眼于數(shù)字化借閱,簡(jiǎn)化學(xué)生圖書查詢流程,簡(jiǎn)化圖書外借登記手續(xù),即提高借閱效率又可實(shí)現(xiàn)圖書借閱的完整進(jìn)出記錄,保證圖書的合理使用,讓廣大師生受益。</p><p><b>  1.2 任務(wù)與分析</b></p><p>  本課題主要的任務(wù)是設(shè)計(jì)一個(gè)圖書管理系統(tǒng),實(shí)現(xiàn)對(duì)圖書的采編入庫,清除,查找,借閱,歸還以及顯示功能</p>

24、<p>  1.基于圖形用戶界面(GUI)的標(biāo)準(zhǔn)“Windows” 應(yīng)用程序。</p><p>  2.初始輸入數(shù)據(jù):自由輸入。</p><p><b>  3.基本要求:</b></p><p>  (1)每種書的登記內(nèi)容至少包括書號(hào)、書名、著者、現(xiàn)存量和總庫存量等五項(xiàng)。</p><p> ?。?)由于圖

25、書管理的基本業(yè)務(wù)活動(dòng)都是通過書號(hào)(即關(guān)鍵字)進(jìn)行的,所以要用對(duì)書號(hào) 索引,以獲得高效率。</p><p>  系統(tǒng)應(yīng)實(shí)現(xiàn)的基本功能有:</p><p> ?。?)采編入庫:新購入一種書,經(jīng)分類和確定書號(hào)之后登記到圖書帳目中去。如果這兩種書在帳中已有,則只將總庫存量增加。</p><p>  (2)清除庫存:某種書已無保留價(jià)值,將它從圖書帳目中注銷。</p>

26、;<p> ?。?)借閱:如果一種書的現(xiàn)存量大于零,則借出一本,登記借閱者的圖書證號(hào)和歸還期限。</p><p> ?。?)歸還:注銷對(duì)借閱者的登記,改變?cè)摃默F(xiàn)存量。</p><p>  (5)顯示:以凹入表的形式顯示B樹。這個(gè)操作是為了調(diào)試和維護(hù)的目的而設(shè)置的。</p><p><b>  4.界面設(shè)計(jì)總要求</b></

27、p><p>  (1)操作流程簡(jiǎn)便合理,操作界面美觀自然,符合用戶一般操作習(xí)慣。</p><p>  (2)界面簡(jiǎn)潔美觀,配色和諧,比例合適,符合大多數(shù)人的審美趣向。</p><p>  5.菜單設(shè)置“使用說明”,介紹本軟件開發(fā)者、特色、各項(xiàng)功能以及如何使用。</p><p><b>  2.系統(tǒng)總體設(shè)計(jì)</b></p

28、><p><b>  2.1 開發(fā)工具</b></p><p><b>  eclipse</b></p><p><b>  優(yōu)點(diǎn):</b></p><p>  1,從編寫、查錯(cuò)、編譯、幫助等等各方面為Java語言貼身定做。 2,可無限擴(kuò)展的強(qiáng)大插件功能。

29、 3,眾多公司、廠商、組織的鼎立支持。 4,開放,自由,免費(fèi)。 </p><p><b>  開發(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 圖書入庫</p><p>  輸入編采入庫圖書的書號(hào),書名,著作,現(xiàn)存量,以及總?cè)霂炝?入庫成功后,將其圖書信息保存在文本文檔中</p><p>  2.3.2 清除圖書</p><p>  輸入圖書的編號(hào)對(duì)其進(jìn)行刪除,刪除成功后,將其文本文檔中的現(xiàn)存量和中庫存量置為0</p><p>  2.3.3 顯示庫存</p&

32、gt;<p>  羅列出所有庫存圖書的書號(hào),書名,著作,現(xiàn)存量,以及總庫存量</p><p>  2.3.4 讀者借閱</p><p>  輸入所需借閱圖書的編號(hào),書名和借書日期,借閱成功后,將其借閱信息保存值文本文檔中</p><p>  2.3.5 讀者歸還</p><p>  輸入所歸還圖書的書號(hào),歸還成功后,將其以前借閱

33、信息中的借閱日期置為0-0-0</p><p>  2.3.5 借閱查詢</p><p>  羅列出讀者所借閱圖書的記錄</p><p><b>  3 人機(jī)界面設(shè)計(jì)</b></p><p><b>  3.1 控件介紹</b></p><p>  控件是對(duì)數(shù)據(jù)和方法的封裝。

34、控件可以有自己的屬性和方法。屬性是控件數(shù)據(jù)的簡(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 新書的錄入</b></p><p>  管理員輸入所需錄入新書的編號(hào),書名,著作,現(xiàn)存量和中庫存量后,點(diǎn)擊錄入,則系統(tǒng)自動(dòng)將錄入的新書信息保存在文本文檔中.</p><p>  用文本文檔操作不方面管理員的后臺(tá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 清除圖書庫存</p><p>  管理員輸入所需刪除圖書的編號(hào),如庫存中有此編號(hào)的書,則將此書的現(xiàn)存量與總庫存量賦值為零.</p><p>

65、  主要用到的數(shù)據(jù)結(jié)構(gòu)是鏈表,方便對(duì)其的刪除操作.其確實(shí)是從鏈表的頭依次遍歷,直到找到所需的圖書編號(hào)或者到鏈表尾部.這樣遍歷的時(shí)間效率比較低,對(duì)于大量的圖書需要遍歷的話,此算法的時(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 圖書的借閱</b></p><p>  學(xué)生輸入所需借閱圖書的編號(hào),書名和借閱日期,如果此書的現(xiàn)存量大于零,則將其現(xiàn)存量減一,讀者借書成功.并且在讀者信息中記錄讀者借閱了此圖書,將借閱信息寫入文本文件.</p><p>  主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的圖書編號(hào)或者到鏈表尾部.這樣

74、遍歷的時(shí)間效率比較低,對(duì)于大量的圖書需要遍歷的話,此算法的時(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, "此書全部借出!");</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, "此書圖書館無庫存

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 圖書的歸還</b></p><p>  學(xué)生輸入需要?dú)w還圖書的編號(hào),如果歸還成功則將讀者的借書日期置為0-0-0.</p><p>  主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的歸還圖書的編號(hào)或者到鏈表尾部.這樣遍歷的時(shí)間效率比較低,對(duì)于大量的圖書需要遍歷的話

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í)候歸還. </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 軟件使用說明</p><p>  結(jié)合運(yùn)行過程截圖說明本軟件的使用步驟等 </p><p>  (1).系統(tǒng)登錄界面,用戶名輸入黃朋,密碼輸入111265,代表教室管理員登錄,進(jìn)行圖書管理. 用戶名輸入黃,密碼輸入111111,代表學(xué)生登錄,進(jìn)行圖書的借閱. </

114、p><p>  管理員界面,點(diǎn)擊入庫</p><p>  管理員界面,輸入相應(yīng)的信息點(diǎn)擊錄入.</p><p>  .管理員界面,點(diǎn)擊顯示,則顯示所有庫存圖書的信息.</p><p><b>  (5)點(diǎn)擊清除</b></p><p>  .輸入書號(hào),點(diǎn)擊刪除.</p><p&g

115、t;  .顯示出刪除后的圖書庫存信息.</p><p>  學(xué)生管理界面,點(diǎn)擊借閱</p><p>  .學(xué)生借閱,輸入圖書的書號(hào),書名,結(jié)束日期,點(diǎn)擊確定</p><p>  .點(diǎn)擊歸還,則進(jìn)入此界面,輸入書號(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)行過程的截圖,闡述本軟件各個(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入庫和顯示</b></p><p>  當(dāng)你登錄

118、教師賬號(hào)成功后就能跳入下面的界面進(jìn)行下一步操作</p><p>  點(diǎn)擊入庫就會(huì)顯示下一個(gè)窗口,在該窗口的文本框里面輸入你想要編輯的書的信息再點(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>  在登錄到老師界面過后,不點(diǎn)擊入庫,點(diǎn)擊清除,再在書號(hào)后面的文本框里面輸入想要?jiǎng)h除的書號(hào),就可以清除不要的書籍</p><p><b>  5.4歸還</b></p><p>  從最開始的界面登錄到學(xué)生登陸界面后就會(huì)跳出該窗口:</p><p>  點(diǎn)擊歸還按鈕并輸入你想要?dú)w還的書的書號(hào),點(diǎn)擊確定,就可以實(shí)

120、現(xiàn)歸還的功能:</p><p><b>  5.5借閱</b></p><p>  點(diǎn)擊借閱按鈕,在新出現(xiàn)的窗口上輸入你要借閱的書名書號(hào)以及你的歸還日期,點(diǎn)擊確定就可以實(shí)現(xiàn)圖書的借閱:</p><p><b>  5.6顯示</b></p><p>  在登錄學(xué)生界面后點(diǎn)擊顯示,就會(huì)完成對(duì)學(xué)生的圖書

121、顯示功能</p><p><b>  結(jié) 論</b></p><p>  本次我們組做的是圖書管理系統(tǒng),總的來說,完成的還算可以,基本的功能都完成了,如對(duì)圖書的采編入庫,登記圖書的一般信息,還有老師對(duì)于已無使用價(jià)值的書籍的刪除,以及學(xué)生對(duì)圖書的借閱、歸還和顯示,都在一定程度上實(shí)現(xiàn)了。通過對(duì)圖書管理系統(tǒng),我們對(duì)Java面向?qū)ο蟪绦蛟O(shè)計(jì)有了更深入的了解,也從實(shí)踐中體會(huì)到了

122、Java語言的優(yōu)點(diǎn),更簡(jiǎn)單易懂,我們使用的是eclipse開發(fā)環(huán)境,該環(huán)境可以進(jìn)行錯(cuò)誤提示,讓我們改錯(cuò)的時(shí)間減少不少,提高了工作的效率。我們將系統(tǒng)的各個(gè)模塊功能做了大致的分析,成員變量函數(shù)等做了一定的規(guī)定后,就把各個(gè)模塊具體的分配到各個(gè)組員手里,大家分工進(jìn)行源代碼的編寫,到最后將各個(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] 耿祥義,張樂平等,JAVA面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版,2010,1,1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論