2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩30頁(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>  目錄</b></p><p><b>  一、 設(shè)計(jì)目的2</b></p><p><b>  二、設(shè)計(jì)內(nèi)容2</b></p><p><b>  三、設(shè)計(jì)要求2</b></p><p><b>  四、設(shè)計(jì)過(guò)

2、程3</b></p><p>  1、面向?qū)ο蠓治?</p><p>  2、數(shù)據(jù)結(jié)構(gòu)分析7</p><p>  3、 系統(tǒng)執(zhí)行流程8</p><p>  五、 程序運(yùn)行結(jié)果11</p><p>  六、 設(shè)計(jì)總結(jié)17</p><p><b>  參考文獻(xiàn)17

3、</b></p><p><b>  附錄18</b></p><p><b>  圖書銷售管理系統(tǒng)</b></p><p><b>  設(shè)計(jì)目的</b></p><p>  本圖書銷售管理系統(tǒng),主要用于小型的書店,進(jìn)行簡(jiǎn)單的圖書的管理,為了能夠更好的管理書店的銷

4、售的情況和庫(kù)存的情況書店銷售管理系統(tǒng)主要的功能有:</p><p> ?。?)圖書入庫(kù)管理:維護(hù)入庫(kù)圖書信息,圖書編號(hào)、書名、價(jià)格等,自動(dòng)計(jì)算庫(kù)存。</p><p> ?。?)圖書查詢統(tǒng)計(jì):可以根據(jù)圖書分類、出版社、書名、作者等條件查詢圖書的詳細(xì)信息。</p><p> ?。?)銷售管理:銷售過(guò)的圖書都記錄在銷售列表中,方便統(tǒng)計(jì)收入。圖書銷售后,要記錄圖書庫(kù)存,按每

5、天統(tǒng)計(jì)銷售額、每個(gè)月或季度生成報(bào)表,并生成暢銷書單。</p><p><b>  二、設(shè)計(jì)內(nèi)容</b></p><p>  (1) 圖書信息包括書名、書號(hào)、作者、出版社、單價(jià)、庫(kù)存數(shù)量、進(jìn)價(jià)、售價(jià)、利潤(rùn);</p><p>  (2)用戶登錄界面設(shè)計(jì)</p><p>  (3)信息維護(hù):包括子模塊有增加圖書信息、刪除圖書信

6、息、修改圖書信息</p><p>  (4 ) 查詢功能:可按書名查詢、作者查詢、或出版社查詢</p><p>  (5) 排序功能:能實(shí)現(xiàn)按圖書銷售利潤(rùn)進(jìn)行排序的功</p><p><b>  三、設(shè)計(jì)要求</b></p><p> ?。?) 只能使用C++語(yǔ)言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀</p>

7、<p> ?。?) 至少采用文本菜單界面(如果能采用圖形菜單界面更好)</p><p>  (3) 學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)</p><p>  (4) 寫出課程設(shè)計(jì)報(bào)告,具體要求見(jiàn)相關(guān)說(shuō)明文檔</p><p><b>  四、設(shè)計(jì)過(guò)程</b></p><p><b>  1、

8、面向?qū)ο蠓治?</b></p><p><b>  (1)對(duì)象模型設(shè)計(jì)</b></p><p><b> ?。?)各個(gè)類設(shè)計(jì)</b></p><p>  系統(tǒng)中說(shuō)明了4個(gè)類,每個(gè)類的詳細(xì)設(shè)計(jì)如下:</p><p><b>  1.Book類</b></p>

9、;<p>  class book{ //book基類</p><p>  protected:</p><p>  string name;//名稱</p><p>  float price; //價(jià)格</p><p>  int num; //編號(hào)</p><p>  int kucun,xcl,

10、salel; //庫(kù)存,現(xiàn)存量,銷售量</p><p><b>  public:</b></p><p>  int getnum(){</p><p>  return num;} //編號(hào)接口函數(shù)</p><p>  string getname(){//名稱接口函數(shù)</p><p>  r

11、eturn name;}</p><p>  float getprice(){return price;} //價(jià)格接口函數(shù)</p><p>  int getkucun(){return kucun;} //庫(kù)存量接口函數(shù)</p><p>  int getxcl(){return xcl;} //現(xiàn)存量接口函數(shù)</p><p>  in

