信息系統(tǒng)分析與設(shè)計(jì)課程設(shè)計(jì)---圖書管理系統(tǒng)設(shè)計(jì)_第1頁
已閱讀1頁,還剩25頁未讀 繼續(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è)計(jì)</b></p><p>  題 目 名 稱  圖書管理系統(tǒng)設(shè)計(jì)     </p><p>  課 程 名 稱    信息系統(tǒng)分析與設(shè)計(jì)      </p><p>  學(xué) 生 姓

2、 名             </p><p>  學(xué)   號(hào)                 </p><p>

3、;  系 、專 業(yè) 理學(xué)與信息科學(xué)系 信息與計(jì)算科學(xué) </p><p>  指 導(dǎo) 教 師              </p><p>  2011年 12 月 18 日</p><p>  課程設(shè)計(jì)(論文)任務(wù)書</p><p&g

4、t;  注:1.此表由指導(dǎo)教師填寫,經(jīng)系、教研室審批,指導(dǎo)教師、學(xué)生簽字后生效;</p><p>  2.此表1式3份,學(xué)生、指導(dǎo)教師、教研室各1份。</p><p>  指導(dǎo)教師(簽字):               學(xué)生(簽字):呂季干</p

5、><p>  圖書管理系統(tǒng)設(shè)計(jì)目錄</p><p>  一.問題分析與功能定義..............................5</p><p>  二、對(duì)象(類)設(shè)計(jì)及實(shí)現(xiàn)...........................6</p><p>  核心控制設(shè)計(jì)...................................7

6、</p><p>  測(cè)試分析.......................................10</p><p>  五、源程序代碼.....................................13</p><p>  六、總結(jié)...........................................25</p>

7、<p>  七、參考文獻(xiàn).......................................26</p><p>  八、致謝........................................26</p><p><b>  圖書管理系統(tǒng)設(shè)計(jì)</b></p><p><b>  問題分析與功能定義&

8、lt;/b></p><p>  二十一世紀(jì)是信息的社會(huì),信息作為社會(huì)最主要的資源,將成為戰(zhàn)略資源引起人們廣泛的關(guān)注。如何獲取信息?圖書是我們最好的獲取信息的方式,但由于圖書館圖書收藏量大大增加,使傳統(tǒng)的圖書管理員的工作日益繁重起來。迫使人們起用新的管理方法來管理圖書,但如何把圖書管理員從繁重的工作中解脫出來呢?</p><p>  科學(xué)技術(shù)日新月異的進(jìn)步,讓人類生活發(fā)生了巨大的變化

9、,計(jì)算機(jī)技術(shù)的飛速發(fā)展,使各行各業(yè)在計(jì)算機(jī)技術(shù)應(yīng)用方面得到了廣泛的普及和使用。信息化時(shí)代的到來成為不可抗拒的潮流,人類文明正在進(jìn)入一個(gè)嶄新的時(shí)代。因此,圖書管理系統(tǒng)也以方便、快捷、費(fèi)用低的優(yōu)點(diǎn)正慢慢地進(jìn)入人們的生活,將傳統(tǒng)的圖書管理方式徹底的解脫出來,提高效率,減輕工人人員以往繁忙的工作,減小出錯(cuò)的概率,使讀者可以花更多的時(shí)間在選擇書和看書上。從而使人們有更多時(shí)間來獲取信息、了解信息、掌握信息 。</p><p>

10、;<b>  1、設(shè)計(jì)內(nèi)容及要求</b></p><p>  設(shè)計(jì)一個(gè)圖書館管理系統(tǒng),完成圖書管理和讀者管理的功能,并能對(duì)借閱信息進(jìn)行管理,要求完成一下功能,圖書資料管理,可以添加、修改、刪除、查詢書籍信息,讀者資料管理,可以添加、修改、刪除、查詢讀者信息;借書管理,可以進(jìn)行添加借書信息;還書管理,可以進(jìn)行還書信息;</p><p>  該項(xiàng)目是在Visual C++

11、 6.0的平臺(tái)下用c++語言實(shí)現(xiàn),創(chuàng)建對(duì)象,程序運(yùn)行開始,打開文件并將其分別鏈入鏈表之中;程序結(jié)束關(guān)閉并保存文件。</p><p><b>  2、模塊圖</b></p><p>  二、對(duì)象(類)設(shè)計(jì)及實(shí)現(xiàn)</p><p><b>  1、概要設(shè)計(jì)</b></p><p>  Reader讀者類、

