版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C+圖書管理系統(tǒng)大型實(shí)驗(yàn)報(bào)告 基于C+的圖書館管理系統(tǒng)實(shí)現(xiàn)方式圖書館管理系統(tǒng)為各大學(xué)校提供了方便。從設(shè)計(jì)開始采用了以數(shù)據(jù)為中心的面向?qū)ο笏枷?。為了提高對?shù)據(jù)操作的理解,提高自身的編程邏輯,采用鏈表保存所有信息,程序結(jié)束存放在文實(shí)驗(yàn)?zāi)康?具體實(shí)現(xiàn)方式1. 數(shù)據(jù)的存儲方式所有人員都有:用戶名,密碼,真實(shí)姓名,性別,年齡讀者特有:借書總數(shù),所借書的書號圖書:書號,書名,作者,出版社,館藏量,借出數(shù)量。用文有數(shù)據(jù)保存在內(nèi)存中,其類型均為 string。2. 類的關(guān)系類的關(guān)系3.功能模塊圖3.1 讀者模塊 讀者功能圖相關(guān)功能代碼:1.查看個人信息void Reader:See_Infor()Book*
2、pbook=NULL;cout<<" 用戶名: "<<Username<<endl; cout<<" 密碼: "<<Password<<endl; cout<<" 真實(shí)姓名: "<<Name<<endl; cout<&
3、lt;" 性別: "<<Sex<<endl;cout<<" 年齡: "<<Age<<endl;cout<<" 總借圖書數(shù): "<<Totle_borrow<<endl; cout<<" 所借的書為: "f
4、or(int i=0;i<Totle_borrow;+i)pbook=DB.book_by_number(borrowbooknumi); cout<<pbook->BookName<<" " cout<<endl;2.修改個人信息void Reader:Edit_Infor() Reader* reader=NULL;reader=DB.reader_by_username(Username);string username;/ 更改用戶名str
5、ing password;/ 密碼 、string name;/ 姓名string sex;/ 性別 。int age;/ 年齡int n=-1;/標(biāo)記作用cout<<" 讀者信息修改: "<<endl;cout<<" 新用戶名: "cin>>username;cout<<endl;cout<<" 新密碼: "cin&am
6、p;gt;>password;cout<<endl;cout<<" 真實(shí)姓名: "cin>>name;cout<<endl;cout<<" 性別: "cin>>sex;cout<<endl;cout<<" 年齡: "cin>>
7、age;cout<<endl;if(DB.reader_by_username(username)cout<<" 用戶名已存在."<<endl;n=0;if(sex!="男"&&sex!="女")cout<<" 性別輸入錯誤."<<endl;n=0;if(age>99&
8、amp;amp;&age<0)cout<<" 年齡輸入錯誤."<<endl;n=0;if(n=0)cout<<" 信息更改失敗."<<endl;elsereader->Username=username;reader->Password=password;reader->Name=name;reader->Sex=sex;rea
9、der->Age=age;cout<<" 恭喜您信息更改成功."<<endl; 3.查找館藏書void People:See_book()system("cls");Book* book=NULL;string booknum;cout<<endl<<endl<<endl<<endl<<endl<&am
10、p;lt;endl;cout<<" -歡迎進(jìn)入查詢圖書系統(tǒng)-"<<endl; cout<<" 請輸入所要查詢圖書的書號:" cin>>booknum;book=DB.book_by_number(booknum);if(book=NULL)cout<<" 不存在此書號."<<endl; elsecout<&a
11、mp;lt;" 此書基本信息如下:"<<endl; cout<<setw(31)<<"書號: "<<book->BookNum<<endl;cout<<setw(31)<<"書名: "<<book->BookName<&
12、;lt;endl;cout<<setw(31)<<"作者: "<<book->Auther<<endl;cout<<setw(31)<<"出版社: "<<book->Press<<endl;cout<<setw(31)<<
13、;"館藏量: "<<book->StoreNum<<endl;cout<<setw(31)<<"借出書: "<<book->BorrowNum<<endl; 3.2工作人員模塊工作人員功能模塊圖 相關(guān)功能代碼:1.查詢讀者信息void Worker:See_Reader()string username; Book* pbook;
14、cout<<" 歡迎查看讀者信息,請輸入讀者號: "cin>>username;Reader* reader=DB.reader_by_username(username);if(reader=NULL)cout<<setw(25)<<" 不存在該讀者號."<<endl; elsecout<<setw(38)<<"
15、; 讀者號: "<<reader->Username<<endl; cout<<setw(38)<<" 讀者密碼: "<<reader->Password<<endl; cout<<setw(38)<<" 讀者真實(shí)姓名: "<<r
16、eader->Name<<endl; cout<<setw(38)<<" 讀者性別: "<<reader->Sex<<endl; cout<<setw(38)<<" 讀者年齡: "<<reader->Age<<endl; cout&a
17、mp;lt;<setw(38)<<" 讀者所接書得總數(shù)及書名:"<<reader->Totle_borrow<<" "for(int i=0;i<reader->Totle_borrow;+i)pbook=DB.book_by_number(reader->borrowbooknumi);cout<<pbook->BookName
18、<<" "2.借書void Worker:Borrow_Book()system("cls");int n=0;string username;string booknum;Book* pbook=NULL;cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<<&
19、amp;quot; -歡迎使用借書系統(tǒng)-"<<endl;cout<<" 請輸入讀者號: "cin>>username;Reader* reader=DB.reader_by_username(username);if(reader=NULL)cout<<" 不存在該讀者或讀者號輸入錯誤."<<endl;return;cout<<&q
20、uot; 請輸入書號: "cin>>booknum;while(1)pbook=DB.book_by_number(booknum);if(pbook=NULL)cout<<" 對不起,該系統(tǒng)沒有這本書."<<endl;break;if(pbook->BorrowNum=pbook->StoreNum)cout<<" 該書已達(dá)借閱數(shù)上限."<&l
21、t;endl;break;for(int i=0;i<reader->Totle_borrow;i+)if(reader->borrowbooknumi=booknum)cout<<" 您已借了該書,不能重復(fù)借閱."<<endl;n=1;break;if(n=1) break;if(reader->Totle_borrow>=10)cout<<" 您的可借書已達(dá)上限."&
22、amp;lt;<endl;break;cout<<" 借閱成功."<<endl; pbook->BorrowNum+;reader->Totle_borrow+;reader->borrowbooknumreader->Totle_borrow-1=booknum; break;3.還書void Worker:Back_Book()int n=0;system("cls");string usern
23、ame;string booknum;cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<<" -歡迎進(jìn)入還書系統(tǒng)-"<<endl;cout<<" 請輸入讀者號: " cin>>username;cout&a
24、mp;lt;<" 請輸入所還書號: " cin>>booknum;Book* pbook=DB.book_by_number(booknum);Reader* reader=DB.reader_by_username(username);while(1)if(pbook=NULL)cout<<" 該系統(tǒng)沒有這本書."<<endl;break;if(reader=NULL)cout<<&quo
25、t; 讀者用戶名輸入錯誤或不存在該讀者."<<endl;break;for(int i=0;i<reader->Totle_borrow;+i)if(reader->borrowbooknumi=booknum)n=1;if(n!=1)cout<<" 該讀者沒有借過該書."<<endl;break;cout<<" 還書成功."<&l
26、t;endl;pbook->BorrowNum-;for(int i=0;i<reader->Totle_borrow;+i)if(reader->borrowbooknumi=booknum)reader->borrowbooknumi="0"int remain = reader->Totle_borrow - i - 1; for(int j = 0; j < remain; +j)reader->borrowbooknumi+j =read
27、er->borrowbooknumi+j+1;reader->Totle_borrow-;break; 4.查詢圖書信息void People:See_book()system("cls");Book* book=NULL;string booknum;cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<&
28、;lt;" -歡迎進(jìn)入查詢圖書系統(tǒng)-"<<endl;cout<<" 請輸入所要查詢圖書的書號:" cin>>booknum;book=DB.book_by_number(booknum);if(book=NULL)cout<<" 不存在此書號."<<endl; elsecout<<" 此書基本信息如下:&
29、amp;quot;<<endl; cout<<setw(31)<<"書號: "<<book->BookNum<<endl;cout<<setw(31)<<"書名: "<<book->BookName<<endl;cout<&l
30、t;setw(31)<<"作者: "<<book->Auther<<endl;cout<<setw(31)<<"出版社: "<<book->Press<<endl;cout<<setw(31)<<"館藏量: "&
31、amp;lt;<book->StoreNum<<endl; cout<<setw(31)<<"借出書: "<<book->BorrowNum<<endl; 3.3管理員功能模塊管理人員功能模塊圖 相關(guān)功能代碼:1.維護(hù)圖書信息void Manager:Add_Book()/添加圖書Book* newbook=new Book(); cout<<&
32、;quot; 請輸入新書號: "cin>>newbook->BookNum;cout<<endl;cout<<" 請輸入新書名: "cin>>newbook->BookName;cout<<endl;cout<<" 請輸入作者: "cin>>newbook->Auther
33、;cout<<endl;cout<<" 請輸入出版社: "cin>>newbook->Press;cout<<endl;cout<<" 請輸入館藏量: "cin>>newbook->StoreNum;cout<<endl;newbook->BorrowNum=0;Book* book=DB
34、.book_by_number(newbook->BookNum); if(book=NULL)cout<<" 添加成功."<<endl; DB.Add_Book(newbook);elsecout<<" 此書已存在."<<endl; void Manager:Mod_Book() string booknum;Book* book=NULL;while(1)cout<<
35、" 請輸入您要修改圖書的書號: " cin>>booknum;cout<<endl;book=DB.book_by_number(booknum);if(book=NULL)cout<<" 不存在該書號,請重新輸入"<<endl; cout<<endl;elsecout<<" 請輸入新書號: "cin>&am
36、p;gt;booknum;Book* book1=DB.book_by_number(booknum);if(book1=NULL)book->BookNum=booknum;break;elsecout<<endl;cout<<" 已存在該書號,請重新輸入"<<endl<<endl; cout<<endl;cout<<" 請輸入新書名: "c
37、in>>book->BookName;cout<<endl;cout<<" 請輸入作者: "cin>>book->Auther;cout<<endl;cout<<" 請輸入出版社: "cin>>book->Press;cout<<endl;cout<
38、;<" 請輸入館藏量: "cin>>book->StoreNum;cout<<endl;cout<<" 修改成功."<<endl;void Manager:Remove_Book()string booknum;cout<<" 請輸入刪除書的書號: "cin>>booknum;cout&
39、lt;<endl;Book* book=DB.book_by_number(booknum);if(book!=NULL)if(book->BorrowNum=0)cout<<" 成功的刪除該書."<<endl;DB.Remove_Book(booknum);elsecout<<" 有讀者未歸還該書,不能刪除."<<endl; elsecout<<&
40、quot; 不存在該書或輸入書號錯誤."<<endl; 2.維護(hù)讀者信息void Manager:Add_Reader()Reader* newreader=new Reader(); cout<<" 請輸入添加讀者的讀者號: "cin>>newreader->Username;cout<<endl;cout<<" 請輸入密碼: "cin>
41、>newreader->Password;cout<<endl;cout<<" 請輸入真實(shí)姓名: "cin>>newreader->Name;cout<<endl;cout<<" 請輸入性別: "cin>>newreader->Sex;cout<<endl;cout&
42、lt;<" 請輸入年齡: "cin>>newreader->Age;cout<<endl;newreader->Totle_borrow=0;for(int i=0;i<10;+i)newreader->borrowbooknumi="0"if(!DB.reader_by_username(newreader->Username)cout<<&quo
43、t; 添加讀者成功."<<endl;DB.Add_Reader(newreader);elsecout<<" 添加讀者失敗."<<endl; void Manager:Mod_Reader() string username;Reader* reader=NULL;while(1)cout<<" 請輸入您要修改的讀者號: "cin>>username;cout&
44、;lt;<endl;reader=DB.reader_by_username(username);if(reader=NULL)cout<<" 該讀者號不存在.請重新輸入."<<endl; cout<<endl;elsecout<<" 請輸入新讀者號: "cin>>username;Reader* reader1=DB.reader_by_username(usernam
45、e);if(reader1=NULL)reader->Username=username;break;elsecout<<endl;cout<<" 該讀者號已存在.請重新輸入."<<endl<<endl; cout<<endl;cout<<" 請輸入新密碼: "cin>>reader->Password
46、;cout<<endl;cout<<" 請輸入新姓名: "cin>>reader->Name;cout<<endl;cout<<" 請輸入性別: "cin>>reader->Sex;cout<<endl;cout<<" 請輸入年齡: "ci
47、n>>reader->Age;cout<<endl;cout<<" 修改成功."<<endl;void Manager:Remove_Reader()string username; cout<<" 請輸入需刪除的讀者號: "cin>>username;cout<<endl;Reader* reader=DB.rea
48、der_by_username(username);if(reader)cout<<" 成功的刪除該讀者."<<endl; DB.Remove_Reader(username);elsecout<<" 不存在該讀者或讀者號不存在."<<endl; 3.維護(hù)工作人員信息void Manager:Add_Worker()Worker* newworker=new Worker(); cout<&
49、lt;" 請輸入添加工作人員的用戶名: "cin>>newworker->Username;cout<<endl;cout<<" 請輸入密碼: "cin>>newworker->Password;cout<<endl;cout<<" 請輸入真實(shí)姓名: "cin>>ne
50、wworker->Name;cout<<endl;cout<<" 請輸入性別: "cin>>newworker->Sex;cout<<endl;cout<<" 請輸入年齡: "cin>>newworker->Age;cout<<endl;if(!DB.worker_by_username(
51、newworker->Username)cout<<" 添加工作人員成功."<<endl; DB.Add_Worker(newworker);elsecout<<" 用戶名已有.添加工作人員失敗."<<endl; void Manager:Mod_Worker() string username;Worker* worker=NULL;while(1)cout<<&
52、;quot; 請輸入您要修改的工作人員的用戶名: " cin>>username;cout<<endl;worker=DB.worker_by_username(username);if(worker=NULL)cout<<" 該工作人員的用戶名不存在.請重新輸入."<<endl;cout<<endl;elsecout<<" 請輸入新工作人員的用戶名: &a
53、mp;quot;cin>>username;Worker* worker1=DB.worker_by_username(username); if(worker1=NULL)worker->Username=username;break;elsecout<<endl;cout<<" 該工作人員的用戶名已存在.請重新輸入."<<endl<<endl;cout<<endl;cout&
54、amp;lt;<" 請輸入新密碼: "cin>>worker->Password;cout<<endl;cout<<" 請輸入新姓名: "cin>>worker->Name;cout<<endl;cout<<" 請輸入性別: "cin>>worker-&
55、amp;gt;Sex;cout<<endl;cout<<" 請輸入年齡: "cin>>worker->Age;cout<<endl;cout<<" 修改成功."<<endl;void Manager:Remove_Worker()string username; cout<<" 請輸入需刪除的工作人
56、員的用戶名: " cin>>username;cout<<endl;Worker* worker=DB.worker_by_username(username);if(worker)cout<<" 成功的刪除該工作人員."<<endl; DB.Remove_Worker(username);elsecout<<" 不存在該工作人員或工作人員用戶名不存在."&l
57、t;<endl;4.查看圖書信息:根據(jù)類的繼承機(jī)制,同工作人員4.設(shè)計(jì)概要本圖書館管理系統(tǒng)通過使用鏈表來存放書本與人員, 考慮到安全性, 效率性并沒有自己寫鏈表, 而是使用STL的list, 并作為DBFile的私有成員。DBFile的接口:class DBFilepublic:DBFile();/全部初始化void Initialize_Book();/ 圖書信息的初始化,即把文件中的數(shù)據(jù)存到list<Book*>books;void Initialize_Reader();/讀者的初始化void Initialize_Worker();/工作人員的
58、初始化void Initialize_Manager();/管理員的初始化Book* book_by_number(const string&)const;/通過書號來查找書Reader* reader_by_username(const string&)const;/通過用戶名查找讀者并可核對讀者的用戶名Worker* worker_by_username(const string&)const;/通過用戶名查找工作人員Manager* manager_by_username(const string&)const;/通過用戶名查找管理員void Reader_Login();/讀者登錄void Worker_Login();/工作人員登錄void Manager_Login();/管理員登錄void Allbook_infor()const;/顯示全部書的信息,并顯示是否可借void Add_Book(Book*);/添加圖書void Mod_Book(Book*);/修改圖書void Remove_Book(const string&);/刪除圖書void Add_Reader(R
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《聲和超聲》課件
- 杭州市住宅小區(qū)前期物業(yè)服務(wù)合同模板
- 工程造價(jià)專用合同條款
- 《氨基丁酸養(yǎng)生的》課件
- 2025年陜西貨運(yùn)從業(yè)資格證考試模擬試題
- 2025年博爾塔拉貨運(yùn)從業(yè)資格證考試技巧
- 2025年拉薩貨運(yùn)從業(yè)資格證模擬考試題下載
- 2025年東莞貨運(yùn)從業(yè)資格考試
- 《民事案例實(shí)例分析》課件
- 文化產(chǎn)業(yè)招投標(biāo)合同管理要點(diǎn)
- 流行性感冒健康宣教
- 理解生活滿意度的標(biāo)準(zhǔn)和評估方法
- 中醫(yī)五則診斷法在臨床中的應(yīng)用與誤區(qū)
- 《初中語文教學(xué)中的跨學(xué)科融合與創(chuàng)新實(shí)踐》
- 《金子美玲兒童詩》課件
- 甌北城市新區(qū)污水管網(wǎng)修復(fù)工程質(zhì)量評估報(bào)告(樣表)
- (人教版新目標(biāo))八年級英語上冊全冊各單元知識點(diǎn)期末總復(fù)習(xí)講解教學(xué)課件
- 無障礙醫(yī)用電梯人性化改造
- 房地產(chǎn)公司組織結(jié)構(gòu)部門職能崗位職責(zé)大全
- 蘇教版四年級上冊數(shù)學(xué)期末測試卷-及答案
- 工程地質(zhì)調(diào)查規(guī)范
評論
0/150
提交評論