12、t getsalel(){return salel;} //銷售量接口函數(shù)</p><p>  virtual void input()=0; //輸入虛函數(shù)</p><p>  virtual void output()=0; //輸出虛函數(shù)</p><p>  說(shuō)明:Book類是一個(gè)基類,用于定義圖書基本的信息。例如:其中string getname()是一個(gè)

13、接口函數(shù),能獲得圖書的姓名。</p><p>  2.Yule(娛樂(lè)類)</p><p>  class yule:public book{//娛樂(lè)的派生類</p><p><b>  public:</b></p><p>  void input(){//輸入</p><p>  cin>

14、;>name;</p><p>  cin>>num; </p><p>  cin>>price;</p><p>  cin>>kucun;</p><p>  cin>>salel;</p><p><b>  cin>>xcl;<

15、/b></p><p><b>  }</b></p><p>  void output(){//輸出</p><p>  cout<<"Yule:"<<endl;</p><p>  cout<<name<<" "<&

16、lt;num<<" "<<price<<" "<<kucun<<" "<<salel<<" "<<xcl<<endl;</p><p><b>  }</b></p><p>  v

17、oid compute(){//計(jì)算售出剩余函數(shù)</p><p>  int counts;</p><p>  cout<<"輸入售出的圖書的本數(shù)"<<endl;</p><p>  cin>>counts;</p><p>  cout<<"售后剩余:"

18、;<<endl;</p><p>  kucun=kucun-counts;//計(jì)算庫(kù)存量</p><p>  salel=salel+counts;//計(jì)算銷售量</p><p>  xcl=xcl-counts;//計(jì)算剩余量</p><p>  說(shuō)明: yule類用于定義娛樂(lè)圖書的信息,它是Book類的公有派生類。其中:&l

19、t;/p><p>  Compute()是一個(gè)計(jì)算售出圖書數(shù)量和剩余的函數(shù),input()和 output()函數(shù)是對(duì)圖書信息的輸入和輸出而且他們是在基類中定義的純虛函數(shù)。</p><p>  study(學(xué)習(xí)類圖書)</p><p>  class study:public book{//學(xué)習(xí)類</p><p><b>  publi

20、c:</b></p><p>  void input(){</p><p>  cin>>name;</p><p>  cin>>num; </p><p>  cin>>price;</p><p>  cin>>kucun;</p>&

21、lt;p>  cin>>salel;</p><p><b>  cin>>xcl;</b></p><p><b>  }</b></p><p>  void output(){</p><p>  cout<<"Learn:"<

22、;<endl;</p><p>  cout<<name<<" "<<num<<" "<<price<<" "<<kucun<<" "<<salel<<" "<<xcl<&

23、lt;endl;</p><p><b>  }</b></p><p>  void compute1(){</p><p>  int counts;</p><p>  cout<<"輸入售出的圖書的本數(shù)"<<endl;</p><p>  cin

24、>>counts;</p><p>  cout<<"售后剩余:"<<endl;</p><p>  kucun=kucun-counts;</p><p>  salel=salel+counts;</p><p>  xcl=xcl-counts;</p><p&

25、gt;  study類用于定義學(xué)習(xí)類圖書的信息,它是Book類的公有派生類。其中:</p><p>  Compute1()是一個(gè)計(jì)算售出圖書數(shù)量和剩余的函數(shù),input()和 output()函數(shù)是對(duì)圖書信息的輸入和輸出而且他們是在基類中定義的純虛函數(shù)。</p><p>  operate(功能類)</p><p>  typedef vector<yule

26、> STRVEC;//定義stl模版的容器</p><p>  typedef vector<study> STRVEC1;</p><p>  class operate{ //定義功能類 </p><p>  STRVEC strvec;</p><p>  STRVEC1 strvec1

27、;</p><p><b>  public:</b></p><p>  void search_yulenum(int m)//娛樂(lè)類圖書按編號(hào)查找</p><p>  void search_yulename(string s)//查找?jiàn)蕵?lè)類圖書按名稱</p><p>  void del_yulenum(int

28、n)//刪除娛樂(lè)類圖書按編號(hào)</p><p>  void del_yulename(string p)//按圖書名稱刪除</p><p>  void add_study()//添加學(xué)習(xí)類圖書的基本信息</p><p>  void add_yule()//添加娛樂(lè)類圖書的基本信息</p><p>  void search_studynu

29、m(int m)//查找學(xué)習(xí)類圖書的編號(hào)</p><p>  void search_studyname(string s)//查找學(xué)習(xí)類圖書的名稱</p><p>  void xiugai_yule(int m)//修改娛樂(lè)類圖書的剩余量</p><p>  void xiugai_study(int m)//修改學(xué)習(xí)類圖書的剩余量</p><

30、;p>  void del_studynum(int n)//刪除售完圖書</p><p>  void del_studyname(string p) //按名稱刪除圖書</p><p>  void show_yule()//顯示娛樂(lè)類圖書</p><p>  void show_study()//顯示學(xué)習(xí)類圖書</p><p> 

31、 void saleamounts()//計(jì)算銷售額</p><p>  void changxiao1()//娛樂(lè)類圖書暢銷</p><p>  void changxiao()//學(xué)習(xí)類圖書暢銷</p><p>  void save()//娛樂(lè)類入庫(kù)單</p><p>  void save1()//學(xué)習(xí)類入庫(kù)單</p>

32、<p>  void load()//讀取娛樂(lè)類文件</p><p>  void load1()//讀取學(xué)習(xí)類文件</p><p>  void Menu()//應(yīng)用菜單</p><p>  說(shuō)明:operate類用來(lái)實(shí)現(xiàn)圖書管理系統(tǒng)的功能,它是用來(lái)查找、添加、刪除圖書的信息的基本點(diǎn)的信息,對(duì)系統(tǒng)進(jìn)行維護(hù),生成入庫(kù)單、暢銷書和一天的銷售額。</p&

33、gt;<p><b>  2、數(shù)據(jù)結(jié)構(gòu)分析</b></p><p>  書店銷售管理系統(tǒng)的數(shù)據(jù)結(jié)構(gòu):</p><p><b>  系統(tǒng)執(zhí)行流程</b></p><p> ?。?)主頁(yè)面流程圖如圖(1)</p><p>  圖(1)主頁(yè)面流程圖</p><p>&

34、lt;b>  (2)顧客登陸</b></p><p><b>  簡(jiǎn)述:</b></p><p>  用戶在圖書銷售系統(tǒng)里顧客登陸并查詢圖書內(nèi)容。</p><p><b>  基本流程:</b></p><p>  1 顧客:在圖書銷售系統(tǒng)畫面,選擇顧客登陸,顯示圖書基本信息,按

35、提示內(nèi)容進(jìn)行查找</p><p>  2 查詢:顧客在圖書銷售系統(tǒng)中能查詢圖書的信息;</p><p>  3 顯示:顧客能在顧客界面能看到最近的圖書;</p><p><b>  4 結(jié)束。</b></p><p><b>  流程圖如圖(2)</b></p><p>

36、  圖(2)顧客登錄流程圖</p><p><b> ?。?)收銀員登陸</b></p><p><b>  簡(jiǎn)述:</b></p><p>  收銀員在圖書銷售系統(tǒng)里能看到圖書信息并能修改出售圖書的數(shù)量。</p><p><b>  基本流程:</b></p>

