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

下載本文檔

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

文檔簡介

1、一、 需求分析圖書系統(tǒng)在生活中運用相當廣泛,因此需要很多程序?qū)λM行管理。本系統(tǒng)有四個類,Book類,BDatebase類、Reader類、RDatebase類,存儲借閱者的個人信息、借閱信息以及預定信息。持有借閱卡的借閱者可以借閱書刊、返還書刊、查詢書刊信息、預定書刊并取消預定等功能。二、 系統(tǒng)總框圖圖書管理系統(tǒng)四個類程序?qū)崿F(xiàn)功能輸出顯示圖書類圖書庫類實驗員讀者類行政人員讀者庫類文件錄入查詢信息刪除信息退出程序三、 模塊的設(shè)計分析4.1 圖書入庫管理模塊設(shè)計設(shè)定了書籍總數(shù),定義了新圖書的增加和書籍編號。Book p1000;void inlibrary()int sort_add4.2 圖書

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

3、(char na):void+ delbook():void+ addreader(int n,char *na):void+ borrowbook(int bookid):void+ retbook(int bookid):int+ disp():void 該類實現(xiàn)了建立讀者的個人資料,刪除讀者信息,輸出讀者信息等功能。 RDatebase+ top:int+ rname20:char+readerid:int+readerdata():void+choice:char+addreader(int n,char *na):int+clear():void+disp():void 圖書類的設(shè)計

4、 Book+no:int+name20:char+onshelf:int+getname():char+getno():int+gettag():int+setname(char na):void+delbook():void+addbook():void+borrowbook():int+retbook():void+disp ():void 圖書庫類的設(shè)計 Xingzhengrenyuan+top:int+clear():void+addbook(int n,char *na):int+bookdata():void+bookdata():void+ disp():void五、 特色的函數(shù)

5、實現(xiàn)void BDatabase:bookdata() char choice; char bname40; int bookid; Book *b; while (choice!=0) cout nnnttt圖 書 維 護 endlendl; couttt1 新 增n tt2 更 改ntt3 刪 除ntt4 查 找ntt5 顯 示ntt6 全 刪ntt0 退 出 choice; switch (choice) case 1: cout 輸入圖書編號: bookid; cout 輸入圖書書名: bname; addbook(bookid,bname); break; case 2: cout

6、輸入圖書編號: bookid; b=query(bookid); if (b=NULL) cout 該圖書不存在 endl; break; cout 輸入新的書名: bname; b-setname(bname); break; case 3: cout 讀入圖書編號: bookid; b=query(bookid); if (b=NULL) cout 該圖書不存在 delbook(); break; case 4: cout 讀入圖書編號: bookid; b=query(bookid); if (b=NULL) cout 該圖書不存在disp(); break; case 5: disp(

7、); break; case 6: clear(); break; default:cout輸入錯誤,請從新輸入:; 六、 存在的問題與不足及對策由于設(shè)計者水平有限及時間等方面的原因,該系統(tǒng)的功能比較簡單,查錯能力也不強,對于一些不正確的輸入可能會造成一些難以預料的結(jié)果,因此,請不要故意輸入錯誤信息。這些不足請老師多多諒解。今后設(shè)計者會更多的學習編程技巧,不斷的提高程序設(shè)計水平。七、心得體會通過這次的課程設(shè)計,讓我充分的感覺到了要自己設(shè)計一個程序是多么的難,這個程序的設(shè)計過程中,我清楚的意識到自己的水平有多么的薄弱,每增加一個函數(shù)就要調(diào)試好久,有時候應(yīng)為少了一個大括號或是分號,導致要找很久很久

8、。雖然系統(tǒng)可以運行,也具有了一些基本的功能,但我意識到了自己有太多的不足。以后還會有很多的課程設(shè)計,一定要吸取這次的教訓,把知識學懂學透學精,真正的為我所用,這樣走上社會我才能真正的發(fā)揮所長。源程序#include #include #include #include using namespace std; const int Maxr=100;const int Maxb=100;const int Maxbor=5;class Reader private: int tag; int no; char name10;int borbookMaxbor; public: Reader()

