2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(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>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  課程名稱 面向?qū)ο蟪绦蛟O(shè)計(jì) </p><p>  課題名稱 圖書管理系統(tǒng) </p><p>  專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p>&

2、lt;p><b>  1.課程設(shè)計(jì)目的:</b></p><p>  面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)是集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程后進(jìn)行的一次全面的綜合練習(xí)。要求學(xué)生達(dá)到熟練掌握C++語言的基本知識(shí)和技能;基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的思想和方法;能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題,從而提高動(dòng)手編程解決實(shí)際問題的能力。</p>&l

3、t;p><b>  2.課題題目</b></p><p>  1)公司庫存管理系統(tǒng)</p><p>  2)高校學(xué)籍管理系統(tǒng)</p><p>  3)高校工資管理系統(tǒng)</p><p>  4)高校人事管理系統(tǒng)</p><p><b>  5)通訊錄程序設(shè)計(jì)</b><

4、;/p><p>  6)學(xué)生成績(jī)管理系統(tǒng)</p><p><b>  7) 圖書管理系統(tǒng)</b></p><p>  8)文本編輯器的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  9)學(xué)生考勤管理系統(tǒng)</p><p>  10)公司人員管理系統(tǒng)</p><p><b>  3.設(shè)計(jì)

5、要求:</b></p><p>  ⑴ 設(shè)計(jì)課題題目:每位同學(xué)根據(jù)自己學(xué)號(hào)除以9所得的余數(shù)加一選擇相應(yīng)題號(hào)的課題。換題者不記成績(jī)。(課題10只做為參考課題)</p><p> ?、?根據(jù)自己對(duì)應(yīng)的課題完成以下主要工作:①完成系統(tǒng)需求分析:包括系統(tǒng)設(shè)計(jì)目的與意義;系統(tǒng)功能需求(系統(tǒng)流程圖);輸入輸出的要求。②完成系統(tǒng)總體設(shè)計(jì):包括系統(tǒng)功能分析;系統(tǒng)功能模塊劃分與設(shè)計(jì)(系統(tǒng)功能模塊

6、圖)。③完成系統(tǒng)詳細(xì)設(shè)計(jì):包括數(shù)據(jù)庫需求分析;數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)(E-R圖);數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì);類層次圖;界面設(shè)計(jì)與各功能模塊實(shí)現(xiàn)。④系統(tǒng)調(diào)試:調(diào)試出現(xiàn)的主要問題,編譯語法錯(cuò)誤及修改,重點(diǎn)是運(yùn)行邏輯問題修改和調(diào)整。⑤使用說明書及編程體會(huì):說明如何使用你編寫的程序,詳細(xì)列出每一步的操作步驟。⑥關(guān)鍵源程序(帶注釋)</p><p> ?、?按規(guī)定格式完成課程設(shè)計(jì)報(bào)告,將其打印稿(A4紙)上交給老師存檔。</p

7、><p>  ⑷ 不得抄襲他人程序、課程設(shè)計(jì)報(bào)告,每個(gè)人應(yīng)體現(xiàn)自己的個(gè)性設(shè)計(jì)。</p><p><b>  二、進(jìn)度安排</b></p><p>  第 18 周 星期一 8:00——12:00</p><p>  星期二 8:00——12:00</p><p>  星期四 8:00——12:

8、00</p><p>  第 19 周 星期一 8:00——12:00</p><p>  星期二 14:00——18:00</p><p>  星期三 8:00——12:00</p><p><b>  三、參考書籍</b></p><p>  1.《C++程序設(shè)計(jì)課程設(shè)計(jì)》 劉振安編

9、著 TP312C563</p><p>  2.《C++ Builder和Delphi課程設(shè)計(jì)與系統(tǒng)開發(fā)案例》 伍俊良 清華大學(xué)出版社 7-302-06072-X </p><p>  3.Visual C++課程設(shè)計(jì)案例精編 嚴(yán)華峰 中國水利水電出版社 7-5084-2007-1 2004 </p><p>  4.Visual C++課程設(shè)計(jì)與系統(tǒng)

