c課程設(shè)計報告--圖書館管理系統(tǒng)_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  C++課程設(shè)計報告</b></p><p>  設(shè)計題目:圖書館管理系統(tǒng)</p><p><b>  目錄</b></p><p>  第一章 引言- 1 -</p><p>  1.1關(guān)于題目- 1 -</p><p>  1.1.1題目要

2、求- 1 -</p><p>  1.1.2選題背景- 1 -</p><p>  1.2關(guān)于編譯軟件- 1 -</p><p>  1.3關(guān)于兼容性- 1 -</p><p>  第二章 概要設(shè)計- 2 -</p><p>  2.1軟件主要功能設(shè)計- 2 -</p><p>  

3、2.1.1程序結(jié)構(gòu)- 2 -</p><p>  2.1.2程序流程- 2 -</p><p>  第三章 軟件實現(xiàn)- 4 -</p><p>  3.1變量函數(shù)及資源的聲明- 4 -</p><p>  3.1.1函數(shù)聲明- 4 -</p><p>  3.1.2變量聲明- 4 -</p>

4、<p>  3.1.3資源- 5 -</p><p>  3.2主要功能的實現(xiàn)- 5 -</p><p>  3.2.1系統(tǒng)界面- 5 -</p><p>  3.2.2借書- 6 -</p><p>  3.2.3還書- 7 -</p><p>  3.2.4圖書維護- 9 -</p>

5、;<p>  3.2.5讀者維護- 9 -</p><p>  第四章 結(jié)果與討論- 10 -</p><p>  4.1程序運行- 10 -</p><p>  4.2錯誤調(diào)試與分析- 12 -</p><p><b>  一 引言</b></p><p><b>

6、;  1.1關(guān)于題目</b></p><p><b>  1.1.1題目要求</b></p><p>  利用Microsoft Visual C++制作一個圖書館管理系統(tǒng),要求:</p><p> ?。?)能夠?qū)崿F(xiàn)的功能有:借書,還書,圖書維護:負(fù)責(zé)圖書的采購、信息存檔、對圖書信息的查詢及編輯,讀者維護:對學(xué)生信息的管理、對借閱書

7、本情況的管理,離開等功能。</p><p> ?。?)要求界面整齊簡單易懂且容易操作,讀者易于操作。</p><p> ?。?)根據(jù)程序源代碼,寫出流程圖,并運行,寫出實驗報告及分析過程。</p><p><b>  1.1.2選題背景</b></p><p>  這是一圖書館管理系統(tǒng),原先的圖書館采用人工系統(tǒng)浪費人力物

8、力財力,圖書管理系統(tǒng)可以改善這種情況,只需要一臺電腦和一個管理員就可以輕松完成。提高新書入庫、借閱書刊和學(xué)生信息管理的速度的需要。減少了人力的投入。</p><p><b>  1.2關(guān)于編譯軟件</b></p><p>  本程序采用Microsoft Visual C++6.0的英文版本進行編譯。VisualC++6.0是Microsoft公司推出的基于Windo

9、ws操作系統(tǒng)的可視化C++編程工具,盡管Microsoft公司推出了.NET平臺的集成開發(fā)環(huán)境,但由于其良好的界面和可操作性,加上支持標(biāo)準(zhǔn)C/C++規(guī)范,但仍有相當(dāng)多的編程人員使用VisualC++6.0進行應(yīng)用系統(tǒng)的開發(fā)。</p><p><b>  1.3關(guān)于兼容性</b></p><p>  本程序經(jīng)過調(diào)試,可以在XP系統(tǒng)下編譯運行,也可以在Vista下運行,界

10、面稍有不同,但不影響運行結(jié)果。</p><p><b>  二 概要設(shè)計</b></p><p>  2.1軟件主要功能設(shè)計</p><p><b>  2.1.1程序結(jié)構(gòu)</b></p><p>  根據(jù)分析,圖書管管理系統(tǒng)這個程序一共要實現(xiàn)如下幾個功能,包括能夠?qū)崿F(xiàn)的功能有:借書,還書,圖書維護