12、RDatabase 讀者庫(kù)類、Book 圖書類、BDatabase 圖書庫(kù)類</p><p><b>  2、詳細(xì)設(shè)計(jì)</b></p><p><b>  1)類的原型描述</b></p><p><b>  三、核心控制設(shè)計(jì)</b></p><p>  在主函數(shù)中我們要做的操

13、作包括:</p><p>  (1)建立1個(gè)Reader讀者類、1個(gè)RDatabase 讀者庫(kù)類、1個(gè)Book 圖書類、1個(gè)BDatabase 圖書庫(kù)類</p><p>  (2)建立菜單界面。完成以下內(nèi)容:</p><p> ?、龠M(jìn)入功能必須打開菜單,然后用戶根據(jù)菜單選擇相應(yīng)的操作方式,如查看數(shù)據(jù)、編輯圖書數(shù)據(jù)以及修改圖書數(shù)據(jù)、維護(hù)圖書的采購(gòu)信息。添加、刪除、查看

14、讀者個(gè)人信息,瀏覽圖書信息。</p><p> ?、?能夠?qū)D書基本信息、圖書采購(gòu)信息、圖書的借閱人信息進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)的結(jié)果能夠以表格的形式來表示。</p><p> ?。?) 將圖書基本信息、圖書采購(gòu)信息、圖書的借閱人信息存儲(chǔ)在相應(yīng)的文件中。</p><p> ?。?) 系統(tǒng)界面友好,易操作。</p><p>  2、本程序應(yīng)具備的功能:&

15、lt;/p><p>  A.添加、借閱、還書功能:</p><p>  (1)添加讀者和圖書信息。</p><p>  (2)借閱尚在架的圖書。</p><p>  (3)讀者歸還的圖書。</p><p><b>  B.查找功能</b></p><p>  (1) 根據(jù)圖書的

16、編號(hào)查找圖書信息。</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&

17、gt;</p><p>  1)添加操作:(讀者信息的添加與圖書信息的添加類似)</p><p>  包括兩個(gè)部分,先通過輸入設(shè)備輸入信息,系統(tǒng)獲??;然后添加入讀者數(shù)據(jù)庫(kù)read.txt文件中。</p><p><b> ?、瀚@取信息</b></p><p>  void Reader::addreader(int n,

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

19、<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><

20、;p><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

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

22、 0;</b></p><p><b>  }</b></p><p><b>  流程圖:</b></p><p> ?、嫖鰳?gòu)函數(shù)寫入新讀者的編號(hào)跟姓名</p><p>  RDatabase::~RDatabase()</p><p><b&g

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

24、()==0)</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

25、><b>  }</b></p><p><b>  流程圖:</b></p><p>  借書操作:利用for語句和if語句,通過判斷圖書的borbook的編號(hào)是否為0,來判斷圖書是否未被借走或還沒有被借完。</p><p>  void Reader::borrowbook(int bookid) //借書操

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

27、orbook[i]=bookid; </p><p>  return; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  流程圖:</b></p><p>  還書操作:利用

28、for語句和if語句,通過判斷圖書的borbook的編號(hào)是否為要還書的編號(hào),來判斷是否借出此書。</p><p>  int Reader::retbook(int bookid) //還書操作 </p><p><b>  { </b></p><p>  for(int i=0;i<Maxbor;i++) </

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

30、<p><b>  } </b></p><p><b>  else</b></p><p><b>  continue;</b></p><p><b>  } </b></p><p><b>  流程圖:</b

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

32、><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>  return NULL;</p><p

33、><b>  }</b></p><p><b>  流程圖:</b></p><p><b>  四、測(cè)試分析</b></p><p> ?。ㄒ唬?、此系統(tǒng)存在問題</p><p>  未設(shè)登錄密碼保護(hù)系統(tǒng),是整個(gè)圖書管理系統(tǒng)失去了一定的安全性;</p>&

