c++程序設計圖書管理系統(tǒng)_第1頁
c++程序設計圖書管理系統(tǒng)_第2頁
c++程序設計圖書管理系統(tǒng)_第3頁
c++程序設計圖書管理系統(tǒng)_第4頁
c++程序設計圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1、 需求分析圖書系統(tǒng)在生活中運用相當廣泛,因此需要很多程序對他進行管理。本系統(tǒng)有四個類,持有借類'BDatebase類、Reader類、RDatebase類,存儲借閱者的個人信息、借閱信息以及預定信息。閱卡的借閱者可以借閱書刊、返還書刊、查詢書刊信息、預定書刊并取消預定等功能。2、 系統(tǒng)總框圖三、模塊的設計分析4.1 圖書入庫管理模塊設計設定了書籍總數(shù),定義了新圖書的增加和書籍編號Bookp1000;voidinlibrary()intsort_add4.2 圖書借書管理模塊設計定義了圖書的借書系統(tǒng),和借出書籍編號。intBook:borrow()intnumber_out;4.3

2、圖書還書管理模塊設計定義了圖書的還書系統(tǒng),和還出書籍編號。intBook:restore()intnumber_in;4.4 圖書查詢管理模塊設計無專門模塊,同借還書系統(tǒng)。在借書和還書的同時,進行查詢。四、程序中出現(xiàn)的函數(shù)看看該類定義了借書操作,還書操作,設置讀者姓名等功能Reader+name20:char+no:int+tag:int+borbook:int+getname():char+gettag():int+getno():int+setname(charna):void+delbook():void+addreader(intn,char*na):void+borrowbook(i

3、ntbookid):void一+retbook(intbookid):int+disp():void該類實現(xiàn)了建立讀者的個人資料,刪除讀者信息,輸出讀者信息等功能。RDatebasent圖書類的設計+top:int+rname20:char+readerid:int+readerdata():void+choice:char+addreader(intn,char*na):i+clear():void+disp():voidBook+no:int+name20:char+onshelf:int+getname():char+getno():int+gettag():int+setname(ch

4、arna):void+delbook():void+addbook():void+borrowbook():int+retbook():void+disp():void圖書庫類的設計Xingzhengrenyuan+top:int+clear():void+addbook(intn,char*na):int+bookdata():void+bookdata():void+disp():void五、特色的函數(shù)實現(xiàn)voidBDatabase:bookdata()(charchoice;charbname40;intbookid;Book*b;while(choice!='O!)(cout&

5、#171;nnnnttt圖書維護"vvendkendl;cout«ntt1新增ntt2更改ntt3刪除ntt4查找nN5顯示ntt6全刪nttO退出"vvendl;cin>>choice;switch(choice)caseT:cout«”輸入圖書編號:“vvendl;cin>>bookid;cout«”輸入圖書書名:“vvendl;cin»bname;addbook(bookid,bname);break;case2:cout«”輸入圖書編號:“vvendl;cin>>bookid;b=

6、query(bookid);if(b=NULL)(cout«”該圖書不存在"vvendl;break;cout«”輸入新的書名:“vvendl;cin»bname;b->setname(bname);break;case'sl:cout«”讀入圖書編號:“vvendl;cin>>bookid;b=query(bookid);if(b=NULL)(cout«”該圖書不存在“vvendl;break;b->delbook();break;case'4':cout«”讀入圖書編號:“

7、vvendl;cin>>bookid;b=query(bookid);if(b=NULL)(cout«”該圖書不存在“vvend;break;)b->disp();break;case'S1:disp();break;case'6f:clear();break;default:cout«"輸入錯誤,請從新輸入:";六、存在的回題與不足及對策由于設計者水平有限及時間等方面的原因,該系統(tǒng)的功能比較簡單,查錯能力也不強,對于一些不正確的輸入可能會造成一些難以預料的結果,因此,請不要故意輸入錯誤信息。這些不足請老師多多諒解。今后

8、設計者會更多的學習編程技巧,不斷的提高程序設計水平。七、心得體會通過這次的課程設計,讓我充分的感覺到了要自己設計一個程序是多么的難,這個程序的設計過程中,我清楚的意識到自己的水平有多么的薄弱,每增加一個函數(shù)就要調(diào)試好久,有時候應為少了一個大括號或是分號,導致要找很久很久。雖然系統(tǒng)可以運行,也具有了一些基本的功能,但我意識到了自己有太多的不足。以后還會有很多的課程設計,一定要吸取這次的教訓,把知識學懂學透學精,真正的為我所用,這樣走上社會我才能真正的發(fā)揮所長。源程序#include<iostream>#includeviomanip>#include<string>

9、#include<fstream>usingnamespacestd;constintMaxr=100;constintMaxb=100;constintMaxbor=5;classReader(private:inttag;intno;charname10;intborbookMaxbor;public:Reader()char*getname()returnname;intgettag()returntag;intgetno()returnno;voidsetname(charna)(strcpy(name,na);voiddelbook()tag=1;voidaddreade

10、r(intn,char*na)tag=0;no=n;strcpy(name,na);for(inti=0;i<Maxbor;i+)borbooki=0;voidborrowbook(intbookid)(for(inti=0;i<Maxbor;i+)(if(borbooki=0)borbooki=bookid;return;intretbook(intbookid)(for(inti=0;i<Maxbor;i+)(if(borbooki=bookid)(borbooki=0;return1;returno;)voiddisp()(cout«setw(5)«

11、no«setw(10)«name<<"借書編號:for(inti=0;i<Maxbor;i+)if(borbooki!=0)cout<vborbookiv<T;cout«',',«endl;);classRDatabase(private:inttop;ReaderreadMaxr;public:RDatabase()(Readers;top=-1;fstreamfile(nreader.txtn,ios:in);while(1)(file.read(char*)&s,sizeof(s);i

12、f(!file)break;top+;readtop=s;file.close();voidclear()(top=-1;intaddreader(intn,char*na)Reader*p=query(n);if(p=NULL)(top+;readtop.addreader(n,na);return1;returno;Reader*query(intreaderid)(for(inti=0;i<=top;i+)if(readi.getno()=readerid&&readi.gettag()=O)(return&readi;returnNULL;voiddisp

13、()(for(inti=0;i<=top;i+)readi.disp();voidreaderdata();RDatabase()fstreamfileC'reader.txf'Jos-out);for(inti=0;i<=top;i+)if(readi.gettag()=O)file.write(char*)&readi,sizeof(readi);file.close(););voidRDatabase:readerdata()(charchoice;charrname20;intreaderid;Reader*r;while(choice!='

14、0,)(查找cout«nnnttt讀者維護nnntt1新增nntt2更改nntt3刪除nntt4nntt5顯示nntt6全刪nnttO退出“vvendl;cin>>choice;switch(choice)(case”':coutvv”輸入讀者編號:";cin>>readerid;coutvv”輸入讀者姓名:”;cin»rname;addreader(readerid,rname);break;case'2':coutvv”輸入讀者編號:";cin>>readerid;r=query(reade

15、rid);if(r=NULL)(cout«”該讀者不存在,'vvendl;break;coutvv”輸入新的姓名:";cin»rname;r->setname(rname);break;case'3':coutvv”輸入讀者編號:"cin>>readerid;r=query(readerid);if(r=NULL)(coutvv”該i賣者不存在"vvendl;break;)r->delbook();break;case*4':coutvv”讀入讀者編號:"cin>>r

16、eaderid;r=query(readerid);if(r=NULL)(coutvv”該讀者不存在"vvendl;break;)r->disp();break;case'5':disp();break;case'6':clear();break;'break;default:cout«"輸入錯誤,請從新輸入:classBook(private:inttag;intno;charname20;intonshelf;public:Book()char*getname()returnname;intgetno()retur

17、nno;intgettag()returntag;voidsetname(charna)(strcpy(name,na);voiddelbook()tag=1;voidaddbook(intn,char*na)(tag=0;no=n;strcpy(name,na);onshelf=1;)intborrowbook()if(onshelf=1)(onshelf=O;return1;)returno;)voidretbook()(onshelf=1;)voiddisp()(cout«setw(6)<<no«setw(18)<<name«setw

18、(10)«(onshelf=1?”在架已借")vvendl;);classBDatabase(private:inttop;BookbookMaxb;public:BDatabase()(Bookb;top=-1;fstreamfile("book.txtn,ios:in);while(1)file.read(char*)&b,sizeof(b);if(!file)break;top+;booktop=b;)file.close();)voidclear()(top=-1;)intaddbook(intn,char*na)(Book*p=query(n);

19、if(NULL=p)(top+;booktop.addbook(n,na);return1;)returno;)Book*query(intbookid)(for(inti=0;i<=top;i+)if(booki.getno()=bookid&&booki.gettag()=0)(return&booki;、選擇填空題(共20小題,每小題2分,共40分)returnNULL;)voidbookdata();voiddisp()(for(inti=0;i<=top;i+)if(booki.gettag()=0)booki.disp();)BDatabase(

20、)(fstreamfile("book.txtn,ios:out);for(inti=0;i<=top;i+)if(booki.gettag()=0)file.write(char*)&booki,sizeof(booki);file.close(););voidBDatabase:bookdata()(charchoice;charbname40;intbookid;Book*b;while(choice!='0,)(cout«Hnnnttt圖書維護“vvendl«endl;cout«ntt1新增ntt2更改ntt3刪除ntt4查

21、找ntt5顯示ntt6全刪nttO退出"vvendl;cin>>choice;switch(choice)caseT:cout«”輸入圖書編號:“vvendl;cin>>bookid;cout«”輸入圖書書名:“vvendl;cin»bname;addbook(bookid,bname);break;case2:cout«”輸入圖書編號:“vvendl;cin>>bookid;b=query(bookid);if(b=NULL)(cout«”該圖書不存在“vvendl;break;)cout

22、1;”輸入新的書名:“vvendl;cin»bname;b->setname(bname);break;case3:cout«”讀入圖書編號:"vvendl;cin>>bookid;b=query(bookid);if(b=NULL)(cout«”該圖書不存在“vvendl;break;b->delbook();break;case'4':cout«”讀入圖書編號:“vvendl;cin>>bookid;b=query(bookid);if(b=NULL)(cout«”該圖書不存在“

23、vvendl;break;)b->disp();break;case5:disp();break;case'6':clear();break;default:cout«"輸入錯誤,請從新輸入voidmain()(charchoice;intbookid,readerid;RDatabaseReaderDB;Reader*r;BDatabaseBookDB;Book*b;while(choice!='0,)(圖書維護nnttt4讀者維護cout«endl«endl«nttt圖書管理系統(tǒng)nnnu;cout«nttt1借書nnttt2還書nnttt3nntttO離開&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論