2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(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>  面向?qū)ο蟪绦蛟O(shè)計(jì)</b></p><p><b>  課程設(shè)計(jì)</b></p><p>  題 目 圖書(shū)管理系統(tǒng)的設(shè)計(jì)</p><p>  計(jì)算機(jī)科學(xué)學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè)</p><p>  2011 級(jí) 計(jì)算科學(xué)與技術(shù)本科 班</p>&

2、lt;p>  一.問(wèn)題的分析與功能的定義:</p><p>  二十一世紀(jì)是信息的社會(huì),信息作為社會(huì)最主要的資源,將成為戰(zhàn)略資源引起人們廣泛的關(guān)注。如何獲取信息呢!圖書(shū)是我們最好的獲取信息的方式,但由于圖書(shū)館圖書(shū)收藏量大大增加,使傳統(tǒng)的圖書(shū)管理員的工作日益繁重起來(lái)。迫使人們起用新的管理方法來(lái)管理圖書(shū)。因此新的圖書(shū)管理系統(tǒng)也以方便、快捷、費(fèi)用低的優(yōu)點(diǎn)正慢慢地進(jìn)入人們的生活,將傳統(tǒng)的圖書(shū)管理方式徹底的解脫出來(lái),

3、提高效率,減輕工人人員以往繁忙的工作,減小出錯(cuò)的概率,使讀者可以花更多的時(shí)間在選擇書(shū)和看書(shū)上。從而使人們有更多時(shí)間來(lái)獲取信息、了解信息、掌握信息 。</p><p>  1、設(shè)計(jì)內(nèi)容及要求:</p><p> ?。?)設(shè)計(jì)一個(gè)圖書(shū)館管理系統(tǒng),完成圖書(shū)管理和讀者管理的功能,并能對(duì)借閱信息進(jìn)行管理,要求完成以下功能:圖書(shū)資料管理,可以添加、修改、刪除、查詢書(shū)籍信息;讀者資料管理,可以添加、修改

4、、刪除、查詢讀者信息;借書(shū)管理,可以進(jìn)行添加借書(shū)信息;還書(shū)管理,可以進(jìn)行還書(shū)信息。</p><p> ?。?)該項(xiàng)目是在Visual C++ 6.0的平臺(tái)下用c++語(yǔ)言實(shí)現(xiàn)。 </p><p><b>  2.模塊圖:</b></p><p>  二.對(duì)象(類(lèi))設(shè)計(jì)及實(shí)現(xiàn):</p><p><b>  1、概要

5、設(shè)計(jì):</b></p><p>  Reader讀者類(lèi)、RDatabase 讀者庫(kù)類(lèi)、Book 圖書(shū)類(lèi)、BDatabase 圖書(shū)庫(kù)類(lèi)。</p><p><b>  2、詳細(xì)設(shè)計(jì):</b></p><p><b>  (1)類(lèi)的原型描述</b></p><p><b>  三.核

6、心控制設(shè)計(jì)</b></p><p>  在主函數(shù)中我們要做的操作有:</p><p>  (1)建立Reader讀者類(lèi),RDatabase 讀者庫(kù)類(lèi),Book 圖書(shū)類(lèi),BDatabase 圖書(shū)庫(kù)類(lèi)。</p><p>  (2)建立菜單界面,從而完成以下內(nèi)容:</p><p> ?、龠M(jìn)入功能必須打開(kāi)菜單,然后用戶根據(jù)菜單選擇相應(yīng)的提

7、示進(jìn)行操作,如借書(shū),還書(shū),圖書(shū)維護(hù),讀者維護(hù),退出等。</p><p> ?、趶亩M(jìn)入相應(yīng)的菜單中對(duì)相應(yīng)的信息進(jìn)行了解并進(jìn)行統(tǒng)計(jì)。</p><p>  (3) 將圖書(shū)基本信息、圖書(shū)采購(gòu)信息、圖書(shū)的借閱人信息存儲(chǔ)下來(lái)。</p><p> ?。?) 系統(tǒng)界面簡(jiǎn)潔,易操作。</p><p>  2、本程序應(yīng)具備的功能:</p><