37、<p>  1 收銀員:在圖書銷售系統(tǒng)畫面,選擇收銀員登陸,輸入密碼,進(jìn)入收銀員界面。</p><p>  2 修改:收銀員在圖書銷售系統(tǒng)中能修改圖書的售出情況;</p><p>  3 顯示:收銀員能在顧客界面能看到最近錄入的圖書;</p><p><b>  4 結(jié)束。</b></p><p>&l

38、t;b>  流程圖如圖(3)</b></p><p>  圖(3)收銀員登錄流程圖</p><p><b>  管理員登陸</b></p><p><b>  簡(jiǎn)述:</b></p><p>  管理員在圖書銷售系統(tǒng)填加、刪除和查找圖書信息,并能顯示銷售額。</p>

39、<p><b>  基本流程:</b></p><p>  1 管理員:在圖書銷售系統(tǒng)畫面,選擇管理員登陸,輸入密碼,進(jìn)入收銀員界面。</p><p>  2 添加: 管理員在圖書銷售系統(tǒng)中能填加圖書的基本情況;</p><p>  3 刪除: 管理員在圖書銷售系統(tǒng)中能刪除圖書的基本信息;</p><p&

40、gt;  4 查找: 管理員在圖書銷售系統(tǒng)中能查找圖書的基本信息。</p><p>  5 銷售額:管理員在圖書銷售系統(tǒng)中能看到銷售額的輸出</p><p>  6 暢銷書:管理員在圖書銷售系統(tǒng)中能查詢暢銷書</p><p><b>  7 結(jié)束</b></p><p><b>  流程圖如圖(4)&

