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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  C++課程設(shè)計(jì)報(bào)告</b></p><p>  設(shè)計(jì)題目:圖書(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è)計(jì)- 2 -</p><p>  2.1軟件主要功能設(shè)計(jì)- 2 -</p><p>  

3、2.1.1程序結(jié)構(gòu)- 2 -</p><p>  2.1.2程序流程- 2 -</p><p>  第三章 軟件實(shí)現(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主要功能的實(shí)現(xiàn)- 5 -</p><p>  3.2.1系統(tǒng)界面- 5 -</p><p>  3.2.2借書(shū)- 6 -</p><p>  3.2.3還書(shū)- 7 -</p><p>  3.2.4圖書(shū)維護(hù)- 9 -</p>

5、;<p>  3.2.5讀者維護(hù)- 9 -</p><p>  第四章 結(jié)果與討論- 10 -</p><p>  4.1程序運(yùn)行- 10 -</p><p>  4.2錯(cuò)誤調(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++制作一個(gè)圖書(shū)館管理系統(tǒng),要求:</p><p> ?。?)能夠?qū)崿F(xiàn)的功能有:借書(shū),還書(shū),圖書(shū)維護(hù):負(fù)責(zé)圖書(shū)的采購(gòu)、信息存檔、對(duì)圖書(shū)信息的查詢及編輯,讀者維護(hù):對(duì)學(xué)生信息的管理、對(duì)借閱書(shū)

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

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

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

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

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

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

13、gt;<b>  三 軟件實(shí)現(xiàn)</b></p><p>  3.1變量及函數(shù)的聲明</p><p>  根據(jù)程序的結(jié)構(gòu),將圖書(shū)館管理程序需要實(shí)現(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() //獲取讀者編號(hào) </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) //借書(shū)操作</p><p>  int retbook(int bo

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

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

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

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

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

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

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

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

24、 </p><p>  int no; //讀者編號(hào) </p><p>  char name[10]; //讀者姓名</p><p>  int borbook[Maxbor];//所借圖書(shū)</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;//圖書(shū)編號(hào) </p><p>  char name[20];//書(shū)名 </p><p>

26、;  int onshelf;//是否再架 1:再架 2:已借</p><p>  class BDatabase:</p><p>  int top; //圖書(shū)記錄指針 </p><p>  Book book[Maxb]; //圖書(shū)記錄</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主要功能的實(shí)現(xiàn)</p><p><b>  3.2.1系統(tǒng)界面</b></p><p>  圖書(shū)館管理系統(tǒng)的首界面包括了1借書(shū),

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

31、<p>  選擇4后進(jìn)入讀者維護(hù),在讀者維護(hù)階段可以1新增 2更改 3刪除 4查找 5顯示6全刪 0退出。</p><p>  在讀者類中構(gòu)造函數(shù),將reader.txt讀到read[]中,在reader.txt中包含了已有的讀者信息,調(diào)用讀者類中的各成員函數(shù)可以實(shí)現(xiàn)以上的六個(gè)功能。</p><p>  進(jìn)入讀者維護(hù)的界面以后,管理員可以繼續(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 << "輸入讀者編號(hào):"; </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 << "輸入讀者編號(hào):"; </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 << " 輸入讀者編號(hào):"; </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;< "讀入讀者編號(hào):"; </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<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";break; </p><p><b>  } </b></p><p><b>  }<

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論