11、,讀者維護,離開等功能程序結(jié)構(gòu)如下面的圖1-1所示。</p><p><b>  2.1.2程序流程</b></p><p>  根據(jù)分析后的圖書館管理系統(tǒng)結(jié)構(gòu)設(shè)計出相應(yīng)的流程。圖書館管理系統(tǒng)的內(nèi)容主要包括:1借書,2還書,3圖書維護,4讀者維護,5離開。并且在每個子菜單下還有具體的對應(yīng)功能。</p><p>  選擇借書后要求:1讀者編號 2

12、 圖書編號</p><p>  選擇還書后要求:1讀者編號 2 圖書編號</p><p>  圖書維護后:1新增 2更改 3刪除 4查找 5顯示6全刪 0退出</p><p>  讀者維護后:1新增 2更改 3刪除 4查找 5顯示6全刪 0退出</p><p><b>  離開</b></p><p&

13、gt;<b>  三 軟件實現(xiàn)</b></p><p>  3.1變量及函數(shù)的聲明</p><p>  根據(jù)程序的結(jié)構(gòu),將圖書館管理程序需要實現(xiàn)的功能細(xì)化成為相應(yīng)的類。</p><p><b>  3.1.1函數(shù)聲明</b></p><p>  class Reader:</p>&l

14、t;p>  char *getname() //獲取姓名</p><p>  int gettag() //獲取刪除標(biāo)記</p><p>  int getno() //獲取讀者編號 </p><p>  void setname(char na[]) //設(shè)置姓名<

15、;/p><p>  void delbook() //設(shè)置刪除標(biāo)記 1:已刪 0:未刪</p><p>  void addreader(int n,char *na) //增加讀者</p><p>  void borrowbook(int bookid) //借書操作</p><p>  int retbook(int bo

16、okid) //還書操作</p><p>  void disp() //讀出讀者信息</p><p>  class RDatabase: //讀者類庫</p><p>  RDatabase() //構(gòu)造函數(shù),將reader.txt讀到read[]中</p><p>  void clear()

17、 //刪除所有讀者信息</p><p>  int addreader(int n,char *na) //添加讀者時先查找是否存在</p><p>  Reader *query(int readerid) //按編號查找</p><p>  void disp() //輸出所有讀者信息</p><p> 

18、 void readerdata() //讀者庫維護</p><p>  ~RDatabase() //析構(gòu)函數(shù),將read[]寫到reader.txt文件中</p><p>  class Book: //圖書類,實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等</p><p>  char *getname() //獲取姓名&

19、lt;/p><p>  int getno() //獲取圖書編號</p><p>  int gettag() //獲取刪除標(biāo)記</p><p>  void setname(char na[]) //設(shè)置書名</p><p>  void delbook() //刪除圖書</p><p&g

20、t;  void addbook(int n,char *na) //增加圖書 </p><p>  int borrowbook() //借書操作</p><p>  void retbook()//還書操作</p><p>  void disp()//輸出圖書</p><p>  class BDatabase://圖書庫類,

21、實現(xiàn)對圖書的維護,查找,刪除等</p><p>  BDatabase()//構(gòu)造函數(shù),將book.txt讀到book[]中</p><p>  void clear()//全刪</p><p>  int addbook(int n,char *na) //增加圖書</p><p>  Book *query(int bookid)

22、 //查找圖書</p><p>  void bookdata() //圖書庫維護</p><p>  void disp()</p><p>  ~BDatabase()//析構(gòu)函數(shù),將book[]寫到book.txt文件中</p><p><b>  3.1.2變量聲明</b></p><p&

23、gt;  const int Maxr=100;//最多的讀者 </p><p>  const int Maxb=100;//最多的圖書 </p><p>  const int Maxbor=5;//每位讀者最多借五本書</p><p>  class Reader:</p><p>  int tag; //刪除標(biāo)記 1:已刪 0:未刪

