版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計名稱:圖書管理系統(tǒng)1.設(shè)計內(nèi)容: 實現(xiàn)一個簡單的圖書管理,包括對新進圖示的信息錄入,按提示查詢,為學(xué)生辦理注冊會員手續(xù),實現(xiàn)簡單的借書和還書,當(dāng)然,沒有注冊會員的同學(xué)不能借圖書館里的任何書籍,以及按要求與提示對已有的圖書進行查詢和修改。2.設(shè)計目的與要求:2.1設(shè)計目的達到熟練掌握c+語言的基本知識和技能; 基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法; 能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題。2.2設(shè)計要求要求利用面向?qū)ο蟮姆椒ㄒ约癱+的編程思想來完成系統(tǒng)的設(shè)計; 要求在設(shè)計的過程中,建立清晰的類層次; 在系統(tǒng)的設(shè)計中,至少要用到面向?qū)ο蟮囊环N機制。3.系統(tǒng)分析與設(shè)
2、計3.1主要知識點 在c+中,文件定義為文件流類的一個對象,要進行文件的輸入輸出,必須先創(chuàng)建個文件流對象,并與指定的文件相關(guān)聯(lián),即打開文件,然后才能進行讀寫操作,完成后再關(guān)閉這個文件,這就是在c+中進行文件讀寫的基本過程。3.2關(guān)鍵技術(shù) 程序中定義了一個lib結(jié)構(gòu)體和一個lib1類,結(jié)構(gòu)體中定義要求的成員變量,類中定義了相應(yīng)的成員函數(shù)。具體定義如下所示: (1):lib結(jié)構(gòu)體 lib結(jié)構(gòu)體中定義了:圖書名稱(name1)、圖書編碼(num1)、圖書價格(price1)、圖書作者(write1)、學(xué)生姓名(name2)、學(xué)生學(xué)號(num2)、學(xué)生性別(sex)等數(shù)據(jù)成員。(2):lib1類 li
3、b1中定義了六個成員函數(shù),分別是:錄入函數(shù)(input()、查詢函數(shù)(search()、修改函數(shù)(change()、注冊函數(shù)(register()、借書函數(shù)(borrow()、還書函數(shù)(return()。(3):全局變量 定義三個全局變量n,m,s,分別表示新進圖書數(shù)量,現(xiàn)存圖書數(shù)量和注冊的學(xué)生數(shù)3.3基本功能要求(1)功能選擇可以用菜單來實現(xiàn)例如:請選擇: 1.錄入新進圖書信息 2.查詢新進圖書信息 3.修改指定圖書信息 4.注冊學(xué)生信息 5.辦理借書手續(xù) 6.辦理還書手續(xù) 0.退出用戶通過輸入不同的數(shù)字進入不同的菜單。次級菜單主要顯示本程序的功能,主要的功能有錄入信息、瀏覽信息、查詢和修改
4、信息,注冊信息,辦理借書手續(xù),辦理還書手續(xù)。(2)運行時給出明確的提示信息。比如,查詢學(xué)生信息,當(dāng)選擇3進入查詢功能時,會出來一個選擇界面:請選擇:1按圖書名稱查詢。2按作者姓名查詢。選擇1時,輸入圖書名稱,若圖書存在程序會輸出你所要查詢的圖書的所有信息;若沒有圖書,系統(tǒng)會自動提醒:輸入錯誤,并跳轉(zhuǎn)回次級選擇界面,選擇2時類似。4.系統(tǒng)總體設(shè)計(確定程序功能模塊) 本程序的功能結(jié)構(gòu)如圖1所示:圖書管理系統(tǒng) 還書函數(shù)借書函數(shù)注冊函數(shù)修改函數(shù)查詢函數(shù)錄入函數(shù) 基本功能:錄入新進圖書的基本信息基本功能:按提示查詢圖書信息(按圖書名稱、按作者名)基本功能:修改指定圖書的信息基本功能:為學(xué)生注冊會員記錄
5、基本功能:辦理借書手續(xù),非會員不得借閱基本功能:辦理還書手續(xù)5.源程序代碼#include#include#include using namespace std;int n;/新增圖書的數(shù)量int s;/注冊會員總?cè)藬?shù)int m;/現(xiàn)存圖書數(shù)量struct lib1 /定義圖書結(jié)構(gòu)體string name1;/圖書名稱int num1;/圖書編號double price1;/圖書價格 string write1;/作者姓名string name2;/借書人姓名string sex;/性別int num2;/學(xué)號;class lib /定義圖書類public:lib()ofstream out
6、file(lib.dat,ios:out); /建立文件outfile.close();void input();/輸入函數(shù)void search();/查詢函數(shù)void change();/修改函數(shù)void register();/注冊函數(shù)void borrow();/借書函數(shù)void return();/還書函數(shù);/*/void lib:input() /輸入函數(shù)ofstream outfile(lib.dat,ios:app);/在上面建立的文件的尾部添加數(shù)據(jù) if(!outfile)cerropen error!endl;exit(1); cout 請輸入新進圖書的信息endl;cou
7、t * endl; cout endl;coutn; m=n;lib1 *p=new lib1n;for(int i=0;in;i+)1;coutpi.num1;coutpi.price1;coutpi.write1;cout endl;1endlpi.num1endlpi.price1endlpi.write1endlendl; /向文件輸入數(shù)據(jù)outfile.close();cout * endlendl;system(pause);/*/void lib:search() /查詢函數(shù)if(m=0)cout 請先錄入圖書信息!endl;co
8、ut *endl; elselib1 *lib=new lib1n;ifstream infile(lib.dat,ios:in); if(!infile)cerropen error!endl;exit(1);for(int i=0;1libi.num1libi.price1libi.write1;infile.close();int choose;cout * endl;cout endl;while(choose)cout 請選擇:endl;cout 1.按作者名查詢:endl;cout 2.按圖書名稱查詢:endl;cout 0.退出。endlendl;coutch
9、oose;if(choose=0&choose=2)switch(choose)case(1): coutname; int flag=1; for(int i=0;in;i+) if(name=libi.write1) cout 圖書名稱: 1endl; cout 圖書編號: libi.num1endl; cout 圖書價格: libi.price1endl; cout 作者名: libi.write1endlendl; cout endl; flag=0; if(flag) cout 對不起,沒有您要找的圖書!endl;break;case(2):coutname;int
10、 flag=1;for(int i=0;in;i+)if(name=1)cout 圖書名稱: 1endl;cout 圖書編號: libi.num1endl;cout 圖書價格: libi.price1endl;cout 作者名: libi.write1endlendl;cout endl; flag=0;if(flag) cout 對不起,沒有您要找的圖書!endl;break;case 0:break;elsecout 輸入錯誤!重新選擇!endlendl;cout endlendl;system(pause);/*/void lib:change() /
11、修改函數(shù)if(m=0)cout 請先錄入圖書信息!endl;cout *endl;elseifstream infile(lib.dat,ios:in);lib1 *p=new lib1n; if(!infile)cerropen error!endl;exit(1);for(int i=0;1pi.num1pi.price1pi.write1;infile.close();int c,flag=1;string name,t;cout * endl; cout endlendl;while(c) cout 請輸入:endl; cout 1.按圖書名稱修改endl; cout
12、2.按作者名修改endl; cout 0.退出endl; coutc; if(c=0&c=2) switch(c) case(1): coutt; for(int i=0;in;i+) if(t=1) flag=0; 1; coutpi.num1; coutpi.price1; coutpi.write1; cout 修改成功!endl; cout endlendl; ofstream outfile(lib.dat,ios:out); for(i=0;in;i+) 1endlpi.num1endlpi.price1endl pi
13、.write1endlendl; outfile.close(); if(flag) cout 輸入錯誤,請重新輸入!endl; break; break; case(2): coutname; for (int i=0;in;i+) if(name=pi.write1) flag=1; 1; coutpi.num1; coutpi.price1; coutpi.write1; cout 修改成功!endl; cout endl; ofstream outfile(lib.dat,ios:out); for(i=0;in;i+) 1endlpi
14、.num1endlpi.price1endl pi.write1endlendl; outfile.close(); if(flag) cout 對不起,沒有該作者的書籍!endlendl; break; case(0): break; cout endlendl; system(pause);/*/void lib:register() /注冊函數(shù)ofstream outfile(lib.dat,ios:app); /在上面建立的文件的尾部添加數(shù)據(jù) if(!outfile)cerropen error!endl;exit(1);lib1 *stud=new lib1n; cout 歡迎注冊e
15、ndl; cout * endl; cout endl; couts; for (int i=0;is;i+) 2; coutstudi.num2; coutstudi.sex; cout 會員注冊成功! endl; cout endlendl; 2endlstudi.num2endlstudi.sexendl; /向文件輸入數(shù)據(jù) outfile.close();system(pause);/*/void lib:borrow() /借書函數(shù)if(m=0)cout 對不起,圖書已全部借出!endl;elseifstream infi
16、le(lib.dat,ios:in);/打開文件 if(!infile)cerropen error!endl;exit(1);lib1 *stud=new lib1n;for(int i=0;2studi.num2studi.sex;/輸出文件infile.close();cout 歡迎同學(xué)們前來借書endl;cout * endl; cout endlendl;for(i=0;in;i+) m-;string name,t; coutname;if(name=
17、2)coutt;if(t=1)cout 借閱手續(xù)已完成,請妥善保管書籍,按時歸還,謝謝!endl;elsecout 對不起,沒有您要借閱的書籍!endl;break;elsecout 對不起,您還不是注冊的會員,無法辦理借書手續(xù)!endl;break;cout endlendl;system(pause);void lib:return() /還書函數(shù)ifstream infile(lib.dat,ios:in); /打開文件 if(!infile) cerropen error!endl;exit(1);lib1 *stud=new lib1n;for(int i=0;i
18、2studi.num2studi.sex; /輸出 infile.close();cout 歡迎同學(xué)們前來還書endl;cout * endl; cout endl;string name,t;for(i=0;in+1;i+)coutname;if(name=2)coutt;if(t=1)cout 還書手續(xù)已辦成功,謝謝!endl; break;else cout 圖書名稱輸入錯誤,請重新輸入!endl;elsecout 借閱人姓名輸入錯誤,請重
19、新輸入!endl; cout endlendl;system(pause);/*/void tuichu() cout endl;cout * *endl;cout 謝謝使用,再見!endl;cout * *endl; cout endl;void menu()coutendlendl; /友好界面cout endl;cout * *endl;cout 歡迎進入圖書管理系統(tǒng) endl;cout * *endl;cout endl; coutendl;cout 請選擇: endl;cout 1.錄入新進圖書信息 endl;cout 2.查詢新進圖書信息 endl;cout 3.修改指定圖書信息
20、endl;cout 4.注冊學(xué)生信息 endl;cout 5.辦理借書手續(xù) endl;cout 6.辦理還書手續(xù) endl;cout 0.退出圖書管理系統(tǒng) endl; /*/int main() lib a; int c; coutendl; while(1)menu(); coutc; cout=0&c=6) switch(c) case(1): system(cls); a.input(); break; case(2): system(cls); a.search(); break; case(3): system(cls); a.change(); break; case(4): system(cls); a.register(); break; case(5): system(cls); a.borrow(); break; case(6):system(cls); a.return(); break; case(0): tuichu(); exit(0); elsec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆貴州省六盤水市第二十三中學(xué)高三1月教學(xué)質(zhì)量監(jiān)測數(shù)學(xué)試題
- 參比制劑開發(fā)合同
- 部分股權(quán)轉(zhuǎn)讓合同范本
- 賓館租賃合同簡單模板
- 陳先云部編本培訓(xùn)
- 箴龍2024年下學(xué)期九語期中質(zhì)量檢測卷
- 內(nèi)蒙古自治區(qū)烏蘭察布市初中聯(lián)盟校2024-2025學(xué)年上學(xué)期八年級數(shù)學(xué)期中考試卷(含答案)
- 湖北省部分名校2024-2025學(xué)年高二上學(xué)期期中聯(lián)考語文試題(含答案)
- 廣東省汕尾市海豐縣附城中學(xué)2024-2025學(xué)年八年級上學(xué)期11月期中語文試題(含答案)
- 糖尿病偏身舞蹈癥
- 二進制與十進制的互換課件
- 干細胞精品課件
- 介紹長沙課件
- 點直線與圓的位置關(guān)系說課稿 完整版課件
- 北京版語文一下《門牙掉了》word教案
- 工程圖學(xué)基礎(chǔ)全書課件完整版ppt全套教學(xué)教程最全電子教案電子講義(最新)
- 《Python少兒編程》PPT課件(共11章)第一章 走進 Python 編程世界
- s7-200PLC十字路口交通燈控制
- 礦山天井施工方案通用版
- GB∕T 3190-2020 變形鋁及鋁合金化學(xué)成分
- 五年級上冊數(shù)學(xué)課件 - 平行四邊形的面積 人教版(共25張PPT)
評論
0/150
提交評論