8、;p>  A.添加、借閱、還書(shū)功能:</p><p>  (1)添加讀者和圖書(shū)信息。</p><p>  (2)借閱尚在架的圖書(shū)。</p><p>  (3)讀者歸還的圖書(shū)。</p><p><b>  B.查找功能</b></p><p>  (1) 根據(jù)圖書(shū)的圖書(shū)號(hào)和編號(hào)查找圖書(shū)信息。&

9、lt;/p><p>  (2)根據(jù)讀者的編號(hào)查找讀者的信息。</p><p><b>  C.系統(tǒng)的操作</b></p><p>  系統(tǒng)在進(jìn)入時(shí),要有主菜單提示。</p><p>  系統(tǒng)在用戶退出時(shí),也要有一定的提示。</p><p><b>  3、算法分析</b><

10、/p><p><b> ?。?)添加操作:</b></p><p>  包括兩個(gè)部分,先通過(guò)輸入設(shè)備輸入信息,讓系統(tǒng)獲取;然后添加入讀者數(shù)據(jù)庫(kù)read.txt文件中。</p><p><b>  A.獲取信息</b></p><p>  void Reader::addreader(int n,char

11、 *na) //增加讀者 </p><p><b>  { </b></p><p><b>  tag=0; </b></p><p><b>  no=n; </b></p><p>  strcpy(name,na); </p>&l

12、t;p>  for (int i=0;i<Maxbor;i++) </p><p>  borbook[i]=0; </p><p><b>  } </b></p><p>  int RDatabase::addreader(int n,char *na) //增添讀者信息</p><p&g

13、t;<b>  {</b></p><p>  der *p=query(n);</p><p>  if (p==NULL)</p><p><b>  {</b></p><p><b>  top++;</b></p><p>  read[top

14、].addreader(n,na);</p><p>  cout<<"讀者添加成功"<<endl;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  return 0;&

15、lt;/b></p><p><b>  }</b></p><p>  B.析構(gòu)函數(shù)寫(xiě)入新讀者的編號(hào)跟姓名</p><p>  RDatabase::~RDatabase()</p><p><b>  {</b></p><p>  fstream fil

16、e("reader.txt",ios::out);</p><p>  for (int i=0;i<=top;i++)</p><p><b>  { </b></p><p>  if(read[i].gettag()==0)</p><p>  file.write((char *)&

17、amp;read[i],sizeof(read[i]));</p><p><b>  else</b></p><p>  file.close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  

18、(2)借書(shū)操作:利用for語(yǔ)句和if語(yǔ)句,通過(guò)判斷圖書(shū)的borbook的編號(hào)是否為0,來(lái)判斷圖書(shū)是否未被借走或還沒(méi)有被借完。</p><p>  void Reader::borrowbook(int bookid) //借書(shū)操作 </p><p><b>  { </b></p><p>  for (int i=0;i<M

19、axbor;i++) </p><p>  if (borbook[i]==0) </p><p><b>  { </b></p><p>  borbook[i]=bookid; </p><p>  return; </p><p><b>  } &l

20、t;/b></p><p><b>  } </b></p><p> ?。?)還書(shū)操作:利用for語(yǔ)句和if語(yǔ)句,通過(guò)判斷圖書(shū)的borbook的編號(hào)是否為要還書(shū)的編號(hào),來(lái)判斷是否借出此書(shū)。</p><p>  int Reader::retbook(int bookid) //還書(shū)操作 </p><p>

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

22、</p><p>  borbook[i]=0; </p><p>  return 1; </p><p><b>  } </b></p><p><b>  else</b></p><p><b>  continue;</b><

23、;/p><p><b>  } </b></p><p> ?。?)查找功能:利用for語(yǔ)句和if語(yǔ)句,尋找與要查詢的編號(hào)相同的讀者編號(hào)或圖書(shū)編號(hào),如果找到,向系統(tǒng)返回相應(yīng)的編號(hào),輸出相應(yīng)的信息。</p><p>  Reader *query(int readerid) //按編號(hào)查找</p><p>

24、<b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  if(read[i].getno()==readerid&&read[i].gettag()==0)</p><p>  return &read[i];</p><p>  r