41、lt;/b></p><p>  圖(4)管理員登錄流程圖</p><p><b>  程序運(yùn)行結(jié)果</b></p><p><b>  管理員登錄</b></p><p>  在書店開(kāi)始售書之前先由管理員添加書籍內(nèi)容,在管理員將需要添加的書籍添加完畢后顧客還有收銀員才能執(zhí)行自己相應(yīng)的功能。選

42、擇管理員功能會(huì)進(jìn)入登陸界面;密碼輸入正確方能進(jìn)入使用,錯(cuò)誤則會(huì)返回輸入密碼界面,直到密碼正確,進(jìn)入使用界面。</p><p>  按1添加娛樂(lè)類的圖書及相關(guān)內(nèi)容</p><p>  添加成功后好可以繼續(xù)按1添加娛樂(lè)類書籍相關(guān)內(nèi)容,也可按5繼續(xù)添加學(xué)習(xí)類的圖書</p><p>  添加完畢后可返回主菜單(11選項(xiàng))</p><p><b&

43、gt;  收銀員登錄</b></p><p>  在主界面按2可進(jìn)入收銀員的登錄界面,同管理員一樣,收銀員也一樣需要輸入密碼,密碼對(duì)方可進(jìn)入修改界面,在這里收銀員可以對(duì)圖書的銷售情況進(jìn)行修改,以便以后對(duì)圖書銷售情況便于管理</p><p>  輸入圖書編號(hào)(娛樂(lè)類/學(xué)習(xí)類)并且輸入將要售出的本數(shù),系統(tǒng)將會(huì)顯示圖書(娛樂(lè)類/學(xué)習(xí)類)的售后情況</p><p&g

44、t;  顧客登錄(張海東負(fù)責(zé))</p><p>  在主界面選擇1可以進(jìn)入顧客的使用界面,在這里顧客可以看到所以書籍(娛樂(lè)類和學(xué)習(xí)類),并可以按照編號(hào)或者圖書名稱查詢相應(yīng)圖書的詳細(xì)內(nèi)容</p><p>  到此顧客使用功能結(jié)束。</p><p>  當(dāng)然管理員也有對(duì)圖書查詢的功能,對(duì)圖書的銷售情況時(shí)時(shí)了解</p><p><b> 

45、 娛樂(lè)類圖書查詢:</b></p><p><b>  學(xué)習(xí)類圖書查詢:</b></p><p><b>  銷售額顯示</b></p><p>  在一段時(shí)間后書籍可能售完,這樣管理員需要將此類書籍刪除,以免誤導(dǎo)顧客,在圖書刪除后,顧客在查詢系統(tǒng)中將不會(huì)再查詢到相關(guān)的內(nèi)容</p><p&g

46、t;<b>  娛樂(lè)類圖書刪除</b></p><p><b>  學(xué)習(xí)類圖書刪除</b></p><p>  管理員在執(zhí)行完所有的步驟后可以選擇回到住界面,也可以選擇退出系統(tǒng)</p><p><b>  回到主界面選擇:</b></p><p><b>  退出系統(tǒng)

47、選擇:</b></p><p><b>  設(shè)計(jì)總結(jié)</b></p><p>  (1)完成本課題花了很長(zhǎng)的時(shí)間,真正體會(huì)了作為一個(gè)程序員的辛苦,并且必須具備細(xì)心、耐心的品質(zhì),想要完成一項(xiàng)出色的項(xiàng)目,必須精益求精,反復(fù)操作與實(shí)踐。</p><p>  (2)在做了本課程設(shè)計(jì)以后,我對(duì)C++的了解更深了,很多知識(shí)得到了鞏固,一些不懂的

