




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
面向對象程序設計(C++語言)課程設計設計說明書圖書管理系統(tǒng)的設計與實現(xiàn)起止日期:年月日至年月日學生姓名班級學號成績指導教師(簽字)計算機與通信學院年月日圖書管理系統(tǒng)一.需求分析圖書館是目前生活中除了網(wǎng)絡外的另一個獲取知識的重要場所。利用圖書管理系統(tǒng)對圖書記錄進行統(tǒng)一管理,包括新增圖書記錄,更改圖書記錄,刪除圖書記錄等功能,實現(xiàn)圖書管理工作的系統(tǒng)化,規(guī)范化和自動化,為圖書管理提供便利。同時是學習完《面向對象程序設計》課程后進行的一次全面的綜合練習。有助于加深對面向對象程序設計中基礎理論和基本知識的理解,培養(yǎng)了實踐能力,促進理論與實踐的結合。二.設計要求:1.圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。試設計一圖書信息管理系統(tǒng),使之能提供以下功能:2.系統(tǒng)以菜單方式工作3.圖書信息錄入功能(圖書信息用文件保存)--輸入4.圖書信息瀏覽功能--輸出5.查詢和排序功能:(至少一種查詢方式)--算法6.按書名查詢7.按作者名查詢8.圖書信息的刪除與修改(可選項)三.概要設計1、類的設計①、Book類的設計(內部函數(shù)流程圖):#defineStrNum20#defineType20#include<iostream>#include<iomanip>#include<string>#include<fstream>//輸入/輸出文件流類usingnamespacestd;constintMaxb=100;//最多可存儲的圖書classPeople{public: virtualvoidcard(){cout<<"cardpeople"<<endl;}}; classStudent:publicPeople { public: virtualvoidcard(){cout<<"cardstudent"<<endl;} };classBook{private:intlab;//刪除標記 intnum;//圖書編號 intadd;//增加標記 charnumber[StrNum];//編號 charbookname[StrNum];//書名 charbookkind[Type];//圖書類型public: Book(){} chargetkind()//獲取圖書類型 { returnbookkind[Type]; } chargetname() //獲取書名 { returnbookname[StrNum]; } intgetnum()//獲取圖書編號 { returnnum; } intgetlab()//獲取刪除標記 { returnlab; }voidsetname(charna[])//設置書名 { strcpy(bookname,na); } voidsetkind(charkin[])//設置類型 { strcpy(bookkind,kin); } voiddelbook()//刪除圖書 { lab=1; } voidaddbook(intn,char*na,char*kin)//增加圖書 { lab=0; num=n; strcpy(bookname,na); strcpy(bookkind,kin); } voiddisp()//輸出圖書 { cout.flags(ios::left);//設置對齊的標志位為左 cout<<setw(15)<<num<<setw(20)<<bookname<<setw(15)<<bookkind<<endl; } };classBDatabase{private:inttop; Bookbook[Maxb];//圖書記錄public: BDatabase()//構造函數(shù),將book.txt讀到book[]中 { Bookb; top=-1; fstreamfile("book.txt",ios::in); while(1) { file.read((char*)&b,sizeof(b)); if(!file)break; top++; book[top]=b; } file.close(); } voidclear()//全刪 { top=-1; }intaddbook(intn,char*na,char*kin)//增加圖書 { Book*p=query(n); if(NULL==p) { top++; book[top].addbook(n,na,kin); return1; } return0; } Book*query(intbookid)//查找圖書 { for(inti=0;i<=top;i++) if(book[i].getnum()==bookid&&book[i].getlab()==0) { return&book[i]; } returnNULL; } voiddisp()//圖書庫 { for(inti=0;i<=top;i++) if(book[i].getlab()==0) book[i].disp(); } ~BDatabase()//析構函數(shù),將book[]寫到book.txt文件中,實現(xiàn)文本的寫入 { fstreamfile("book.txt",ios::out);for(inti=0;i<=top;i++) if(book[i].getlab()==0) file.write((char*)&book[i],sizeof(book[i])); file.close(); }};voidmain(){BDatabaseBookDB;charchoice; charbname[40]; charbkind[40]; charnewType[20]; intbookid; Book*b; while(choice!='0') { cout<<"\t******************************************************************\n"; cout<<"\n\n"; cout<<"\t\t\t圖書管理系統(tǒng)\n\n"; cout<<"\t\t\t1新增圖書記錄\n";cout<<"\t\t\t2更改圖書記錄\n";cout<<"\t\t\t3刪除圖書記錄\n"; cout<<"\t\t\t4查找圖書記錄\n"; cout<<"\t\t\t5顯示圖書記錄\n"; cout<<"\t\t\t6清空全部記錄(慎用)\n"; cout<<"\t\t\t0退出系統(tǒng)\n"; cout<<"\t\t\t7人員\n"; cout<<"\n\n"; cout<<"\t******************************************************************\n";cout<<"請選擇(1,2,3,4,5,6,0):"; cin>>choice; switch(choice) {case'1': cout<<"輸入圖書編號:"<<endl; cin>>bookid; cout<<"輸入圖書類型:"<<endl; cin>>newType;cout<<"輸入圖書書名:"<<endl; cin>>bname; BookDB.addbook(bookid,bname,newType); break;case'2': cout<<"輸入圖書編號:"<<endl; cin>>bookid; b=BookDB.query(bookid); if(b==NULL) { cout<<"該圖書不存在"<<endl; break; } cout<<"輸入新的書名:"<<endl; cin>>bname; b->setname(bname); cout<<"輸入新的類型:"<<endl; cin>>bkind; b->setkind(bkind); break;case'3': cout<<"讀入圖書編號:"<<endl; cin>>bookid; b=BookDB.query(bookid); if(b==NULL) { cout<<"該圖書不存在"<<endl; break; } chartg1; cout<<"確定要刪除此記錄嗎?(Y/N)"<<endl; cin>>tg1; if(tg1!='n'&&tg1!='N') { b->delbook(); cout<<"已成功刪除該書記錄!"<<endl; break; } case'4': cout<<"讀入圖書編號:"<<endl; cin>>bookid; b=BookDB.query(bookid); if(b==NULL) { cout<<"該圖書不存在"<<endl; break; } cout<<"圖書編號圖書名稱圖書類型\n"; b->disp(); break; case'5': cout<<"圖書編號圖書名稱圖書類型\n"; b=BookDB.query(bookid); b->disp(); break; case'6': chartg2; cout<<"確定要清空所有記錄嗎?(Y/N)"<<endl; cin>>tg2; if(tg2!='n'&&tg2!='N') { BookDB.clear(); cout<<"已成功清空記錄!"<<endl; break; } case'0': break; default:cout<<"輸入錯誤,請從新輸入(數(shù)字為0~6):"; case'7': Studentstudent; People*ppeople=&student; People&ref=student; ppeople->card(); ref.card(); break; } }}五.用戶使用說明本系統(tǒng)實現(xiàn)了圖書管理系統(tǒng)的典型功能,包括查詢所有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2《拉拉手交朋友》(第2課時)(教學設計)2024-2025學年統(tǒng)編版道德與法治一年級上冊
- 2025年度廚師培訓學校課程開發(fā)合同
- 2025年特色眼子針項目投資可行性研究分析報告
- 《過秦論》教學設計 2024-2025學年統(tǒng)編版高中語文選擇性必修中冊
- 中國即時通訊行業(yè)市場全景監(jiān)測及投資前景展望報告
- 中國黑板行業(yè)發(fā)展趨勢預測及投資戰(zhàn)略研究報告
- 中國3G視頻通話市場調查研究及行業(yè)投資潛力預測報告
- 2025年度鐵路貨運代理服務合同
- 2025年度大型設備吊裝運輸服務合同書范本
- 2025年度媒體數(shù)字資產(chǎn)管理與采購合同范本
- 2024年高考作文素材積累之6個議論文人物素材及運用示例
- 腎小管壞死中的線粒體功能障礙
- 2023年設備檢修標準化作業(yè)規(guī)范
- 光伏電站除草服務(合同)范本【詳盡多條款】
- 2023年考核銀行安全保衛(wèi)人員真題與答案
- 儲能全系統(tǒng)解決方案及產(chǎn)品手冊
- (高清版)DZT 0309-2017 地質環(huán)境監(jiān)測標志
- 人員轉移安置實施方案(公司重組)
- 病歷書寫相關法律法規(guī)
- 老舊小區(qū)加裝電梯方案
- 老年人誤吸與預防-護理團標
評論
0/150
提交評論