25、eturn NULL;</p><p><b>  }</b></p><p><b>  四.測(cè)試分析</b></p><p><b>  1.此系統(tǒng)存在問(wèn)題</b></p><p>  未設(shè)置登錄密碼保護(hù)系統(tǒng),使整個(gè)圖書(shū)管理系統(tǒng)失去了一定的安全性。</p>&

26、lt;p>  2.程序運(yùn)行界面如下圖a所示:</p><p><b>  圖a如上所示</b></p><p>  3.此界面運(yùn)行時(shí)選擇4有時(shí)會(huì)出現(xiàn)內(nèi)存讀取錯(cuò)誤;</p><p> ?。?)當(dāng)輸入錯(cuò)的數(shù)據(jù)類(lèi)型時(shí) 可能導(dǎo)致內(nèi)存錯(cuò)誤;</p><p> ?。?)讀者、圖書(shū)信息不完善;</p><p

27、> ?。?)命名不是很規(guī)范;</p><p> ?。?)信息存儲(chǔ)有限;</p><p><b>  五.心得體會(huì)</b></p><p>  通過(guò)這次課程設(shè)計(jì)讓我逐步學(xué)會(huì)了如何運(yùn)用C++面向?qū)ο蟪绦蛟O(shè)計(jì)的設(shè)計(jì)思想和方法來(lái)解決實(shí)際問(wèn)題。如這次設(shè)計(jì)圖書(shū)管理系統(tǒng),首先我考慮是在實(shí)際應(yīng)用時(shí)用戶一般進(jìn)行什么操作,對(duì)哪些對(duì)象進(jìn)行操作。很顯然我需要建立

28、兩個(gè)類(lèi),包括圖書(shū)類(lèi)和讀者類(lèi),同時(shí)考慮到圖書(shū)和讀者不止一個(gè),所以還需兩個(gè)類(lèi),圖書(shū)庫(kù)類(lèi)和讀者庫(kù)類(lèi),這兩個(gè)類(lèi)分別將其信息傳遞給圖書(shū)類(lèi)和讀者類(lèi)。確定了類(lèi)之后,則需要對(duì)類(lèi)的內(nèi)容進(jìn)行擴(kuò)充。由于我需要這個(gè)系統(tǒng)完成對(duì)圖書(shū)管理和讀者管理的功能,并能對(duì)借閱信息進(jìn)行管理,要求完成一下功能,圖書(shū)資料管理,可以添加、修改、刪除、查詢書(shū)籍信息,讀者資料管理,可以添加、修改、刪除、查詢讀者信息;借書(shū)管理,可以進(jìn)行添加借書(shū)信息;還書(shū)管理,可以進(jìn)行還書(shū)信息。所以在對(duì)應(yīng)的

29、類(lèi)下建立相應(yīng)功能函數(shù)。建立功能函數(shù)后就是構(gòu)造主函數(shù)。主函數(shù)的作用就是通過(guò)向?qū)ο蟀l(fā)送信息、對(duì)象接受信息啟動(dòng)相應(yīng)的方法來(lái)實(shí)現(xiàn)相應(yīng)的操作。</p><p>  為了能夠較好地完成本次課程設(shè)計(jì),我詳細(xì)閱讀教材,以及網(wǎng)上搜索,和到圖書(shū)館查找相關(guān)資料等。在做課程設(shè)計(jì)的過(guò)程中,我在利用所學(xué)的知識(shí)同時(shí),又學(xué)到了很多實(shí)例化的理論知識(shí)??偨Y(jié)了一些經(jīng)驗(yàn)和方法強(qiáng)化了我的實(shí)際動(dòng)手能力,同時(shí)也找到自己的不足,我一定會(huì)繼續(xù)學(xué)習(xí)增加自己的編程能

30、力和調(diào)試能力,在今后的學(xué)習(xí)中我將會(huì)更加的努力,增加自己的知識(shí)儲(chǔ)備,拓寬自己的知識(shí)面,鍛煉自己的能力,使我的綜合素質(zhì)得到較大的提高。</p><p>  在這設(shè)計(jì)的過(guò)程中我也出現(xiàn)過(guò)一些比較嚴(yán)重的錯(cuò)誤,后來(lái)在同學(xué)的指點(diǎn)下我改正了自己的錯(cuò)誤,并最終成功調(diào)試了程序。當(dāng)程序調(diào)試出來(lái)的那一瞬間,我感覺(jué)自己完成了一件非常了不起的事,好有成就感。在以后的日子,我將會(huì)繼續(xù)我的興趣繼續(xù)深入學(xué)習(xí)程序設(shè)計(jì),相信在越來(lái)越多的嘗試之后,自己