9、char *getname() return name; int gettag() return tag; int getno() return no; void setname(char na) strcpy(name,na); void delbook() tag=1; void addreader(int n,char *na) tag=0; no=n; strcpy(name,na); for(int i=0;iMaxbor;i+) borbooki=0; void borrowbook(int bookid) for(int i=0;iMaxbor;i+) if (borbooki=

10、0) borbooki=bookid; return; int retbook(int bookid) for(int i=0;iMaxbor;i+) if(borbooki=bookid) borbooki=0; return 1; return 0; void disp() cout setw(5) no setw(10) name借書編號:; for(int i=0;iMaxbor;i+) if(borbooki!=0) cout borbooki |; cout endl; ; class RDatabase private: int top; Reader readMaxr;publ

11、ic: RDatabase() Reader s; top=-1; fstream file(reader.txt,ios:in); while (1) file.read(char *)&s,sizeof(s); if (!file)break; top+; readtop=s; file.close(); void clear() top=-1; int addreader(int n,char *na) Reader *p=query(n); if (p=NULL) top+; readtop.addreader(n,na); return 1; return 0; Reader *qu

12、ery(int readerid) for (int i=0;i=top;i+) if (readi.getno()=readerid & readi.gettag()=0) return &readi; return NULL; void disp() for (int i=0;i=top;i+) readi.disp(); void readerdata();RDatabase() fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,s

13、izeof(readi); file.close(); ; void RDatabase:readerdata() char choice; char rname20; int readerid; Reader *r; while (choice!=0) cout nnttt讀 者 維 護nnntt 1 新 增nntt 2 更 改nntt 3 刪 除nntt 4 查 找nntt 5 顯 示nntt 6 全 刪nntt 0 退 出 choice; switch (choice) case 1: cout readerid; cout rname; addreader (readerid,rnam

14、e); break; case 2: cout readerid; r=query(readerid); if (r=NULL) cout 該讀者不存在 endl; break; cout rname; r-setname(rname); break; case 3: cout readerid; r=query(readerid); if (r=NULL) cout 該讀者不存在 delbook(); break; case 4: cout readerid; r=query(readerid); if (r=NULL) cout 該讀者不存在disp(); break; case 5: d

15、isp(); break; case 6: clear(); break; default:cout輸入錯誤,請從新輸入:;break; class Book private: int tag;int no;char name20;int onshelf; public: Book() char *getname() return name; int getno() return no; int gettag() return tag; void setname(char na) strcpy(name,na); void delbook() tag=1; void addbook(int n

16、,char *na) tag=0; no=n; strcpy(name,na); onshelf=1; int borrowbook() if (onshelf=1) onshelf=0; return 1; return 0; void retbook() onshelf=1; void disp() cout setw(6) no setw(18) name setw(10) (onshelf=1? 在架:已借) endl; ; class BDatabase private: int top; Book bookMaxb; public: BDatabase() Book b; top=

17、-1; fstream file(book.txt,ios:in); while (1) file.read(char *)&b,sizeof(b); if (!file) break; top+; booktop=b; file.close(); void clear() top=-1; int addbook(int n,char *na) Book *p=query(n); if (NULL=p) top+; booktop.addbook(n,na); return 1; return 0; Book *query(int bookid) for (int i=0;i=top;i+)

18、if (booki.getno()=bookid &booki.gettag()=0) return &booki; return NULL; void bookdata();void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp(); BDatabase() fstream file(book.txt,ios:out); for (int i=0;i=top;i+) if (booki.gettag()=0) file.write(char *)&booki,sizeof(booki); file.close()

19、; ; void BDatabase:bookdata() char choice; char bname40; int bookid; Book *b; while (choice!=0) cout nnnttt圖 書 維 護 endlendl; couttt1 新 增n tt2 更 改ntt3 刪 除ntt4 查 找ntt5 顯 示ntt6 全 刪ntt0 退 出 choice; switch (choice) case 1: cout 輸入圖書編號: bookid; cout 輸入圖書書名: bname; addbook(bookid,bname); break; case 2: cou

20、t 輸入圖書編號: bookid; b=query(bookid); if (b=NULL) cout 該圖書不存在 endl; break; cout 輸入新的書名: bname; b-setname(bname); break; case 3: cout 讀入圖書編號: bookid; b=query(bookid); if (b=NULL) cout 該圖書不存在 delbook(); break; case 4: cout 讀入圖書編號: bookid; b=query(bookid); if (b=NULL) cout 該圖書不存在disp(); break; case 5: disp(); break; case 6: clear(); break; default:cout輸入錯誤,請從新輸入:; void main() char choice; int bookid,readerid; RDatabase ReaderDB; Reader

溫馨提示

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

評論

0/150

提交評論