34、lt;p><b>  程序運(yùn)行界面 </b></p><p>  此界面運(yùn)行時(shí)選擇4有時(shí)會(huì)出現(xiàn)內(nèi)存讀取錯(cuò)誤;</p><p>  1)當(dāng)輸入錯(cuò)的數(shù)據(jù)類型時(shí) 可能導(dǎo)致內(nèi)存錯(cuò)誤;</p><p>  2)讀者、圖書信息不完善;</p><p>  3)命名不是很規(guī)范;</p><p><

35、;b>  信息存儲(chǔ)有限;</b></p><p><b>  五、源程序代碼</b></p><p>  #include <iostream></p><p>  #include <iomanip></p><p>  #include <string></

36、p><p>  #include <fstream>//輸入/輸出文件流類</p><p>  using namespace std;</p><p>  const int Maxr=100;//最多的讀者</p><p>  const int Maxb=100;//最多的圖書</p><p>  con

37、st int Maxbor=5;//每位讀者最多借五本書</p><p>  //讀者類,實(shí)現(xiàn)對(duì)讀者的信息的描述</p><p>  class Reader </p><p><b>  { </b></p><p><b>  private:</b></p>&l

38、t;p>  int tag; //刪除標(biāo)記 1:已刪 0:未刪</p><p>  int no; //讀者編號(hào)</p><p>  char name[10]; //讀者姓名</p><p>  int borbook[Maxbor];//所借圖書</p><p><b>  public:</b><

39、;/p><p>  Reader() {} //構(gòu)造函數(shù)</p><p>  char *getname() </p><p><b>  { </b></p><p>  return name; </p><p>  } //獲取姓名 </p><p

40、>  int gettag() </p><p><b>  { </b></p><p>  return tag; </p><p>  } //獲取刪除標(biāo)記 </p><p>  int getno() </p><p><b>  { </

41、b></p><p>  return no; </p><p>  } //獲取讀者編號(hào) </p><p>  void setname(char na[]) //設(shè)置姓名 </p><p><b>  { </b>&l

42、t;/p><p>  strcpy(name,na); </p><p><b>  } </b></p><p>  void delbook() //設(shè)置刪除標(biāo)記 </p><p><b>  { </b></p><p><

43、;b>  tag=1; </b></p><p><b>  } </b></p><p>  void addreader(int n,char *na); //增加讀者 </p><p>  void borrowbook(int bookid); //借書操作</p><p>

44、  int retbook(int bookid); //還書操作</p><p>  void disp(); //輸出讀者信息</p><p><b>  }; </b></p><p>  void Reader::addreader(int n,char *na) //增加讀

45、者 </p><p><b>  { </b></p><p><b>  tag=0; </b></p><p><b>  no=n; </b></p><p>  strcpy(name,na); </p><p>  for

46、(int i=0;i<Maxbor;i++) </p><p>  borbook[i]=0; </p><p><b>  } </b></p><p>  void Reader::borrowbook(int bookid) //借書操作 </p><p><b>  { &

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

48、;  borbook[i]=bookid; </p><p>  return; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  in

49、t Reader::retbook(int bookid) //還書操作 </p><p><b>  { </b></p><p>  for(int i=0;i<Maxbor;i++) </p><p><b>  { </b></p><p>  if(borboo

50、k[i]==bookid) </p><p><b>  { </b></p><p>  borbook[i]=0; </p><p>  return 1; </p><p><b>  } </b></p><p><b>  else&l

51、t;/b></p><p><b>  continue;</b></p><p><b>  } </b></p><p>  return 0; </p><p><b>  } </b></p><p>  void Reader

52、::disp() //輸出讀者信息 </p><p><b>  { </b></p><p>  cout << setw(5) << no << setw(10) << name << " 借書編號(hào):["; </p>

53、<p>  for (int i=0;i<Maxbor;i++) </p><p>  if (borbook[i]!=0) </p><p>  cout <<borbook[i] <<"|"; </p><p>  cout<<"]"<<endl;

54、 </p><p><b>  } </b></p><p>  //讀者類庫(kù),實(shí)現(xiàn)建立讀者的個(gè)人資料</p><p>  class RDatabase</p><p><b>  { </b></p><p><b>  private:</b&

55、gt;</p><p>  int top; //讀者記錄指針</p><p>  Reader read[Maxr];//讀者記錄</p><p><b>  public:</b></p><p>  RDatabase();//構(gòu)造函數(shù),將reader.txt讀到read[]中</p&