31、會(huì)不斷進(jìn)步不斷提高的。</p><p>  最后感謝同學(xué)的幫助,使我能順利完成這次程序設(shè)計(jì)。</p><p><b>  六.源程序代碼:</b></p><p>  #include "stdafx.h"</p><p>  #include <iostream></p>

32、<p>  #include <iomanip></p><p>  #include <string></p><p>  #include <fstream>//輸入/輸出文件流類(lèi)</p><p>  using namespace std;</p><p>  const int Maxr=

33、100;//最多的讀者</p><p>  const int Maxb=100;//最多的圖書(shū)</p><p>  const int Maxbor=5;//每位讀者最多借五本書(shū)</p><p>  //讀者類(lèi),實(shí)現(xiàn)對(duì)讀者的信息的描述</p><p>  class Reader </p><p><

34、;b>  { </b></p><p><b>  private:</b></p><p>  int tag; //刪除標(biāo)記 1:已刪 0:未刪</p><p>  int no; //讀者編號(hào)</p><p>  char name[10]; //讀者姓名</p><

35、;p>  int borbook[Maxbor];//所借圖書(shū)</p><p><b>  public:</b></p><p>  Reader() {} //構(gòu)造函數(shù)</p><p>  char *getname() </p><p><b>  { </b></p>

36、<p>  return name; </p><p>  } //獲取姓名 </p><p>  int gettag() </p><p><b>  { </b></p><p>  return tag; </p><p>  } /

37、/獲取刪除標(biāo)記 </p><p>  int getno() </p><p><b>  { </b></p><p>  return no; </p><p>  } //獲取讀者編號(hào) </p><p>  void

38、 setname(char na[]) //設(shè)置姓名 </p><p><b>  { </b></p><p>  strcpy(name,na); </p><p><b>  } </b></p><p>  void delbook()

39、 //設(shè)置刪除標(biāo)記 </p><p><b>  { </b></p><p><b>  tag=1; </b></p><p><b>  } </b></p><p>  void addreader(int n,char *na); //增加

40、讀者 </p><p>  void borrowbook(int bookid); //借書(shū)操作</p><p>  int retbook(int bookid); //還書(shū)操作</p><p>  void disp(); //輸出讀者信息</p><p><b>

41、;  }; </b></p><p>  void Reader::addreader(int n,char *na) //增加讀者 </p><p><b>  { </b></p><p><b>  tag=0; </b></p><p><b>  n

42、o=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><p>

43、  void Reader::borrowbook(int bookid) //借書(shū)操作 </p><p><b>  { </b></p><p>  for (int i=0;i<Maxbor;i++) </p><p><b>  { </b></p><p>  i

44、f (borbook[i]==0) </p><p><b>  { </b></p><p>  borbook[i]=bookid; </p><p>  return; </p><p><b>  } </b></p><p><b> 

45、 } </b></p><p><b>  } </b></p><p>  int Reader::retbook(int bookid) //還書(shū)操作 </p><p><b>  { </b></p><p>  for(int i=0;i<Maxbor

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

47、 </p><p><b>  } </b></p><p><b>  else</b></p><p><b>  continue;</b></p><p><b>  } </b></p><p>  return

48、 0; </p><p><b>  } </b></p><p>  void Reader::disp() //輸出讀者信息 </p><p><b>  { </b></p><p>  cout << setw(5) &l

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

50、<<"|"; </p><p>  cout<<"]"<<endl; </p><p><b>  } </b></p><p>  //讀者類(lèi)庫(kù),實(shí)現(xiàn)建立讀者的個(gè)人資料</p><p>  class RDatabase</p

51、><p><b>  { </b></p><p><b>  private:</b></p><p>  int top; //讀者記錄指針</p><p>  Reader read[Maxr];//讀者記錄</p><p><b>  public

52、:</b></p><p>  RDatabase();//構(gòu)造函數(shù),將reader.txt讀到read[]中</p><p>  void clear()//刪除所有讀者信息</p><p><b>  {</b></p><p><b>  top=-1;</b&g

53、t;</p><p><b>  }</b></p><p>  int addreader(int n,char *na); //增添讀者信息</p><p>  Reader *query(int readerid) //按編號(hào)查找</p><p><b>  {</b>