10、開發(fā)案例 伍俊良 清華大學(xué)出版社 7-302-05968-3 2002</p><p>  5.Visual C++語言課程設(shè)計(jì) : 案例精選與編程指導(dǎo) 陳清華朱紅 東南大學(xué)出版社 7-81089-275-4 2003 </p><p>  6.VisualC++課程設(shè)計(jì)案例精編 中國水利水電出版社 7-5084-1004-1 2002 </p>&

11、lt;p>  7.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編 : 用C/C++描述 李建學(xué)李光元吳春芳 清華大學(xué)出版社 7-302-14536-9 2007 </p><p>  (編程平臺(tái)不限,vc++, c++ Builder等等。)</p><p>  課題8:圖書管理系統(tǒng)</p><p>  (一)、課程設(shè)計(jì)題目:</p><p>&

12、lt;b>  圖書管理系統(tǒng)</b></p><p> ?。ǘ⒛康呐c要求: </p><p><b>  1、目的: </b></p><p>  (1)要求學(xué)生達(dá)到熟練掌握C++語言的基本知識(shí)和技能; </p><p> ?。?)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; </p>&

13、lt;p> ?。?)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。 </p><p><b>  2、基本要求: </b></p><p> ?。?)要求利用面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來完成系統(tǒng)的設(shè)計(jì); </p><p> ?。?)要求在設(shè)計(jì)的過程中,建立清晰的類層次; </p><p> 

14、?。?)在系統(tǒng)中至少要定義四個(gè)類,每個(gè)類中要有各自的屬性和方法; </p><p>  (4)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。 </p><p><b>  3、創(chuàng)新要求: </b></p><p>  在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。 </p><p>  4、寫出設(shè)計(jì)說明

15、書 </p><p> ?。ㄈ⒃O(shè)計(jì)方法和基本原理: </p><p>  1、問題描述(功能要求): </p><p>  在圖書管理系統(tǒng)中,要為每個(gè)借閱者建立一個(gè)賬戶,并給借閱者發(fā)放借閱卡(借閱卡可以提供借閱卡號(hào)、借閱者名),賬戶中存儲(chǔ)借閱者的個(gè)人信息、借閱信息以及預(yù)定信息。持有借閱卡的借閱者可以借閱書刊、返還書刊、查詢書刊信息、預(yù)定書刊并取消預(yù)定,但這些操作

16、都是通過圖書管理員進(jìn)行的,也即借閱者不直接與系統(tǒng)交互,而是圖書管理員充當(dāng)借閱者的代理與系統(tǒng)交互。在借閱書刊時(shí),需要輸入所借閱的書刊名,書刊的ISBN/ISSN號(hào),然后輸入借閱者的圖書卡號(hào)和借閱者名,完成后提交所填表格,系統(tǒng)驗(yàn)證借閱者是否有效(在系統(tǒng)中存在賬戶),若有效,借閱請(qǐng)求被接受,系統(tǒng)查詢數(shù)據(jù)庫系統(tǒng),看借閱者所借閱的書刊是否存在,若存在,則借閱者可借出書刊,建立并在系統(tǒng)中存儲(chǔ)借閱記錄。借閱者還書后,刪除關(guān)于所還書刊的借閱記錄。如果借

17、閱者所借的書刊已被借出,借閱者還可預(yù)定該書刊,一旦借閱者預(yù)定的書刊可以獲得,就將書刊直接寄給預(yù)定人(為了簡(jiǎn)化系統(tǒng),預(yù)定書刊可獲得時(shí)就不通知借閱者了)。另外,為了簡(jiǎn)化系統(tǒng),也不考慮書刊的最長(zhǎng)借閱期限,假設(shè)借閱者可以無限期地保存所借閱的書刊。 </p><p>  2、問題的解決方案: </p><p>  根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: </p><p&