56、gt;<p>  void clear()//刪除所有讀者信息</p><p><b>  {</b></p><p><b>  top=-1;</b></p><p><b>  }</b></p><p>  int addreader(int

57、n,char *na); //增添讀者信息</p><p>  Reader *query(int readerid) //按編號(hào)查找</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  if(read[i].g

58、etno()==readerid&&</p><p>  read[i].gettag()==0)</p><p>  return &read[i];</p><p>  return NULL;</p><p><b>  }</b></p><p>  void di

59、sp();//輸出所有讀者信息</p><p>  int Readernum(); //得到讀者編號(hào)</p><p>  void readerdata();//讀者庫(kù)維護(hù)</p><p>  ~RDatabase();// 析構(gòu)函數(shù),將read[]寫入reader.txt文件中</p&

60、gt;<p><b>  };</b></p><p>  RDatabase::RDatabase()//構(gòu)造函數(shù),將reader.txt讀到read[]中</p><p><b>  {</b></p><p><b>  Reader s;</b></p>

61、<p><b>  top=-1;</b></p><p>  fstream file("reader.txt",ios::in);</p><p><b>  while (1)</b></p><p><b>  {</b></p><p&g

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

63、t;p>  file.close();</p><p><b>  }</b></p><p>  RDatabase::~RDatabase()// 析構(gòu)函數(shù),將read[]寫入reader.txt文件中</p><p><b>  {</b></p><p>  fstream

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

65、lt;p><b>  else</b></p><p>  file.close();</p><p><b>  }</b></p><p>  int RDatabase::addreader(int n,char *na) //增添讀者信息</p><p><b>

66、;  {</b></p><p>  Reader *p=query(n);</p><p>  if (p==NULL)</p><p><b>  {</b></p><p><b>  top++;</b></p><p>  read[top].addre

67、ader(n,na);</p><p>  cout<<"讀者添加成功"<<endl;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  return 0;</b&g

68、t;</p><p><b>  }</b></p><p>  void RDatabase::disp()//輸出所有讀者信息</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>

69、;  read[i].disp();</p><p><b>  }</b></p><p>  int RDatabase::Readernum()</p><p><b>  {</b></p><p>  return top;</p><p><b>  }

70、</b></p><p>  void RDatabase::readerdata() //讀者庫(kù)維護(hù)</p><p><b>  {</b></p><p>  char choice;</p><p>  char rname[100]; //讀者姓名</p&g

71、t;<p>  int readerid;</p><p>  Reader *r;</p><p><b>  do </b></p><p><b>  {</b></p><p>  cout <<"\n\n\t\t\t歡迎進(jìn)入讀者維護(hù)界面\n\n\n\t\

72、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&

73、gt;  switch (choice)</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  cout << "輸入讀者編號(hào):";</p><p>  cin >> reade

74、rid;</p><p>  cout << "輸入讀者姓名:";</p><p>  cin >> rname;</p><p>  addreader (readerid,rname);</p><p><b>  break;</b></p><p&g

75、t;<b>  case '2':</b></p><p>  cout << "輸入讀者編號(hào):";</p><p>  cin >> readerid;</p><p>  r=query(readerid);</p><p>  if (r==NULL)&l

76、t;/p><p><b>  {</b></p><p>  cout << " 該讀者不存在 "<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p

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

78、9;:</b></p><p>  cout << " 輸入讀者編號(hào):";</p><p>  cin >> readerid;</p><p>  r=query(readerid);</p><p>  if (r==NULL)</p><p><b&g

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

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

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

82、lt;/p><p><b>  }</b></p><p>  r->disp();</p><p><b>  break;</b></p><p><b>  case '5':</b></p><p><b>  dis

83、p();</b></p><p><b>  break;</b></p><p><b>  case '6':</b></p><p><b>  clear();</b></p><p><b>  break;</b>&

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

85、t;  }</b></p><p>  //圖書類,實(shí)現(xiàn)對(duì)圖書的描述,圖書的編號(hào),書名,借出,還入等</p><p>  class Book</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int

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

87、lt;b>  Book(){}</b></p><p>  char *getname() { return name; }//獲取姓名</p><p>  int getno(){ return no; }//獲取圖書編號(hào)</p><p>  int gettag(){ return tag; }//獲取刪除標(biāo)記</p><p