54、;</p><p>  for (int i=0;i<=top;i++)</p><p>  if(read[i].getno()==readerid&&</p><p>  read[i].gettag()==0)</p><p>  return &read[i];</p><p> 

55、 return NULL;</p><p><b>  }</b></p><p>  void disp();//輸出所有讀者信息</p><p>  int Readernum(); //得到讀者編號(hào)</p><p>  void readerdata();

56、//讀者庫(kù)維護(hù)</p><p>  ~RDatabase();// 析構(gòu)函數(shù),將read[]寫(xiě)入reader.txt文件中</p><p><b>  };</b></p><p>  RDatabase::RDatabase()//構(gòu)造函數(shù),將reader.txt讀到read[]中</p><p&

57、gt;<b>  {</b></p><p><b>  Reader s;</b></p><p><b>  top=-1;</b></p><p>  fstream file("reader.txt",ios::in);</p><p><b&

58、gt;  while (1)</b></p><p><b>  {</b></p><p>  file.read((char *)&s,sizeof(s));</p><p>  if (!file) break;</p><p><b>  top++;</b></p

59、><p>  read[top]=s;</p><p><b>  }</b></p><p>  file.close();</p><p><b>  }</b></p><p>  RDatabase::~RDatabase()// 析構(gòu)函數(shù),將read[]寫(xiě)入

60、reader.txt文件中</p><p><b>  {</b></p><p>  fstream file("reader.txt",ios::out);</p><p>  for (int i=0;i<=top;i++)</p><p>  if(read[i].gettag()==0

61、)</p><p>  file.write((char *)&read[i],sizeof(read[i]));</p><p><b>  else</b></p><p>  file.close();</p><p><b>  }</b></p><p>

62、;  int RDatabase::addreader(int n,char *na) //增添讀者信息</p><p><b>  {</b></p><p>  Reader *p=query(n);</p><p>  if (p==NULL)</p><p><b>  {</b>

63、</p><p><b>  top++;</b></p><p>  read[top].addreader(n,na);</p><p>  cout<<"讀者添加成功"<<endl;</p><p><b>  return 1;</b></p

64、><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void RDatabase::disp()//輸出所有讀者信息</p><p><b&

65、gt;  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  read[i].disp();</p><p><b>  }</b></p><p>  int RDatabase::Readernum()</p><p><

66、;b>  {</b></p><p>  return top;</p><p><b>  }</b></p><p>  void RDatabase::readerdata() //讀者庫(kù)維護(hù)</p><p><b>  {</b></p><

67、;p>  char choice;</p><p>  char rname[100]; //讀者姓名</p><p>  int readerid;</p><p>  Reader *r;</p><p><b>  do </b></p><p><b&g

68、t;  {</b></p><p>  cout <<"\n\n\t\t\t歡迎進(jìn)入讀者維護(hù)界面\n\n\n\t\t1新 增\n\n\t\t2更 改\n\n\t\t3刪 除\n\n\t\t4查 找\n\n\t\t5顯 示\n\n\t\t6全 刪\n\n\t\t0退 出"<<endl;<

69、;/p><p>  cin >> choice;</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  cout << &qu

70、ot;輸入讀者編號(hào):";</p><p>  cin >> readerid;</p><p>  cout << "輸入讀者姓名:";</p><p>  cin >> rname;</p><p>  addreader (readerid,rname);</p>

71、;<p><b>  break;</b></p><p><b>  case '2':</b></p><p>  cout <<"輸入讀者編號(hào):";</p><p>  cin >> readerid;</p><p>

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

73、><p><b>  }</b></p><p>  cout <<"輸入新的姓名:";</p><p>  cin >> rname;</p><p>  r->setname(rname);</p><p><b>  break;<

74、;/b></p><p><b>  case '3':</b></p><p>  cout <<"輸入讀者編號(hào):";</p><p>  cin >> readerid;</p><p>  r=query(readerid);</p>