48、知識(shí)也漸漸明了!這其中主要是對(duì)指針的使用收獲很多,在指針使用的過(guò)程中,對(duì)指針的指向以及對(duì)各函數(shù)中指針的賦值會(huì)影響到整個(gè)程序的運(yùn)行;還有就是對(duì)文件的輸入輸出流了解得更透徹了,知道了打開(kāi)一個(gè)文件后必須還要對(duì)其關(guān)閉,否則程序無(wú)法運(yùn)行,對(duì)各種文件的輸入輸出控制符都能基本融會(huì)貫通。 </p><p> ?。?)雖然本課題已完成,可是還是存在一些問(wèn)題,比如說(shuō)界面還不夠好看,為了用戶用得舒服,界面是很重要的。</p>

49、;<p><b>  參考文獻(xiàn)</b></p><p>  鄭莉等編著.《C++語(yǔ)言程序設(shè)計(jì)》.清華大學(xué)出版社 </p><p>  鄭莉等編著.《C++語(yǔ)言程序設(shè)計(jì)習(xí)題與實(shí)驗(yàn)指導(dǎo)》.清華大學(xué)出版社 </p><p>  張基溫編著.《C++程序設(shè)計(jì)基礎(chǔ)例題與習(xí)題》.高等

50、教育出版社 </p><p>  黃明等編著.《面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題詳解》.機(jī)械工業(yè)出版社 </p><p><b>  附錄 </b></p><p><b>  源代碼:</b></p><p>  #include <iostream> </p>

51、<p>  #include <iomanip> </p><p>  #include <string> </p><p>  #include <fstream></p><p>  using namespace std; </p><p>  const int Maxr=100;<

52、/p><p>  const int Maxb=100;</p><p>  const int Maxbor=5;</p><p>  class Reader </p><p><b>  { </b></p><p><b>  private: </b></p>

53、;<p><b>  int tag; </b></p><p><b>  int no; </b></p><p>  char name[10];</p><p>  int borbook[Maxbor]; </p><p><b>  public: </b&

54、gt;</p><p>  Reader() {} </p><p>  char *getname() {return name;} </p><p>  int gettag() {return tag;} </p><p>  int getno() {return no;} </p><p>  void s

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

56、 addreader(int n,char *na)</p><p><b>  { </b></p><p><b>  tag=0; </b></p><p><b>  no=n; </b></p><p>  strcpy(name,na); </p>&

57、lt;p>  for(int i=0;i<Maxbor;i++) </p><p>  borbook[i]=0; </p><p><b>  } </b></p><p>  void borrowbook(int bookid)</p><p><b>  { </b></p

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

59、t;/p><p><b>  return; </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  int retbook(int b

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

61、t;  { </b></p><p>  borbook[i]=0; </p><p>  return 1; </p><p><b>  } </b></p><p><b>  } </b></p><p>  return 0; </p>&

62、lt;p><b>  } </b></p><p>  void disp()</p><p><b>  { </b></p><p>  cout << setw(5) << no <<setw(10) << name<<"借書編號(hào):[&quo

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

64、lt;<endl; </p><p><b>  } </b></p><p><b>  }; </b></p><p>  class RDatabase </p><p><b>  { </b></p><p><b>  pri

65、vate: </b></p><p><b>  int top; </b></p><p>  Reader read[Maxr];</p><p><b>  public: </b></p><p>  RDatabase() </p><p><b&

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

67、gt;<b>  { </b></p><p>  file.read((char *)&s,sizeof(s)); </p><p>  if (!file)break; </p><p><b>  top++; </b></p><p>  read[top]=s; </p>

68、;<p><b>  } </b></p><p>  file.close(); </p><p><b>  } </b></p><p>  void clear()</p><p><b>  { </b></p><p><

69、b>  top=-1; </b></p><p><b>  } </b></p><p>  int addreader(int n,char *na)</p><p><b>  { </b></p><p>  Reader *p=query(n); </p>

70、<p>  if (p==NULL) </p><p><b>  { </b></p><p><b>  top++; </b></p><p>  read[top].addreader(n,na); </p><p>  return 1; </p><p>

71、;<b>  } </b></p><p>  return 0; </p><p><b>  } </b></p><p>  Reader *query(int readerid)</p><p><b>  { </b></p><p>  fo

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

73、; </p><p><b>  } </b></p><p>  return NULL; </p><p><b>  } </b></p><p>  void disp() </p><p><b>  { </b></p><

74、;p>  for (int i=0;i<=top;i++) </p><p>  read[i].disp(); </p><p><b>  } </b></p><p>  void readerdata();</p><p>  ~RDatabase()</p><p><