18、gt; ?。?)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);</p><p> ?。?)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系包括屬性和行為; </p><p> ?。?)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次; </p><p> ?。?)完成類層次中各個(gè)類的描述(包括屬性和方法); </p><p> ?。?)完成類中各個(gè)成員函數(shù)的

19、定義; </p><p> ?。?)完成系統(tǒng)的應(yīng)用模塊; </p><p><b>  (7)功能調(diào)試; </b></p><p>  (8)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書</p><p><b>  目 錄</b></p><p>  1. 系統(tǒng)需求分析……………

20、………………………………….8</p><p>  1.1系統(tǒng)設(shè)計(jì)的目的與意義…………………………………………………….8</p><p>  1.2系統(tǒng)功能需求……………………………………..…………………………..8</p><p>  2. 總體設(shè)計(jì)………………...…………………………………..8</p><p>  2.1系統(tǒng)功

21、能分析………………………………………………..………………..8</p><p>  2.2系統(tǒng)功能模塊劃分與設(shè)計(jì)…………………………….……..…………….…8</p><p>  2.3系統(tǒng)功能模塊圖………………………………………….…...……………....9</p><p>  3. 詳細(xì)設(shè)計(jì)...…………………………………………………..9</p

22、><p>  3.1讀者類的設(shè)計(jì)……………………………………………………………....…9</p><p>  3.2讀者庫類的設(shè)計(jì)…………………………………………………………......10</p><p>  3.3圖書類的設(shè)計(jì)………………………………………………………..........10</p><p>  3.4圖書庫類的設(shè)計(jì)…………

23、……………………………..…………...….....11</p><p>  4. 系統(tǒng)調(diào)試………………………………………………...……………………………..11</p><p>  5. 結(jié)果分析………………………………………...……..…..13</p><p>  6. 總結(jié)………………………………………………………....14</p&g

24、t;<p>  6.1感想與體會(huì)……………………………………………………………….…..14</p><p>  7. 附錄……………………………………………………....…14 </p><p>  7.1源程序清單………………………………………………………..…...……...14</p><p><b>  系統(tǒng)需求分析<

25、;/b></p><p>  1.1系統(tǒng)設(shè)計(jì)的目的與意義:</p><p>  圖書系統(tǒng)在生活中運(yùn)用相當(dāng)廣泛,因此需要很多程序?qū)λM(jìn)行管理。</p><p>  1.2 系統(tǒng)功能需求:</p><p>  本系統(tǒng)有四個(gè)類,Book類,BDatebase類、Reader類、RDatebase類,存儲(chǔ)借閱者的個(gè)人信息、借閱信息以及預(yù)定信息。

26、持有借閱卡的借閱者可以借閱書刊、返還書刊、查詢書刊信息、預(yù)定書刊并取消預(yù)定等功能。</p><p><b>  總體設(shè)計(jì)</b></p><p>  2.1 系統(tǒng)功能分析:</p><p>  系統(tǒng)通過調(diào)用函數(shù)來實(shí)現(xiàn)刪除圖書、讀者信息,添加圖書、讀者信息等功能。delbook( )函數(shù)用于刪除圖書信息;addbook( )函數(shù)用于增加圖書信息;

27、borrowbook( )函數(shù)用于實(shí)現(xiàn)借書操作;returnbook( )函數(shù)用于實(shí)現(xiàn)還書操作等等;主函數(shù)用于掉用這些函數(shù)。</p><p>  2.2系統(tǒng)功能模塊劃分與設(shè)計(jì)</p><p>  本系統(tǒng)定義了Book類、BDatebase類、Reader類、RDatebase類這四個(gè)類,定義了addbook ( )、addreader( )、borrowbook ( )、setname(

28、)等函數(shù)來實(shí)現(xiàn)系統(tǒng)所需功能。</p><p>  2.3 系統(tǒng)功能模塊圖:</p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p>  3.1 讀者類的設(shè)計(jì)</p><p>  該類定義了借書操作,還書操作,設(shè)置讀者姓名等功能。</p><p><b>  圖 3.1</b&