75、<p>  if (r==NULL)</p><p><b>  {</b></p><p>  cout <<"該讀者不存在" << endl;</p><p><b>  break;</b></p><p><b>  }<

76、/b></p><p>  r->delbook();</p><p><b>  break;</b></p><p><b>  case '4':</b></p><p>  cout <<"讀入讀者編號(hào):";</p>

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

78、</p><p><b>  break;</b></p><p><b>  }</b></p><p>  r->disp();</p><p><b>  break;</b></p><p><b>  case '5&#

79、39;:</b></p><p><b>  disp();</b></p><p><b>  break;</b></p><p><b>  case '6':</b></p><p><b>  clear();</b>

80、</p><p><b>  break;</b></p><p>  default:if (choice!='0') cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";break;</p><p><b>  }</b></p><p>  }while (

81、choice!='0');</p><p><b>  }</b></p><p>  //圖書(shū)類(lèi),實(shí)現(xiàn)對(duì)圖書(shū)的描述,圖書(shū)的編號(hào),書(shū)名,借出,還入等</p><p>  class Book</p><p><b>  {</b></p><p><b&

82、gt;  private:</b></p><p>  int tag;//刪除標(biāo)記 1:已刪 0:未刪</p><p>  int no;//圖書(shū)編號(hào)</p><p>  char name[20];//書(shū)名</p><p>  int onshelf;//是否再架 1:再架 0:已借</p><p>&

83、lt;b>  public:</b></p><p><b>  Book(){}</b></p><p>  char *getname() { return name; }//獲取姓名</p><p>  int getno(){ return no; }//獲取圖書(shū)編號(hào)</p><p>  int

84、 gettag(){ return tag; }//獲取刪除標(biāo)記</p><p>  void setname(char na[])//設(shè)置書(shū)名</p><p><b>  {</b></p><p>  strcpy(name,na);</p><p><b>  }</b></p>

85、<p>  void delbook(){ tag=1;}//刪除圖書(shū)</p><p>  void addbook(int n,char *na)//增加圖書(shū)</p><p><b>  {</b></p><p><b>  tag=0;</b></p><p><b> 

86、 no=n;</b></p><p>  strcpy(name,na);</p><p>  onshelf=1;</p><p><b>  }</b></p><p>  int borrowbook()//借書(shū)操作</p><p><b>  {</b>&

87、lt;/p><p>  if (onshelf==1)</p><p><b>  {</b></p><p>  onshelf=0;</p><p><b>  return 1;</b></p><p><b>  }</b></p>&

88、lt;p><b>  return 0;</b></p><p><b>  }</b></p><p>  void retbook()//還書(shū)操作</p><p><b>  {</b></p><p>  onshelf=1;</p><p>

89、;<b>  }</b></p><p>  void disp()//輸出圖書(shū)</p><p><b>  {</b></p><p>  cout << setw(6) << no << setw(18) << name << setw(10)</p&g

90、t;<p>  <<(onshelf==1? "在架":"已借") <<endl;</p><p><b>  }</b></p><p><b>  };</b></p><p>  //圖書(shū)庫(kù)類(lèi),實(shí)現(xiàn)對(duì)圖書(shū)的維護(hù),查找,刪除等</p&g

91、t;<p>  class BDatabase</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int top; //圖書(shū)記錄指針</p><p>  Book book[Maxb]; //圖書(shū)記錄<

92、;/p><p><b>  public:</b></p><p>  BDatabase()//構(gòu)造函數(shù),將book.txt讀到book[]中</p><p><b>  { </b></p><p><b>  Book b;</b></p><p>&

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

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

95、close();</p><p><b>  }</b></p><p>  void clear()//全刪</p><p><b>  {</b></p><p><b>  top=-1;</b></p><p><b>  }</

96、b></p><p>  int addbook(int n,char *na);//增加圖書(shū)</p><p>  Book *query(int bookid)//查找圖書(shū)</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p>&

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

98、 return NULL;</p><p><b>  }</b></p><p>  void bookdata();//圖書(shū)庫(kù)維護(hù)</p><p>  void disp() //輸出圖書(shū) </p><p><b>  {</b></p><p>  for (in