24、 </p><p>  int no; //讀者編號 </p><p>  char name[10]; //讀者姓名</p><p>  int borbook[Maxbor];//所借圖書</p><p>  class RDatabase:</p><p>  int top; //讀者記錄指針 </p&g

25、t;<p>  Reader read[Maxr];//讀者記錄</p><p>  class Book:</p><p>  int tag;//刪除標(biāo)記 1:已刪 0:未刪 </p><p>  int no;//圖書編號 </p><p>  char name[20];//書名 </p><p>

26、;  int onshelf;//是否再架 1:再架 2:已借</p><p>  class BDatabase:</p><p>  int top; //圖書記錄指針 </p><p>  Book book[Maxb]; //圖書記錄</p><p><b>  主函數(shù)中:</b></p><

27、p>  char choice; </p><p>  int bookid,readerid; </p><p>  RDatabase ReaderDB; </p><p>  Reader *r; </p><p>  BDatabase BookDB; </p><p><b>  Book *

28、b;</b></p><p><b>  3.1.3資源</b></p><p><b>  1·頭文件</b></p><p>  #include <iostream> </p><p>  #include <iomanip> </p>

29、<p>  #include <string> </p><p>  #include <fstream>//輸入/輸出文件流類</p><p>  3.2主要功能的實現(xiàn)</p><p><b>  3.2.1系統(tǒng)界面</b></p><p>  圖書館管理系統(tǒng)的首界面包括了1借書,

30、2還書,3圖書維護,4讀者維護,5離開這五個功能。</p><p>  本程序采用switch語句實現(xiàn)各種操作的選擇。</p><p>  在程序的整個過程中用到選擇的我地方都采用的是switch語句,通過switch語句確定所要執(zhí)行的代碼,從而實現(xiàn)需要的操作的選擇。</p><p><b>  3.2.2讀者維護</b></p>

31、<p>  選擇4后進入讀者維護,在讀者維護階段可以1新增 2更改 3刪除 4查找 5顯示6全刪 0退出。</p><p>  在讀者類中構(gòu)造函數(shù),將reader.txt讀到read[]中,在reader.txt中包含了已有的讀者信息,調(diào)用讀者類中的各成員函數(shù)可以實現(xiàn)以上的六個功能。</p><p>  進入讀者維護的界面以后,管理員可以繼續(xù)根據(jù)需要選擇所列出的操作。在完成操作

32、以后可以按0鍵退出回到系統(tǒng)的初始界面。</p><p><b>  具體的程序如下:</b></p><p>  cin >> choice; </p><p>  switch (choice) </p><p><b>  { </b></p><p>  c

33、ase '1': </p><p>  cout << "輸入讀者編號:"; </p><p>  cin >> readerid; </p><p>  cout << "輸入讀者姓名:"; </p><p>  cin >> rname

34、; </p><p>  addreader (readerid,rname); </p><p><b>  break; </b></p><p>  case '2': </p><p>  cout << "輸入讀者編號:"; </p><p&g

35、t;  cin >> readerid; </p><p>  r=query(readerid); </p><p>  if (r==NULL) </p><p><b>  { </b></p><p>  cout << " 該讀者不存在 "<<endl;

36、</p><p><b>  break; </b></p><p><b>  } </b></p><p>  cout << "輸入新的姓名:"; </p><p>  cin >> rname; </p><p>  r-&

37、gt;setname(rname); </p><p><b>  break; </b></p><p>  case '3': </p><p>  cout << " 輸入讀者編號:"; </p><p>  cin >> readerid; </p

38、><p>  r=query(readerid); </p><p>  if (r==NULL) </p><p><b>  { </b></p><p>  cout <<" 該讀者不存在" << endl; </p><p><b>  b

39、reak; </b></p><p><b>  } </b></p><p>  r->delbook(); </p><p><b>  break; </b></p><p>  case '4': </p><p>  cout &l

40、t;< "讀入讀者編號:"; </p><p>  cin >> readerid; </p><p>  r=query(readerid); </p><p>  if (r==NULL) </p><p><b>  { </b></p><p>  c

41、out <<"該讀者不存在"<< endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  r->disp(); </p><p><b>  break; </b

42、></p><p>  case '5': </p><p><b>  disp(); </b></p><p><b>  break; </b></p><p>  case '6': </p><p><b>  cle

43、ar(); </b></p><p><b>  break; </b></p><p>  default:cout<<"輸入錯誤,請從新輸入:";break; </p><p><b>  } </b></p><p><b>  }<

