![(精品論文)c++課程設計_圖書管理系統(tǒng)_第1頁](http://file.renrendoc.com/FileRoot1/2019-7/14/a2235e88-1234-49d1-84ab-796a1e5bab7c/a2235e88-1234-49d1-84ab-796a1e5bab7c1.gif)
![(精品論文)c++課程設計_圖書管理系統(tǒng)_第2頁](http://file.renrendoc.com/FileRoot1/2019-7/14/a2235e88-1234-49d1-84ab-796a1e5bab7c/a2235e88-1234-49d1-84ab-796a1e5bab7c2.gif)
![(精品論文)c++課程設計_圖書管理系統(tǒng)_第3頁](http://file.renrendoc.com/FileRoot1/2019-7/14/a2235e88-1234-49d1-84ab-796a1e5bab7c/a2235e88-1234-49d1-84ab-796a1e5bab7c3.gif)
![(精品論文)c++課程設計_圖書管理系統(tǒng)_第4頁](http://file.renrendoc.com/FileRoot1/2019-7/14/a2235e88-1234-49d1-84ab-796a1e5bab7c/a2235e88-1234-49d1-84ab-796a1e5bab7c4.gif)
![(精品論文)c++課程設計_圖書管理系統(tǒng)_第5頁](http://file.renrendoc.com/FileRoot1/2019-7/14/a2235e88-1234-49d1-84ab-796a1e5bab7c/a2235e88-1234-49d1-84ab-796a1e5bab7c5.gif)
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
#include #include #include #include /輸入/輸出文件流類 using namespace std; const int Maxr=100;/最多的讀者 const int Maxb=100;/最多的圖書 const int Maxbor=5;/每位讀者最多借五本書 /讀者類,實現(xiàn)對讀者的信息的描述 class Reader private: int tag; /刪除標記 1:已刪 0:未刪 int no; /讀者編號 char name10; /讀者姓名 int borbookMaxbor;/所借圖書 public: Reader() char *getname() return name; /獲取姓名 int gettag() return tag; /獲取刪除標記 int getno() return no; /獲取讀者編號 void setname(char na) /設置姓名 strcpy(name,na); void delbook() tag=1; /設置刪除標記 1:已刪 0:未刪 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=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; ; /讀者類庫,實現(xiàn)建立讀者的個人資料 class RDatabase private: int top; /讀者記錄指針 Reader readMaxr;/讀者記錄 public: RDatabase() /構(gòu)造函數(shù),將reader.txt讀到read中 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(); /關閉 reader.txt 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 *query(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() /析構(gòu)函數(shù),將read寫到reader.txt文件中 fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,sizeof(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,rname); 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: disp(); break; case 6: clear(); break; default:cout輸入錯誤,請從新輸入:;break; /圖書類,實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等 class Book private: int tag;/刪除標記 1:已刪 0:未刪 int no;/圖書編號 char name20;/書名 int onshelf;/是否再架 1:再架 2:已借 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,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; ; /圖書庫類,實現(xiàn)對圖書的維護,查找,刪除等 class BDatabase private: int top; /圖書記錄指針 Book bookMaxb; /圖書記錄 public: BDatabase()/構(gòu)造函數(shù),將book.txt讀到book中 Book b; top=-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+) 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()/析構(gòu)函數(shù),將book寫到book.txt文件中 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(); ; 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 輸入圖書編號: 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輸入錯誤,請從新輸入:; /main() 函數(shù)的實現(xiàn),程序的主界面的引導 void main() char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!=0) cout endlendlttt 圖 書 管 理 系 統(tǒng)nnn; cout ttt1 借 書nnttt2 還 書 nnttt3 圖 書 維護nnttt4 讀 者 維 護nnttt0 離 開 choice; switch (choice) case 1: cout readerid; cout bookid; r=ReaderDB.query(readerid);/按編號查找 if (NULL=r) cout 不存在該讀者,不能借書 endl; break; b=BookDB.query(bookid); if (b=NULL) cout 不存在該圖書,不能借書borrowbook()=0) cout 該圖書已借出,不能借書borrowbook(b-getno(); break; case 2: coutreaderid; cout bookid; r
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年PA-6尼龍原料項目投資價值分析報告
- 2025年美爾中胃炎干糖漿項目可行性研究報告
- 2025年注射用核糖核酸項目可行性研究報告
- 2025至2030年煮沸消毒設備項目投資價值分析報告
- 2025至2030年折疊式托盤項目投資價值分析報告
- 2025至2030年冷柜溫控器項目投資價值分析報告
- 2025年香辣臘雞腿項目可行性研究報告
- 2025年補鈣膠囊項目可行性研究報告
- 2025年縫紉設備項目可行性研究報告
- 2025至2030年輕便型自行車項目投資價值分析報告
- 2023年北京市高考作文評分標準及優(yōu)秀、滿分作文
- 2023年大唐尿素投標文件
- GB/T 6682-2008分析實驗室用水規(guī)格和試驗方法
- 《鋼鐵是怎樣煉成的》名著閱讀(精講課件) 初中語文名著導讀
- 縮窄性心包炎課件
- 《工程電磁場》配套教學課件
- 遼寧省錦州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細及行政區(qū)劃代碼
- 職位管理手冊
- IPQC首檢巡檢操作培訓
- 東南大學 固體物理課件
- 行政人事助理崗位月度KPI績效考核表
評論
0/150
提交評論