75、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) </p><p>  file.writ

76、e((char *)&read[i],sizeof(read[i])); </p><p>  file.close(); </p><p><b>  } </b></p><p><b>  }; </b></p><p>  void RDatabase::readerdata() &

77、lt;/p><p><b>  { </b></p><p>  char choice; </p><p>  char rname[20]; </p><p>  int readerid; </p><p>  Reader *r; </p><p>  while (c

78、hoice!='0') </p><p><b>  { </b></p><p>  cout <<"******歡迎使用圖書銷售管理系統(tǒng)終極版******”<<endl; </p><p>  cin >> choice; </p><p>  switc

79、h (choice) </p><p><b>  { </b></p><p>  case '1': </p><p>  cout << "******操作菜單******:"; </p><p>  cin >> readerid; </p>

80、<p>  cout << "******收銀員******"; </p><p>  cin >> rname; </p><p>  addreader (readerid,rname); </p><p><b>  break; </b></p><p>

81、  case '2': </p><p>  cout << "******管理員******:"; </p><p>  cin >> readerid; </p><p>  r=query(readerid); </p><p>  if (r==NULL) </p>

82、;<p><b>  { </b></p><p>  cout << " ******顧客****** "<<endl; </p><p><b>  break; </b></p><p><b>  } </b></p>&

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

84、;: </p><p>  cout << " 輸入圖書編號(hào):"; </p><p>  cin >> readerid; </p><p>  r=query(readerid); </p><p>  if (r==NULL) </p><p><b>  {

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

86、><p><b>  break; </b></p><p>  case '4': </p><p>  cout << "讀入圖書編號(hào):"; </p><p>  cin >> readerid; </p><p>  r=query(r

87、eaderid); </p><p>  if (r==NULL) </p><p><b>  { </b></p><p>  cout <<"該圖書不存在"<< endl; </p><p><b>  break; </b></p>

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

89、<p><b>  break; </b></p><p>  case '6': </p><p><b>  clear(); </b></p><p><b>  break; </b></p><p>  default:cout<&l

90、t;"輸入錯(cuò)誤,請(qǐng)從新輸入:";break; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  class Book </p><p>

91、<b>  { </b></p><p><b>  private: </b></p><p><b>  int tag;</b></p><p><b>  int no;</b></p><p>  char name[20];</p>

92、<p>  int onshelf; </p><p><b>  public: </b></p><p><b>  Book(){} </b></p><p>  char *getname() { return name; }</p><p>  int getno(){ re

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

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

95、t;p><b>  no=n; </b></p><p>  strcpy(name,na); </p><p>  onshelf=1; </p><p><b>  } </b></p><p>  int borrowbook()</p><p><b>

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

97、<p>  return 0; </p><p><b>  } </b></p><p>  void retbook()</p><p><b>  { </b></p><p>  onshelf=1; </p><p><b>  } </

98、b></p><p>  void disp()</p><p><b>  { </b></p><p>  cout << setw(6) << no << setw(18) << name << setw(10) </p><p>  <<

99、;(onshelf==1? "缺貨") <<endl; </p><p><b>  } </b></p><p><b>  }; </b></p><p>  class BDatabase </p><p><b>  { </b><

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

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

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

103、gt;  book[top]=b; </p><p><b>  } </b></p><p>  file.close(); </p><p><b>  } </b></p><p>  void clear()</p><p><b>  { </b&g

104、t;</p><p><b>  top=-1; </b></p><p><b>  } </b></p><p>  int addbook(int n,char *na)</p><p><b>  { </b></p><p>  Book *p

105、=query(n); </p><p>  if (NULL==p) </p><p><b>  { </b></p><p><b>  top++; </b></p><p>  book[top].addbook(n,na); </p><p>  return 1;

106、 </p><p><b>  } </b></p><p>  return 0; </p><p><b>  } </b></p><p>  Book *query(int bookid)</p><p><b>  { </b></p&g

107、t;<p>  for (int i=0;i<=top;i++) </p><p>  if (book[i].getno()==bookid &&book[i].gettag()==0) </p><p><b>  { </b></p><p>  return &book[i]; </p&

108、gt;<p><b>  } </b></p><p>  return NULL; </p><p><b>  } </b></p><p>  void bookdata();</p><p>  void disp() </p><p><b>

109、;  { </b></p><p>  for (int i=0;i<=top;i++) </p><p>  if (book[i].gettag()==0) </p><p>  book[i].disp(); </p><p><b>  } </b></p><p>  

110、~BDatabase()</p><p><b>  { </b></p><p>  fstream file("book.txt",ios::out); </p><p>  for (int i=0;i<=top;i++) </p><p>  if (book[i].gettag()==

111、0) </p><p>  file.write((char *)&book[i],sizeof(book[i])); </p><p>  file.close(); </p><p><b>  } </b></p><p><b>  }; </b></p><p&

112、gt;  void BDatabase::bookdata() </p><p><b>  { </b></p><p>  char choice; </p><p>  char bname[40]; </p><p>  int bookid; </p><p><b>  Bo

113、ok *b; </b></p><p>  while (choice!='0') </p><p><b>  { </b></p><p>  cout <<"\n\n\n\t\t\t圖 書 維 護(hù) "<<endl<<endl; </p>&l

114、t;p>  cin >> choice; </p><p>  switch (choice) </p><p><b>  { </b></p><p>  case '1': </p><p>  cout << "輸入圖書編號(hào):"<<en

115、dl; </p><p>  cin >> bookid; </p><p>  cout << "輸入圖書書名:"<<endl; </p><p>  cin >> bname; </p><p>  addbook(bookid,bname); </p>&

116、lt;p><b>  break; </b></p><p>  case '2': </p><p>  cout << "輸入圖書編號(hào):"<<endl; </p><p>  cin >> bookid; </p><p>  b=quer

117、y(bookid); </p><p>  if (b==NULL) </p><p><b>  { </b></p><p>  cout << " 該圖書缺貨 "<<endl; </p><p><b>  break; </b></p>

118、<p><b>  } </b></p><p>  cout << "輸入新的書名:"<<endl; </p><p>  cin >> bname; </p><p>  b->setname(bname); </p><p><b&g

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

120、/p><p>  if (b==NULL) </p><p><b>  { </b></p><p>  cout <<" 該圖書缺貨" << endl; </p><p><b>  break; </b></p><p><

121、b>  } </b></p><p>  b->delbook(); </p><p><b>  break; </b></p><p>  case '4': </p><p>  cout << " 讀入圖書編號(hào):"<<endl;

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

123、lt;< endl; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  b->disp(); </p><p><b>  break; </b></p><p>  case

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

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

126、  } </b></p><p>  void main() </p><p><b>  { </b></p><p>  char choice; </p><p>  int bookid,readerid; </p><p>  RDatabase ReaderDB; <

127、/p><p>  Reader *r; </p><p>  BDatabase BookDB; </p><p><b>  Book *b; </b></p><p>  while(choice!='0') </p><p><b>  { </b><

128、/p><p>  cout <<endl<<endl<<"\t\t\t 圖 書 銷售管 理 系 統(tǒng)\n\n\n"; </p><p>  cin >> choice; </p><p>  switch (choice) </p><p><b>  { </b&

129、gt;</p><p>  case '1': </p><p>  cout <<" 買書 圖書編號(hào):"; </p><p>  cin >>readerid; </p><p>  cout <<" 圖書編號(hào): "; </p><

130、;p>  cin >>bookid; </p><p>  r=ReaderDB.query(readerid);</p><p>  if (NULL==r) </p><p><b>  { </b></p><p>  cout <<" 不存在該圖書,不能買書"&l

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

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

133、book()==0) </p><p><b>  { </b></p><p>  cout << " 該圖書已售完,不能買書"<< endl; </p><p><b>  break; </b></p><p><b>  } </b

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

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

136、 </p><p><b>  { </b></p><p>  cout <<" 不存在該圖書,不能買書" << endl; </p><p><b>  break; </b></p><p><b>  } </b></p

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

138、;b>  break; </b></p><p><b>  } </b></p><p>  b->retbook(); </p><p>  r->retbook(b->getno()); </p><p><b>  break; </b></p>

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

140、<p><b>  break; </b></p><p>  default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:"; </p><p><b>  } </b></p><p><b>  } </b></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)論