88、>  void setname(char na[])//設(shè)置書名</p><p><b>  {</b></p><p>  strcpy(name,na);</p><p><b>  }</b></p><p>  void delbook(){ tag=1;}//刪除圖書</p&g

89、t;<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

90、e,na);</p><p>  onshelf=1;</p><p><b>  }</b></p><p>  int borrowbook()//借書操作</p><p><b>  {</b></p><p>  if (onshelf==1)</p>

91、<p><b>  {</b></p><p>  onshelf=0;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  return 0;</b></p>

92、<p><b>  }</b></p><p>  void retbook()//還書操作</p><p><b>  {</b></p><p>  onshelf=1;</p><p><b>  }</b></p><p>  voi

93、d disp()//輸出圖書</p><p><b>  {</b></p><p>  cout << setw(6) << no << setw(18) << name << setw(10)</p><p>  <<(onshelf==1? "在架"

94、;:"已借") <<endl;</p><p><b>  }</b></p><p><b>  };</b></p><p>  //圖書庫(kù)類,實(shí)現(xiàn)對(duì)圖書的維護(hù),查找,刪除等</p><p>  class BDatabase</p><p&g

95、t;<b>  {</b></p><p><b>  private:</b></p><p>  int top; //圖書記錄指針</p><p>  Book book[Maxb]; //圖書記錄</p><p><b>  public:</b><

96、;/p><p>  BDatabase()//構(gòu)造函數(shù),將book.txt讀到book[]中</p><p><b>  { </b></p><p><b>  Book b;</b></p><p><b>  top=-1;</b></p><p> 

97、 fstream file("book.txt",ios::in);</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  file.read((char *)&b,sizeof(b));</p><p>  

98、if (!file) break;</p><p><b>  top++;</b></p><p>  book[top]=b;</p><p><b>  }</b></p><p>  file.close();</p><p><b>  }</b&g

99、t;</p><p>  void clear()//全刪</p><p><b>  {</b></p><p><b>  top=-1;</b></p><p><b>  }</b></p><p>  int addbook(int n,cha

100、r *na);//增加圖書</p><p>  Book *query(int bookid)//查找圖書</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  if (book[i].getno()==bookid &&b

101、ook[i].gettag()==0)</p><p><b>  {</b></p><p>  return &book[i];</p><p><b>  }</b></p><p>  return NULL;</p><p><b>  }<

102、;/b></p><p>  void bookdata();//圖書庫(kù)維護(hù)</p><p>  void disp() //輸出圖書 </p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  if (bo

103、ok[i].gettag()==0)</p><p>  book[i].disp();</p><p><b>  }</b></p><p>  ~BDatabase();//析構(gòu)函數(shù),將book[]寫到book.txt文件中</p><p><b>  };</b></p>&l

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

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

106、n 0;</b></p><p><b>  }</b></p><p>  BDatabase::~BDatabase()//析構(gòu)函數(shù),將book[]寫到book.txt文件中</p><p><b>  {</b></p><p>  fstream file("book.

107、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],sizeof(book[i]));</p><p>  file.clo

108、se();</p><p><b>  }</b></p><p>  void BDatabase::bookdata()</p><p><b>  {</b></p><p>  char choice;</p><p>  char bname[40];</p&

109、gt;<p>  int bookid;</p><p><b>  Book *b;</b></p><p><b>  do </b></p><p><b>  {</b></p><p>  cout <<"\n\n\n\t\t\t歡

110、迎進(jìn)入圖書維護(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\t0 退 出"<<endl;&

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

112、quot;輸入圖書編號(hào):"<<endl;</p><p>  cin >> bookid;</p><p>  cout << "輸入圖書書名:"<<endl;</p><p>  cin >> bname;</p><p>  addbook(book

113、id,bname);</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  cout << "輸入圖書編號(hào):"<<endl;</p><p>  cin >>

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

115、t;b>  break;</b></p><p><b>  }</b></p><p>  cout << "輸入新的書名:"<<endl;</p><p>  cin >> bname;</p><p>  b->setname(bnam

116、e);</p><p><b>  break;</b></p><p><b>  case '3':</b></p><p>  cout <<" 讀入圖書編號(hào):"<<endl;</p><p>  cin >> booki

117、d;</p><p>  b=query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<" 該圖書不存在" << endl;</p><p><b> 

118、 break;</b></p><p><b>  }</b></p><p>  b->delbook();</p><p><b>  break;</b></p><p><b>  case '4':</b></p>&l

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