29、gt;</p><p>  3.2 讀者庫類類的設(shè)計(jì)</p><p>  該類實(shí)現(xiàn)了建立讀者的個(gè)人資料,刪除讀者信息,輸出讀者信息等功能。</p><p><b>  圖 3.2</b></p><p>  3.3 圖書類的設(shè)計(jì)</p><p>  圖書類,可以實(shí)現(xiàn)對(duì)圖書的描述,圖書的編號(hào),書名,

30、借出,還入等操作。</p><p><b>  圖 3.3</b></p><p>  3.4 圖書庫類的設(shè)計(jì)</p><p><b>  圖 3.4</b></p><p><b>  系統(tǒng)調(diào)試</b></p><p>  在調(diào)試過程中,出現(xiàn)了一些錯(cuò)誤

31、。</p><p>  1、輸入數(shù)據(jù)時(shí),輸錯(cuò)了數(shù)據(jù)的類型會(huì)造成死循環(huán),因此輸入時(shí)需要注意。</p><p>  2、一開始主界面輸入非正確數(shù)字時(shí),沒有提示錯(cuò)誤。容易造成用戶誤解</p><p><b>  圖4.1</b></p><p>  在主函數(shù)的switch語句結(jié)束處加上default:cout<<&

32、quot;輸入錯(cuò)誤,請(qǐng)從新輸入:";就可以了,修改后:</p><p><b>  圖4.2 </b></p><p><b>  具體調(diào)試過程。</b></p><p><b>  主界面</b></p><p><b>  圖4.3</b>

33、</p><p><b>  圖書維護(hù)</b></p><p><b>  圖4.4</b></p><p><b>  讀者維護(hù)</b></p><p><b>  圖4.1</b></p><p><b>  5.結(jié)果

34、分析</b></p><p>  本程序總共設(shè)計(jì)了四個(gè)類,滿足了課題對(duì)類的要求,在設(shè)計(jì)的過程中,建立了較為清晰的類層次,也利用了面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來完成系統(tǒng)的設(shè)計(jì),做到了每個(gè)借閱者建立一個(gè)賬戶,賬戶中存儲(chǔ)借閱者的個(gè)人信息、借閱信息等要求。而且界面美觀,容易操作。但是程序太長(zhǎng),不夠簡(jiǎn)練,導(dǎo)致出現(xiàn)錯(cuò)誤很難發(fā)現(xiàn)和修改。</p><p><b>  總結(jié)<

35、;/b></p><p>  6.1 感想和體會(huì):</p><p>  通過這次的課程設(shè)計(jì),讓我充分的感覺到了要自己設(shè)計(jì)一個(gè)程序是多么的難,以及學(xué)習(xí)好c++是多么的重要。</p><p>  在這個(gè)程序的設(shè)計(jì)過程中,我清楚的意識(shí)到自己的水平有多么的薄弱,課程的知識(shí)學(xué)得有多么的不扎實(shí)。看網(wǎng)上的例子好像覺得也沒那么難,自己一上機(jī)實(shí)際操作就出現(xiàn)了很多問題,調(diào)試的時(shí)候

36、系統(tǒng)總是在報(bào)錯(cuò),還有很多警告,每增加一個(gè)函數(shù)就要調(diào)試好久,有時(shí)候應(yīng)為少了一個(gè)大括號(hào)或是分號(hào),導(dǎo)致要找很久很久。雖然系統(tǒng)可以運(yùn)行,也具有了一些基本的功能,但我意識(shí)到了自己有太多的不足。</p><p>  以后還會(huì)有很多的課程設(shè)計(jì),一定要吸取這次的教訓(xùn),把知識(shí)學(xué)懂學(xué)透學(xué)精,真正的為我所用,這樣走上社會(huì)我才能真正的發(fā)揮所長(zhǎng)。</p><p><b>  7、附錄</b>&

