版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟪绦蛟O(shè)計(jì)(C++語(yǔ)言)課程設(shè)計(jì)設(shè)計(jì)說(shuō)明書(shū)圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)起止日期:年月日至年月日學(xué)生姓名班級(jí)學(xué)號(hào)成績(jī)指導(dǎo)教師(簽字)計(jì)算機(jī)與通信學(xué)院年月日?qǐng)D書(shū)管理系統(tǒng)一.需求分析圖書(shū)館是目前生活中除了網(wǎng)絡(luò)外的另一個(gè)獲取知識(shí)的重要場(chǎng)所。利用圖書(shū)管理系統(tǒng)對(duì)圖書(shū)記錄進(jìn)行統(tǒng)一管理,包括新增圖書(shū)記錄,更改圖書(shū)記錄,刪除圖書(shū)記錄等功能,實(shí)現(xiàn)圖書(shū)管理工作的系統(tǒng)化,規(guī)范化和自動(dòng)化,為圖書(shū)管理提供便利。同時(shí)是學(xué)習(xí)完《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程后進(jìn)行的一次全面的綜合練習(xí)。有助于加深對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)中基礎(chǔ)理論和基本知識(shí)的理解,培養(yǎng)了實(shí)踐能力,促進(jìn)理論與實(shí)踐的結(jié)合。二.設(shè)計(jì)要求:1.圖書(shū)信息包括:登錄號(hào)、書(shū)名、作者名、分類(lèi)號(hào)、出版單位、出版時(shí)間、價(jià)格等。試設(shè)計(jì)一圖書(shū)信息管理系統(tǒng),使之能提供以下功能:2.系統(tǒng)以菜單方式工作3.圖書(shū)信息錄入功能(圖書(shū)信息用文件保存)--輸入4.圖書(shū)信息瀏覽功能--輸出5.查詢(xún)和排序功能:(至少一種查詢(xún)方式)--算法6.按書(shū)名查詢(xún)7.按作者名查詢(xún)8.圖書(shū)信息的刪除與修改(可選項(xiàng))三.概要設(shè)計(jì)1、類(lèi)的設(shè)計(jì)①、Book類(lèi)的設(shè)計(jì)(內(nèi)部函數(shù)流程圖):#defineStrNum20#defineType20#include<iostream>#include<iomanip>#include<string>#include<fstream>//輸入/輸出文件流類(lèi)usingnamespacestd;constintMaxb=100;//最多可存儲(chǔ)的圖書(shū)classPeople{public: virtualvoidcard(){cout<<"cardpeople"<<endl;}}; classStudent:publicPeople { public: virtualvoidcard(){cout<<"cardstudent"<<endl;} };classBook{private:intlab;//刪除標(biāo)記 intnum;//圖書(shū)編號(hào) intadd;//增加標(biāo)記 charnumber[StrNum];//編號(hào) charbookname[StrNum];//書(shū)名 charbookkind[Type];//圖書(shū)類(lèi)型public: Book(){} chargetkind()//獲取圖書(shū)類(lèi)型 { returnbookkind[Type]; } chargetname() //獲取書(shū)名 { returnbookname[StrNum]; } intgetnum()//獲取圖書(shū)編號(hào) { returnnum; } intgetlab()//獲取刪除標(biāo)記 { returnlab; }voidsetname(charna[])//設(shè)置書(shū)名 { strcpy(bookname,na); } voidsetkind(charkin[])//設(shè)置類(lèi)型 { strcpy(bookkind,kin); } voiddelbook()//刪除圖書(shū) { lab=1; } voidaddbook(intn,char*na,char*kin)//增加圖書(shū) { lab=0; num=n; strcpy(bookname,na); strcpy(bookkind,kin); } voiddisp()//輸出圖書(shū) { cout.flags(ios::left);//設(shè)置對(duì)齊的標(biāo)志位為左 cout<<setw(15)<<num<<setw(20)<<bookname<<setw(15)<<bookkind<<endl; } };classBDatabase{private:inttop; Bookbook[Maxb];//圖書(shū)記錄public: BDatabase()//構(gòu)造函數(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)//增加圖書(shū) { Book*p=query(n); if(NULL==p) { top++; book[top].addbook(n,na,kin); return1; } return0; } Book*query(intbookid)//查找圖書(shū) { for(inti=0;i<=top;i++) if(book[i].getnum()==bookid&&book[i].getlab()==0) { return&book[i]; } returnNULL; } voiddisp()//圖書(shū)庫(kù) { for(inti=0;i<=top;i++) if(book[i].getlab()==0) book[i].disp(); } ~BDatabase()//析構(gòu)函數(shù),將book[]寫(xiě)到book.txt文件中,實(shí)現(xiàn)文本的寫(xiě)入 { 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圖書(shū)管理系統(tǒng)\n\n"; cout<<"\t\t\t1新增圖書(shū)記錄\n";cout<<"\t\t\t2更改圖書(shū)記錄\n";cout<<"\t\t\t3刪除圖書(shū)記錄\n"; cout<<"\t\t\t4查找圖書(shū)記錄\n"; cout<<"\t\t\t5顯示圖書(shū)記錄\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<<"請(qǐng)選擇(1,2,3,4,5,6,0):"; cin>>choice; switch(choice) {case'1': cout<<"輸入圖書(shū)編號(hào):"<<endl; cin>>bookid; cout<<"輸入圖書(shū)類(lèi)型:"<<endl; cin>>newType;cout<<"輸入圖書(shū)書(shū)名:"<<endl; cin>>bname; BookDB.addbook(bookid,bname,newType); break;case'2': cout<<"輸入圖書(shū)編號(hào):"<<endl; cin>>bookid; b=BookDB.query(bookid); if(b==NULL) { cout<<"該圖書(shū)不存在"<<endl; break; } cout<<"輸入新的書(shū)名:"<<endl; cin>>bname; b->setname(bname); cout<<"輸入新的類(lèi)型:"<<endl; cin>>bkind; b->setkind(bkind); break;case'3': cout<<"讀入圖書(shū)編號(hào):"<<endl; cin>>bookid; b=BookDB.query(bookid); if(b==NULL) { cout<<"該圖書(shū)不存在"<<endl; break; } chartg1; cout<<"確定要?jiǎng)h除此記錄嗎?(Y/N)"<<endl; cin>>tg1; if(tg1!='n'&&tg1!='N') { b->delbook(); cout<<"已成功刪除該書(shū)記錄!"<<endl; break; } case'4': cout<<"讀入圖書(shū)編號(hào):"<<endl; cin>>bookid; b=BookDB.query(bookid); if(b==NULL) { cout<<"該圖書(shū)不存在"<<endl; break; } cout<<"圖書(shū)編號(hào)圖書(shū)名稱(chēng)圖書(shū)類(lèi)型\n"; b->disp(); break; case'5': cout<<"圖書(shū)編號(hào)圖書(shū)名稱(chēng)圖書(shū)類(lèi)型\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<<"輸入錯(cuò)誤,請(qǐng)從新輸入(數(shù)字為0~6):"; case'7': Studentstudent; People*ppeople=&student; People&ref=student; ppeople->card(); ref.card(); break; } }}五.用戶(hù)使用說(shuō)明本系統(tǒng)實(shí)現(xiàn)了圖書(shū)管理系統(tǒng)的典型功能,包括查詢(xún)所有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年重型機(jī)械焊接安裝服務(wù)協(xié)議3篇
- 2025年度二手房交易首付分期及風(fēng)險(xiǎn)控制協(xié)議4篇
- 2025年度防火門(mén)檢測(cè)維修服務(wù)合同4篇
- 2025版協(xié)議離婚實(shí)操教程與全程輔導(dǎo)合同3篇
- 2025年個(gè)人房產(chǎn)測(cè)繪與房地產(chǎn)市場(chǎng)調(diào)研合同4篇
- 2025版臨時(shí)演出場(chǎng)地租賃協(xié)議書(shū)3篇
- 2025年度綠色環(huán)保項(xiàng)目臨時(shí)工勞動(dòng)合同范本8篇
- 個(gè)人家政服務(wù)合同2024年度專(zhuān)用3篇
- 2025年度智慧城市基礎(chǔ)設(shè)施場(chǎng)外工程承包合同4篇
- 2025年度物業(yè)設(shè)施設(shè)備智能化升級(jí)合同3篇
- 2024-2025學(xué)年山東省聊城市高一上學(xué)期期末數(shù)學(xué)教學(xué)質(zhì)量檢測(cè)試題(附解析)
- 西方史學(xué)史課件3教學(xué)
- 2024年中國(guó)醫(yī)藥研發(fā)藍(lán)皮書(shū)
- 廣東省佛山市 2023-2024學(xué)年五年級(jí)(上)期末數(shù)學(xué)試卷
- 臺(tái)兒莊介紹課件
- 疥瘡病人的護(hù)理
- 人工智能算法與實(shí)踐-第16章 LSTM神經(jīng)網(wǎng)絡(luò)
- 17個(gè)崗位安全操作規(guī)程手冊(cè)
- 2025年山東省濟(jì)南市第一中學(xué)高三下學(xué)期期末統(tǒng)一考試物理試題含解析
- 中學(xué)安全辦2024-2025學(xué)年工作計(jì)劃
- 網(wǎng)絡(luò)安全保障服務(wù)方案(網(wǎng)絡(luò)安全運(yùn)維、重保服務(wù))
評(píng)論
0/150
提交評(píng)論