99、t i=0;i<=top;i++)</p><p>  if (book[i].gettag()==0)</p><p>  book[i].disp();</p><p><b>  }</b></p><p>  ~BDatabase();//析構(gòu)函數(shù),將book[]寫(xiě)到book.txt文件中</p>

100、;<p><b>  };</b></p><p>  int BDatabase::addbook(int n,char *na)//增加圖書(shū)</p><p><b>  {</b></p><p>  Book *p=query(n);</p><p>  if (NULL==p)

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

102、 }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  BDatabase::~BDatabase()//析構(gòu)函數(shù),將book[]寫(xiě)到book.txt文件中</p><p><b>  {</b&g

103、t;</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 *)&book[i]

104、,sizeof(book[i]));</p><p>  file.close();</p><p><b>  }</b></p><p>  void BDatabase::bookdata()</p><p><b>  {</b></p><p>  char cho

105、ice;</p><p>  char bname[40];</p><p>  int bookid;</p><p><b>  Book *b;</b></p><p><b>  do </b></p><p><b>  {</b></p

106、><p>  cout <<"\n\n\n\t\t\t歡迎進(jìn)入圖書(shū)維護(hù)界面 "<<endl<<endl;</p><p>  cout<<"\t\t1新 增\n \t\t2更 改\n\t\t3刪 除\n\t\t4查 找\n\t\t5顯 示\n\t\t6全 刪\n\t\t

107、0退 出"<<endl;</p><p>  cin >> choice;</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case '1':</b></p>

108、<p>  cout <<"輸入圖書(shū)編號(hào):"<<endl;</p><p>  cin >> bookid;</p><p>  cout <<"輸入圖書(shū)書(shū)名:"<<endl;</p><p>  cin >> bname;</p>

109、;<p>  addbook(bookid,bname);</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  cout <<"輸入圖書(shū)編號(hào):"<<endl;</p>

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

111、t;/p><p><b>  break;</b></p><p><b>  }</b></p><p>  cout <<"輸入新的書(shū)名:"<<endl;</p><p>  cin >> bname;</p><p>

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

113、 cin >> bookid;</p><p>  b=query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<"該圖書(shū)不存在" << endl;</p>&

114、lt;p><b>  break;</b></p><p><b>  }</b></p><p>  b->delbook();</p><p><b>  break;</b></p><p><b>  case '4':</b

115、></p><p>  cout <<"讀入圖書(shū)編號(hào):"<<endl;</p><p>  cin >> bookid;</p><p>  b=query(bookid);</p><p>  if (b==NULL)</p><p><b> 

116、 {</b></p><p>  cout <<"該圖書(shū)不存在"<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  b->disp();</p>&

117、lt;p><b>  break;</b></p><p><b>  case '5':</b></p><p><b>  disp();</b></p><p><b>  break;</b></p><p><b>

118、;  case '6':</b></p><p><b>  clear();</b></p><p><b>  break;</b></p><p>  default:if(choice!='0') cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";&

119、lt;/p><p><b>  }</b></p><p>  }while (choice!='0');</p><p><b>  }</b></p><p>  void showmenu()</p><p><b>  {</b>&l

120、t;/p><p>  cout<<" ";</p><p>  cout<<"|---------------*******歡迎光臨*******----------------|"<<endl;</p><p>  cout<<" &quo

121、t;;</p><p>  cout<<"|-----------------------圖書(shū)館------------------------|"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|------

122、----------圖 書(shū) 管 理 系 統(tǒng)---------------|"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|-----------------------------------------------------|"

123、<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 1.借 書(shū) |"<<endl;</p><p>  cout<<&q

124、uot; ";</p><p>  cout<<"| 2.還 書(shū) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<

125、;<"| 3.圖 書(shū) 維 護(hù) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 4.讀 者 維 護(hù)

126、 |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 0.退出:將數(shù)據(jù)保存 |"<<endl;</p><p>  cout

127、<<" ";</p><p>  cout<<"|-----------------------------------------------------|"<<endl;</p><p><b>  }</b></p><p>  void show