120、;/p><p>  cout <<" 該圖書不存在"<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  b->disp();</p><p><b

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

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

123、t;p><b>  }</b></p><p>  }while (choice!='0');</p><p><b>  }</b></p><p>  void showmenu()</p><p><b>  {</b></p><

124、;p>  cout<<" ";</p><p>  cout<<"|---------------------------------------------------------------------|"<<endl;</p><p>  cout<<"

125、 ";</p><p>  cout<<"|-----設(shè)計(jì)者:童安蓉,楊丹,劉蕙娟,鄧小偉----完成時(shí)間:2010年12月28日---|"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|---

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

127、---------|"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 1.借 書 |"<<endl;</p><p&g

128、t;  cout<<" ";</p><p>  cout<<"| 2.還 書 |"<<endl;</p><p>  cout<<" ";</p>

129、<p>  cout<<"| 3.圖 書 維 護(hù) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|

130、 4.讀 者 維 護(hù) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 0.退出:將數(shù)據(jù)保存到磁盤 |"<<endl;<

131、/p><p>  cout<<" ";</p><p>  cout<<"|----------------------------------------------------------------|"<<endl;</p><p><b>  }</b&g

132、t;</p><p>  void showtip()</p><p><b>  { </b></p><p>  cout<<"\n\t\t----------------操作完成!-----------------"<<endl;</p><p>  cout<&

133、lt;"\t\t----------------選擇0-5繼續(xù)------------------"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|------------------------------------------------

134、-------|"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 1.借 書 |"<<endl;</p><p>

135、  cout<<" ";</p><p>  cout<<"| 2.還 書 |"<<endl;</p><p>  cout<<" ";</p>

136、<p>  cout<<"| 3.圖 書 維 護(hù) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"|

137、 4.讀 者 維 護(hù) |"<<endl;</p><p>  cout<<" ";</p><p>  cout<<"| 0.退出:將數(shù)據(jù)保存到磁盤 |"<<endl;</p

138、><p>  cout<<" ";</p><p>  cout<<"|----------------------------------------------------------------|"<<endl;</p><p><b>  }</b>

139、</p><p>  //main() 函數(shù)的實(shí)現(xiàn),程序的主界面的引導(dǎo)</p><p>  int main()</p><p><b>  { </b></p><p>  char choice;</p><p>  int bookid,readerid; //圖書編號(hào),讀者編號(hào)

140、</p><p>  RDatabase ReaderDB; //讀者庫(kù)</p><p>  Reader *r; //讀者</p><p>  BDatabase BookDB; //圖書庫(kù)</p><p>  Book *b; //圖書</p&g

141、t;<p>  cout<<"正在打開系統(tǒng),請(qǐng)稍后..."<<endl;</p><p>  showmenu(); //顯示菜單</p><p>  cout<<"\t\t\t請(qǐng)選擇菜單中的數(shù)字以便處理數(shù)據(jù):";</p><p>  cin >&g

142、t; choice;</p><p>  while (choice!='0')</p><p><b>  {</b></p><p>  switch (choice)</p><p><b>  {</b></p><p>  case '1&

143、#39;: //輸入讀者編號(hào)和要借的圖書</p><p>  cout <<" 借書 讀者編號(hào):";</p><p>  cin >>readerid;</p><p>  cout <<" 圖書編號(hào): ";</p><

144、;p>  cin >>bookid;</p><p>  r=ReaderDB.query(readerid); //按編號(hào)查找</p><p>  if (NULL==r)</p><p><b>  {</b></p><p>  cout <<" 不存在該讀者,不能借書

145、"<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  b=BookDB.query(bookid);</p><p>  if (b==NULL)</p><p><b&g

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

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

148、</p><p>  r->borrowbook(b->getno());</p><p><b>  break;</b></p><p>  case '2': //還書操作</p><p>  cout<<"還書\n 讀者編

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

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

151、;  }</b></p><p>  b=BookDB.query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<" 不存在該圖書,不能還書" <<endl;</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. 眾賞文庫(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)論