44、/b></p><p><b>  3.2.3圖書維護</b></p><p>  圖書維護后:1新增 2更改 3刪除 4查找 5顯示6全刪 0退出等操作</p><p>  而我們所采用的程序語句是與讀者維護部分所用的語句是基本相同的,只是調(diào)用了不同類里面的函數(shù),實現(xiàn)不同的功能,操作步驟相同。</p><p> 

45、 3.2.4借書和還書</p><p>  借書和還書是讀者所要進行的操作,是這個系統(tǒng)所要實現(xiàn)的最基本的功能,也是使用最頻繁的功能。同樣也是通過switch語句實現(xiàn)的,而讀者的信息必需先由管理員錄入即在reader.txt中存有該讀者的信息后才可以進行借書和還書的操作。這就保證了圖書的安全性。</p><p><b>  3.2.5退出系統(tǒng)</b></p>

46、<p>  輸入0以后可以退出系統(tǒng),實現(xiàn)的具體程序如下:</p><p>  default:cout<<"輸入錯誤,請從新輸入:";break;</p><p><b>  四 結(jié)果與討論</b></p><p><b>  4.1程序運行</b></p>&l

47、t;p>  程序開始運行后會進入系統(tǒng)首界面,由用戶進行選擇接下來要執(zhí)行的操作,用戶或者管理員可以根據(jù)自己的需要選擇相應(yīng)的數(shù)字,進入下一級的操作。在操作過程中用戶按下0鍵即可退出系統(tǒng)。若在想進入則再次打開系統(tǒng)。</p><p> ?。?)退出系統(tǒng)的樣式</p><p> ?。?)以讀者維護為例展示運行</p><p>  開始對讀者的信息進行處理:選擇新增<

48、;/p><p>  上圖中顯示了新增讀者需要錄入的信息,錄入以后該讀者的信息保存在reader.txt文件中,系統(tǒng)就可以識別該讀者的信息,該讀者就可以進行之后的借書和還書的操作。這部分工作應(yīng)當(dāng)是由管理員來進行的。</p><p>  4.2錯誤調(diào)試與分析</p><p> ?。?)在寫程序時,有很多拼寫錯誤,例好多處把Readdata()誤打Readdate();<

49、;/p><p> ?。?)結(jié)束的分號,在不同的輸入法狀態(tài)下輸入,這些小錯誤剛開始很難發(fā)現(xiàn),不過有了經(jīng)驗,就很容易了。創(chuàng)建新的構(gòu)造函數(shù)時,使用出現(xiàn)了錯誤。</p><p> ?。?)重載構(gòu)造函數(shù)要注意函數(shù)的訪問權(quán)限,結(jié)果就不會出現(xiàn)錯誤。</p><p>  (4)讀者類中借書操作函數(shù)中,采用循環(huán)語句時判斷讀者已借圖書量時for(int i=0;i<Maxbor;i+

50、+)誤寫為for(int i=1;i<Maxbor;i++),使循環(huán)發(fā)生錯誤。</p><p> ?。?)本程序由于經(jīng)常使用switch語句使得整個程序特別的長,在什么時候選擇,什么時候選擇跳出程序成為這個程序的難點,在運行時雖然沒有出現(xiàn)編譯錯誤但是可能會出現(xiàn)的結(jié)果是:程序所實現(xiàn)的功能與預(yù)期的功能有差距,這就需要再次調(diào)整switch語句的順序,使功能更好地實現(xiàn)。</p><p>  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論