37、lt;/p><p>  7.1 源程序清單:</p><p>  #include <iostream> </p><p>  #include <iomanip> </p><p>  #include <string> </p><p>  #include <fstream&

38、gt;</p><p>  using namespace std; </p><p>  const int Maxr=100;</p><p>  const int Maxb=100;</p><p>  const int Maxbor=5;</p><p>  class Reader </p>

39、<p><b>  { </b></p><p><b>  private: </b></p><p><b>  int tag; </b></p><p><b>  int no; </b></p><p>  char name[10

40、];</p><p>  int borbook[Maxbor]; </p><p><b>  public: </b></p><p>  Reader() {} </p><p>  char *getname() {return name;} </p><p>  int gettag()

41、 {return tag;} </p><p>  int getno() {return no;} </p><p>  void setname(char na[]) </p><p><b>  { </b></p><p>  strcpy(name,na); </p><p><

42、b>  } </b></p><p>  void delbook(){ tag=1; }</p><p>  void addreader(int n,char *na)</p><p><b>  { </b></p><p><b>  tag=0; </b></p&g

43、t;<p><b>  no=n; </b></p><p>  strcpy(name,na); </p><p>  for(int i=0;i<Maxbor;i++) </p><p>  borbook[i]=0; </p><p><b>  } </b></p&

44、gt;<p>  void borrowbook(int bookid)</p><p><b>  { </b></p><p>  for(int i=0;i<Maxbor;i++) </p><p><b>  { </b></p><p>  if (borbook[i]

45、==0) </p><p><b>  { </b></p><p>  borbook[i]=bookid; </p><p><b>  return; </b></p><p><b>  } </b></p><p><b>  } &

46、lt;/b></p><p><b>  } </b></p><p>  int retbook(int bookid)</p><p><b>  { </b></p><p>  for(int i=0;i<Maxbor;i++) </p><p><

47、b>  { </b></p><p>  if(borbook[i]==bookid) </p><p><b>  { </b></p><p>  borbook[i]=0; </p><p>  return 1; </p><p><b>  } </b&

48、gt;</p><p><b>  } </b></p><p>  return 0; </p><p><b>  } </b></p><p>  void disp()</p><p><b>  { </b></p><p&

49、gt;  cout << setw(5) << no <<setw(10) << name<<"借書編號(hào):["; </p><p>  for(int i=0;i<Maxbor;i++) </p><p>  if(borbook[i]!=0) </p><p>  cout &l

50、t;< borbook[i] << "|"; </p><p>  cout << "]"<<endl; </p><p><b>  } </b></p><p><b>  }; </b></p><p>  cl