128、tip()</p><p><b>  { </b></p><p>  cout<<"\n\t\t------------------操作完成!-------------------"<<endl;</p><p>  cout<<"\t\t-----------------

129、選擇0-5后繼續(xù)-----------------"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|-------------------###內(nèi)容如下###------------------|"<<endl;</p>

130、<p>  cout<<" ";</p><p>  cout<<"| 1.借 書(shū) |"<<endl;</p><p>  cout<<" ";<

131、/p><p>  cout<<"| 2.還 書(shū) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|

132、 3.圖 書(shū) 維 護(hù) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 4.讀 者 維 護(hù) |"<<end

133、l;</p><p>  cout<<" ";</p><p>  cout<<"| 0.退出:將數(shù)據(jù)保存 |"<<endl;</p><p>  cout<<" "

134、;;</p><p>  cout<<"|****************************************************|"<<endl;</p><p><b>  }</b></p><p>  //main() 函數(shù)的實(shí)現(xiàn),程序的主界面的引導(dǎo)</p>&l

135、t;p>  int main()</p><p><b>  { </b></p><p>  char choice;</p><p>  int bookid,readerid; //圖書(shū)編號(hào),讀者編號(hào)</p><p>  RDatabase ReaderDB; //讀者庫(kù)</

136、p><p>  Reader *r; //讀者</p><p>  BDatabase BookDB; //圖書(shū)庫(kù)</p><p>  Book *b; //圖書(shū)</p><p>  cout<<"正在打開(kāi)圖書(shū)管理系統(tǒng),請(qǐng)稍后........."

137、;<<endl;</p><p>  showmenu(); //顯示菜單</p><p>  cout<<"\t\t請(qǐng)你選擇菜單中的數(shù)字以便于用來(lái)處理數(shù)據(jù):";</p><p>  cin >> choice;</p><p>  while (choice!=&

138、#39;0')</p><p><b>  {</b></p><p>  switch (choice)</p><p><b>  {</b></p><p>  case '1': //輸入讀者編號(hào)和要借的圖書(shū)<

139、/p><p>  cout <<"借書(shū)系統(tǒng)"<< endl;</p><p>  cout <<"讀者的讀書(shū)號(hào):";</p><p>  cin >>readerid;</p><p>  cout <<"圖書(shū)的編號(hào):";<

140、;/p><p>  cin >>bookid;</p><p>  r=ReaderDB.query(readerid); //按編號(hào)查找</p><p>  if (NULL==r)</p><p><b>  {</b></p><p>  cout <<"對(duì)

141、不起該讀者不存在,因此不能借書(shū)"<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  b=BookDB.query(bookid);</p><p>  if (b==NULL)</p>&

142、lt;p><b>  {</b></p><p>  cout <<"對(duì)不起該圖書(shū)不存在,因此不能借書(shū)"<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>

143、  if (b->borrowbook()==0)</p><p><b>  {</b></p><p>  cout <<"對(duì)不起該圖書(shū)已借出,因此不能借書(shū)"<< endl;</p><p><b>  break;</b></p><p>&l

144、t;b>  }</b></p><p>  r->borrowbook(b->getno());</p><p><b>  break;</b></p><p>  case '2': //還書(shū)操作</p><p>  cout&l

145、t;<"還書(shū)系統(tǒng)\n讀者編號(hào):";</p><p>  cin >>readerid;</p><p>  cout << "圖書(shū)的編號(hào):";</p><p>  cin >>bookid;</p><p>  r=ReaderDB.query(readerid

146、);//按編號(hào)查找</p><p>  if (r==NULL)</p><p><b>  {</b></p><p>  cout <<"你的書(shū)已成功歸還,謝謝使用。" << endl;</p><p><b>  break;</b></p&g

147、t;<p><b>  }</b></p><p>  b=BookDB.query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<"對(duì)不起該圖書(shū)不存在,因此不能還書(shū)&qu

148、ot; <<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  b->retbook();</p><p>  r->retbook(b->getno());</p><p>

149、<b>  break;</b></p><p>  case '3': //圖書(shū)維護(hù)</p><p>  BookDB.bookdata();</p><p><b>  break;</b></p><p>  case '4

150、9;: //讀者維護(hù)</p><p>  ReaderDB.readerdata();</p><p><b>  break;</b></p><p>  default:if ((choice!='0')) cout<<"輸入錯(cuò)誤,請(qǐng)你從新輸入,謝謝:"

溫馨提示

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