51、ass RDatabase </p><p><b>  { </b></p><p><b>  private: </b></p><p><b>  int top; </b></p><p>  Reader read[Maxr];</p><p&g

52、t;<b>  public: </b></p><p>  RDatabase() </p><p><b>  { </b></p><p>  Reader s; </p><p><b>  top=-1; </b></p><p>  fstr

53、eam file("reader.txt",ios::in); </p><p>  while (1) </p><p><b>  { </b></p><p>  file.read((char *)&s,sizeof(s)); </p><p>  if (!file)break; &

54、lt;/p><p><b>  top++; </b></p><p>  read[top]=s; </p><p><b>  } </b></p><p>  file.close(); </p><p><b>  } </b></p>

55、<p>  void clear()</p><p><b>  { </b></p><p><b>  top=-1; </b></p><p><b>  } </b></p><p>  int addreader(int n,char *na)</p

56、><p><b>  { </b></p><p>  Reader *p=query(n); </p><p>  if (p==NULL) </p><p><b>  { </b></p><p><b>  top++; </b></p>

57、<p>  read[top].addreader(n,na); </p><p>  return 1; </p><p><b>  } </b></p><p>  return 0; </p><p><b>  } </b></p><p>  Rea

58、der *query(int readerid)</p><p><b>  { </b></p><p>  for (int i=0;i<=top;i++) </p><p>  if (read[i].getno()==readerid && </p><p>  read[i].gettag

59、()==0) </p><p><b>  { </b></p><p>  return &read[i]; </p><p><b>  } </b></p><p>  return NULL; </p><p><b>  } </b>&

60、lt;/p><p>  void disp() </p><p><b>  { </b></p><p>  for (int i=0;i<=top;i++) </p><p>  read[i].disp(); </p><p><b>  } </b></p&g

61、t;<p>  void readerdata();</p><p>  ~RDatabase()</p><p><b>  { </b></p><p>  fstream file("reader.txt",ios::out); </p><p>  for (int i=0;i&

62、lt;=top;i++) </p><p>  if (read[i].gettag()==0) </p><p>  file.write((char *)&read[i],sizeof(read[i])); </p><p>  file.close(); </p><p><b>  } </b></

63、p><p><b>  }; </b></p><p>  void RDatabase::readerdata() </p><p><b>  { </b></p><p>  char choice; </p><p>  char rname[20]; </p>

64、;<p>  int readerid; </p><p>  Reader *r; </p><p>  while (choice!='0') </p><p><b>  { </b></p><p>  cout <<"\n\n\t\t\t讀 者 維 護(hù)\n\n

65、\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 刪 除\n\n\t\t 4 查 找\n\n\t\t 5 顯 示\n\n\t\t 6 全 刪\n\n\t\t 0 退 出"<<endl; </p><p>  cin >> choice; </p><p>  switch (choice) </p><p>

66、<b>  { </b></p><p>  case '1': </p><p>  cout << "輸入讀者編號(hào):"; </p><p>  cin >> readerid; </p><p>  cout << "輸入讀者姓名:&q

67、uot;; </p><p>  cin >> rname; </p><p>  addreader (readerid,rname); </p><p><b>  break; </b></p><p>  case '2': </p><p>  cout &l

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

69、out << " 該讀者不存在 "<<endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  cout << "輸入新的姓名:"; </p><p> 

70、 cin >> rname; </p><p>  r->setname(rname); </p><p><b>  break; </b></p><p>  case '3': </p><p>  cout << " 輸入讀者編號(hào):"; </

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

72、lt;< endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  r->delbook(); </p><p><b>  break; </b></p><p>  c

73、ase '4': </p><p>  cout << "讀入讀者編號(hào):"; </p><p>  cin >> readerid; </p><p>  r=query(readerid); </p><p>  if (r==NULL) </p><p>

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

75、; </p><p><b>  break; </b></p><p>  case '5': </p><p><b>  disp(); </b></p><p><b>  break; </b></p><p>  case &

76、#39;6': </p><p><b>  clear(); </b></p><p><b>  break; </b></p><p>  default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";break; </p><p><b>  }

77、</b></p><p><b>  } </b></p><p><b>  } </b></p><p>  class Book </p><p><b>  { </b></p><p><b>  private: <

78、;/b></p><p><b>  int tag;</b></p><p><b>  int no;</b></p><p>  char name[20];</p><p>  int onshelf; </p><p><b>  public: &

79、lt;/b></p><p><b>  Book(){} </b></p><p>  char *getname() { return name; }</p><p>  int getno(){ return no; }</p><p>  int gettag(){ return tag; }</p&

80、gt;<p>  void setname(char na[]) </p><p><b>  { </b></p><p>  strcpy(name,na); </p><p><b>  } </b></p><p>  void delbook(){ tag=1;} </

81、p><p>  void addbook(int n,char *na)</p><p><b>  { </b></p><p><b>  tag=0; </b></p><p><b>  no=n; </b></p><p>  strcpy(nam

82、e,na); </p><p>  onshelf=1; </p><p><b>  } </b></p><p>  int borrowbook()</p><p><b>  { </b></p><p>  if (onshelf==1) </p>&

83、lt;p><b>  { </b></p><p>  onshelf=0; </p><p>  return 1; </p><p><b>  } </b></p><p>  return 0; </p><p><b>  } </b>&

84、lt;/p><p>  void retbook()</p><p><b>  { </b></p><p>  onshelf=1; </p><p><b>  } </b></p><p>  void disp()</p><p><b&g

85、t;  { </b></p><p>  cout << setw(6) << no << setw(18) << name << setw(10) </p><p>  <<(onshelf==1? "在架":"已借") <<endl; </p&g

86、t;<p><b>  } </b></p><p><b>  }; </b></p><p>  class BDatabase </p><p><b>  { </b></p><p><b>  private: </b></

87、p><p>  int top; </p><p>  Book book[Maxb]; </p><p><b>  public: </b></p><p>  BDatabase()</p><p><b>  { </b></p><p><

88、;b>  Book b; </b></p><p><b>  top=-1; </b></p><p>  fstream file("book.txt",ios::in); </p><p>  while (1) </p><p><b>  { </b>

89、</p><p>  file.read((char *)&b,sizeof(b)); </p><p>  if (!file) break; </p><p><b>  top++; </b></p><p>  book[top]=b; </p><p><b>  }

90、</b></p><p>  file.close(); </p><p><b>  } </b></p><p>  void clear()</p><p><b>  { </b></p><p><b>  top=-1; </b>

91、</p><p><b>  } </b></p><p>  int addbook(int n,char *na)</p><p><b>  { </b></p><p>  Book *p=query(n); </p><p>  if (NULL==p) </

92、p><p><b>  { </b></p><p><b>  top++; </b></p><p>  book[top].addbook(n,na); </p><p>  return 1; </p><p><b>  } </b></p&

93、gt;<p>  return 0; </p><p><b>  } </b></p><p>  Book *query(int bookid)</p><p><b>  { </b></p><p>  for (int i=0;i<=top;i++) </p>

94、;<p>  if (book[i].getno()==bookid &&book[i].gettag()==0) </p><p><b>  { </b></p><p>  return &book[i]; </p><p><b>  } </b></p><

95、;p>  return NULL; </p><p><b>  } </b></p><p>  void bookdata();</p><p>  void disp() </p><p><b>  { </b></p><p>  for (int i=0;i

96、<=top;i++) </p><p>  if (book[i].gettag()==0) </p><p>  book[i].disp(); </p><p><b>  } </b></p><p>  ~BDatabase()</p><p><b>  { </b

97、></p><p>  fstream file("book.txt",ios::out); </p><p>  for (int i=0;i<=top;i++) </p><p>  if (book[i].gettag()==0) </p><p>  file.write((char *)&bo

98、ok[i],sizeof(book[i])); </p><p>  file.close(); </p><p><b>  } </b></p><p><b>  }; </b></p><p>  void BDatabase::bookdata() </p><p>

99、;<b>  { </b></p><p>  char choice; </p><p>  char bname[40]; </p><p>  int bookid; </p><p><b>  Book *b; </b></p><p>  while (choic

100、e!='0') </p><p><b>  { </b></p><p>  cout <<"\n\n\n\t\t\t圖 書 維 護(hù) "<<endl<<endl; </p><p>  cout<<"\t\t1 新 增\n \t\t2 更 改\n\t

101、\t3 刪 除\n\t\t4 查 找\n\t\t5 顯 示\n\t\t6 全 刪\n\t\t0 退 出"<<endl; </p><p>  cin >> choice; </p><p>  switch (choice) </p><p><b>  { </b></p><p> 

102、 case '1': </p><p>  cout << "輸入圖書編號(hào):"<<endl; </p><p>  cin >> bookid; </p><p>  cout << "輸入圖書書名:"<<endl; </p><p

103、>  cin >> bname; </p><p>  addbook(bookid,bname); </p><p><b>  break; </b></p><p>  case '2': </p><p>  cout << "輸入圖書編號(hào):"&l

104、t;<endl; </p><p>  cin >> bookid; </p><p>  b=query(bookid); </p><p>  if (b==NULL) </p><p><b>  { </b></p><p>  cout << "

105、該圖書不存在 "<<endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  cout << "輸入新的書名:"<<endl; </p><p>  cin >

106、;> bname; </p><p>  b->setname(bname); </p><p><b>  break; </b></p><p>  case '3': </p><p>  cout <<" 讀入圖書編號(hào):"<<endl; &l

107、t;/p><p>  cin >> bookid; </p><p>  b=query(bookid); </p><p>  if (b==NULL) </p><p><b>  { </b></p><p>  cout <<" 該圖書不存在" &l

108、t;< endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  b->delbook(); </p><p><b>  break; </b></p><p>  ca

109、se '4': </p><p>  cout << " 讀入圖書編號(hào):"<<endl; </p><p>  cin >> bookid; </p><p>  b=query(bookid); </p><p>  if (b==NULL) </p>&

110、lt;p><b>  { </b></p><p>  cout <<" 該圖書不存在"<< endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  b-&

111、gt;disp(); </p><p><b>  break; </b></p><p>  case '5': </p><p><b>  disp(); </b></p><p><b>  break; </b></p><p>

112、;  case '6': </p><p><b>  clear(); </b></p><p><b>  break; </b></p><p>  default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:"; </p><p><b> 

113、 } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void main() </p><p><b>  { </b></p><p>  char choice; <

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

115、<p>  while(choice!='0') </p><p><b>  { </b></p><p>  cout <<endl<<endl<<"\t\t\t 圖 書 管 理 系 統(tǒng)\n\n\n"; </p><p>  cout <<&qu

116、ot;\t\t\t1 借 書\n\n\t\t\t2 還 書 \n\n\t\t\t3 圖 書 維 護(hù)\n\n\t\t\t4 讀 者 維 護(hù)\n\n\t\t\t0 離 開"<<endl; </p><p>  cin >> choice; </p><p>  switch (choice) </p><p><b>  {

117、</b></p><p>  case '1': </p><p>  cout <<" 借書 讀者編號(hào):"; </p><p>  cin >>readerid; </p><p>  cout <<" 圖書編號(hào): "; </p&g

118、t;<p>  cin >>bookid; </p><p>  r=ReaderDB.query(readerid);</p><p>  if (NULL==r) </p><p><b>  { </b></p><p>  cout <<" 不存在該讀者,不能借書&

119、quot;<< endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  b=BookDB.query(bookid); </p><p>  if (b==NULL) </p><p><

120、;b>  { </b></p><p>  cout <<" 不存在該圖書,不能借書"<< endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  if (b->

121、;borrowbook()==0) </p><p><b>  { </b></p><p>  cout << " 該圖書已借出,不能借書"<< endl; </p><p><b>  break; </b></p><p><b>  }

122、 </b></p><p>  r->borrowbook(b->getno()); </p><p><b>  break; </b></p><p>  case '2': </p><p>  cout<<"還書\n 讀者編號(hào):"; <

123、/p><p>  cin >>readerid; </p><p>  cout << " 圖書編號(hào):"; </p><p>  cin >>bookid; </p><p>  r=ReaderDB.query(readerid); </p><p>  if (r

124、==NULL) </p><p><b>  { </b></p><p>  cout <<" 不存在該讀者,不能還書" << endl; </p><p><b>  break; </b></p><p><b>  } </b>

125、;</p><p>  b=BookDB.query(bookid); </p><p>  if (b==NULL) </p><p><b>  { </b></p><p>  cout <<" 不存在該圖書,不能還書" <<endl; </p><p

126、><b>  break; </b></p><p><b>  } </b></p><p>  b->retbook(); </p><p>  r->retbook(b->getno()); </p><p><b>  break; </b>&l

127、t;/p><p>  case '3': </p><p>  BookDB.bookdata(); </p><p><b>  break; </b></p><p>  case '4': </p><p>  ReaderDB.readerdata(); <

128、;/p><p><b>  break; </b></p><p>  default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:"; </p><p><b>  } </b></p><p><b>  } </b></p><p&

溫馨提示

  • 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)論