版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、c+圖書管理系統(tǒng)實驗報告和源代碼綜合實踐報告 課程名稱: 程序設(shè)計綜合實訓 設(shè)計題目: 圖書管理系統(tǒng) 姓 名: 學 號: 專業(yè)班級: 指導老師: 完成日期:-1-綜合實踐報告 1 設(shè)計任務(wù)1.1 設(shè)計目的運用所學知識,完成圖書館管理系統(tǒng),通過實踐加強對所學知識的理解和鞏固1.2設(shè)計 books /虛基類-2-綜合實踐報告protected:books_node *broot;public:books();/構(gòu)造函數(shù)savebooks();/保存修改的/管理員類 protected:readers_node *rroot;public:manager(readers_node*);saverea
2、ders();add_book();/添加圖書信息 delet_book();/刪除圖書 search_reader();/查找讀者信息 add_reader();/添加讀者 delet_reader();/刪除讀者 print_readers();/輸出所有讀者;class reader:public books/讀者類private:readers_node* personnel;/存放讀者自身信息public: ;reader(readers_node*); add_book();/還書 reader_borrow(); delet_book(); reader_return();/借書
3、 print_me();/查看自己借書情況 save_readers(readers_node*);2.2程序流程圖 -3-綜合實踐報告-4- 綜合實踐報告3軟件運行或者測試結(jié)果(1)管理員身份登錄: -5-綜合實踐報告 (2)讀者身份登錄:-6-綜合實踐報告 -7-綜合實踐報告 -8-綜合實踐報告4 軟件設(shè)計過程中遇到的問題以及解決辦法由于編寫前期做了大量的設(shè)計工作,在編寫過程中基本沒有遇到難解決的問題提,倒是在設(shè)計類時有些茫然,經(jīng)過反復(fù)斟酌還是做了一些取舍,比如把讀取讀者文件放在了類的外面等。5 總結(jié)通過本次課程設(shè)計學到了很多東西,對于c+對象的含義有了進一步的認識,從而對類的封裝和設(shè)計有
4、了一種新的認識,不只是停留在表面,為以后的學習積累了經(jīng)驗,設(shè)計不比編寫容易,類設(shè)計好是整個程序?qū)懞玫那疤?,只有一個好的規(guī)劃才能寫出好的程序。不過也通過本次發(fā)現(xiàn)了自己的不足之處??偸牵罕敬握n程設(shè)計受益匪淺,動手能力大大增強;附錄(程序源代碼)#include<iostream.h>#include<fstream.h>#include<string.h>#include<stdio.h>#include<conio.h>#define max 3typede
5、f struct Bookschar book_name15;int total_num;int borrow_num;char book_num15;Books *next;books_node;typedef struct Readers char reader_name15; char reader_no15; int reader_borrow_num; struct Reader_borrow_books char borrow_books_name15; char borrow_books_no15; reader_borrow_bookmax;Readers *next;read
6、ers_node;class books protected: books_node *broot;public:books();-9-綜合實踐報告 savebooks(); search_book(); print_books(); virtual add_book()=0; virtual delet_book()=0;class manager:public books protected:readers_node *rroot;public: manager(readers_node*); savereaders(); add_book(); delet_book(); search_
7、reader(); add_reader(); delet_reader();print_readers();class reader:public booksprivate:readers_node* personnel; public:reader(readers_node*); add_book(); reader_borrow(); delet_book(); reader_return(); print_me();save_readers(readers_node*); ;books:books() books_node *r; broot=new books_node; r=new
8、 books_node; r->next=NULL; broot=r; ifstream inFile; inFile.open("c:books.dat",ios:binary); if(inFile.is_open()=-1)cout<<"n("c:Readers.dat",ios:binary); while(L) outFile.write(char*)L,sizeof(readers_node); L=L->next;outFile.clos
9、e();manager:add_reader()readers_node *L;L=new readers_node;L=rroot;int sign=0; while(1)readers_node *r;r=new readers_node;r->next=NULL; cout<<"輸入姓名:"cin>>r->reader_name; cout<<"輸入讀者的編號:"cin>>r-&
10、amp;gt;reader_no; r->reader_borrow_num=0; r->next=L->next;L->next=r;cout<<"add more?(n終止,其它鍵繼續(xù))" char sign;cin>>sign;if(sign=n|sign=N)break;root=L;savereaders();manager:delet_reader()-14-綜合實踐報告char deleted15;cout<&l
11、t;"輸入要刪除讀者的名字:"cin>>deleted;readers_node node,*L;node=new readers_node;L=new readers_node;node=rroot;while(node->next)if(strcmp(deleted,node->next->reader_name)=0)break; node=node->next;if(node->next=NULL)cout<<&quo
12、t;sorry!There is no the reader!"<<endl;elsenode->next=node->next->next; savereaders();manager:search_reader()readers_node *r;r=new readers_node;r=rroot->next;char reader15;cout<<"輸入要查找讀者的姓名:"cin>>reader;
13、while(r)if(strcmp(reader,r->reader_name)=0)cout<<"姓名:"<<r->reader_name<<" 編號:"<<r->reader_no<<" 數(shù):"<<r->reader_borrow_num<&
14、lt;endl;for(int i=0;i<r->reader_borrow_num;i+)cout<<"書名:"<<r->reader_borrow_booki.borrow_books_name<<" 的編號:"<<r->reader_borrow_booki.borrow_books_no;break;-15- 借書總"<
15、;<"書綜合實踐報告 else r=r->next; if(!r)cout<<"沒有此人"<<endl;manager:print_readers() readers_node printL; printL=new readers_node; printL=rroot->next; while(printL) cout<<"姓名 編號 借書總數(shù)"<<en
16、dl;cout<<printL->reader_name<<" "<<printL->reader_no<<" "<<printL->reader_borrow_num<<endl;for(int i=0;i<printL->reader_borrow_num;i+)cout<
17、;<"書名:"<<printL->reader_borrow_booki.borrow_books_name<<" "<<"書的編號:"<<printL->reader_borrow_booki.borrow_books_no; printL=printL->next; delete printL;reader:reade
18、r(readers_node*node) (personnel)=new readers_node; personnel=node;reader:add_book() books_node*node; node=new books_node; node=broot->next; char returned15; cout<<"輸入要還書的名子:" cin>>returned;for(int i=0;i=personnel->reader_borrow_num;i+)if(st
19、rcmp(returned,personnel->reader_borrow_booki.borrow_books_name)=0)break; if(i=personnel->reader_borrow_num+1) -16-綜合實踐報告printf("不好意思,你沒有此書");system("pause");else while(node) if(node) personnel->reader_borrow_num-; if(strcmp(node->book_n
20、ame,returned)=0)break; else node=node->next; node->borrow_num-; savebooks(); else cout<<"對不起,沒有你要還的書或者所還書被刪除"<<endl;reader:delet_book() if(personnel->readerborrow_num<max) books_node*node; node=new books_node; node=broot-&
21、gt;next; char borrowed15; cout<<"輸入要借書的名子:" cin>>borrowed; while(node) if(strcmp(node->book_name,borrowed)=0)break; else node=node->next;if(node&&(node->total_num-node->borrow_num)>0)strcpy(personnel-&am
22、p;gt;reader_borrow_bookpersonnel->reader_borrow_num.borrow_books_name,node->book_name);strcpy(personel->reader_borrow_bookpersonnel->reader_borrw_num+.borrow_books_no,node->book_num);-17-綜合實踐報告 reader:print_me() cout<<"姓名"<&am
23、p;lt;personnel->reader_name<<" 編號:"<<personnel->reader_no<<" 借書總數(shù):"<<personnel->reader_borrow_num<<endl; for(int i=0;i<personnel->reader_borrow_num;i+) printf(
24、"書名:%s,node->borrow_num+; savebooks(); else cout<<"對不起,沒有你要借的書或者所要借的書已經(jīng)借完!"<<endl; else cout<<"對不起,你借書的數(shù)量已經(jīng)超過最大借數(shù)量"<<endl; 書的編號:%s",personnel->reader_borrow_booki.borrow_books_
25、name,personnel->reader_borrow_booki.borrow_books_no)void Pause() getch(); fflush(stdin); reader:reader_borrow() delet_book();reader:reader_return()add_book();reader:save_readers(readers_node *L) readers_node *root; root=new readers_node; root=L->next; ofstream outFile; outFile.open(&am
26、p;quot;c:Readers.dat",ios:binary); while(root) -18-綜合實踐報告 outFile.write(char)root,sizeof(readers_node); root=root->next; outFle.close();readers_node* read_readers() readers_node *r; r=new readers_node; r->next=NULL; int flag=0; ifstream inFile; inFile.open("c:Readers.
27、dat",ios:binary); if(inFile.is_open()=-1) else while(1) flag+; readers_node *node; node=new readers_node; inFile.read(char*)node,sizeof(readers_node); if(inFile.eof() break; node->next=r->next; r->next=node; cout<<"cont open readers.dat"&
28、amp;lt;<endl;return r; inFile.close(); if(flag<2) cout<<"暫無讀者 "<<endl; return r; else return r;password()system("cls");char a="111111",b10,c;int n=0,k;cerr<<"nnnnttt請輸入密碼,你將擁有3次機會:n
29、"-19-綜合實踐報告 while(1) n+; k=0; cout<<"ttt輸入密碼:" while(1) c=getch(); if(c=13)break; bk=c;k+; cerr<<"*" bk=0; cout<<"n" if(n>2) printf("你已經(jīng)超過輸入次數(shù),系統(tǒng)將退出n"); getch(); if(strcm
30、p(a,b)=0)break; else cout<<"密碼錯誤,請重新輸入n" cerr<<"n"void manager_menu_1(manager M) int N; while(1) cout<<"n" cout<<" 圖書管圖書管理系統(tǒng) n" cout<<" 菜單 n"
31、; cout<<"n" cout<<"增加圖書 n" cout<<" .刪除圖書 n" cout<<" .查找圖書 n" cout<<" .輸出所有 n" cout<<" 退出請按0 n" cout<&
32、amp;lt;"n" cout<<"請輸入您的選擇(0-4):( )bb" cin>>N; switch (N) case 1: M.add_book();getch();break;-20-綜合實踐報告 void manager_menu_2(manager M) int N; case 2: M.delet_book();getch();break; case 3: M.search_book();getch();break; case 4: M.print_bo
33、oks();getch();break; case 0: return; system("cls"); while(1) cout<<"n" cout<<" 圖書管圖書管理系統(tǒng) n" cout<<" 菜單 n" cout<<"n" cout<<"增加讀者 n&a
34、mp;quot; cout<<" 刪除讀者 n" cout<<"查找讀者 n" cout<<"輸出所有 n" cout<<" 退出請按0 n" cout<<"n" cout<<"請輸入您的選擇(0-4):( )bb"
35、 cin>>N; switch (N) case 1: M.add_reader();getch();break; case 2: M.delet_reader();getch();break; case 3: M.search_reader();getch();break; case 4: M.print_readers();getch();break; case 0: return; system("cls");void manager_menu(readers_node*L) system("cls&
36、;quot;); password(); manager manager(L);int N;while(1)-21-綜合實踐報告 cout<<"n" cout<<" 圖書管圖書管理系統(tǒng) n" cout<<" 菜單 n" cout<<"n" cout<<"圖書維護 n" cout&
37、amp;lt;<"讀者維護 n" cout<<"退出請按0 n" cout<<"n" cout<<"請輸入您的選擇(0-2):( )bb" cin>>N; switch (N) case 1: system("cls"); manager_menu_1(Manager); break; cas
38、e 2: system("cls"); manager_menu_2(Manager);break; case 0: return; system("cls");reader_menu(readers_node*L)char name15;cout<<"輸入用戶名:" cin>>name; readers_node* node; node=new readers_node; node=L->next; while(no
39、de) if(strcmp(nome,node->reader_name)=0) break; else node=node->next; if(node) reader Reader(node); int N; while(1) cout<<"n" cout<<"圖書管圖書管理系統(tǒng) n" cout<<" 菜單 n"-22-綜合實踐報告 cout<<
40、"n" cout<<"借書 n" cout<<" 還書 n" cout<<"查找書 n" cout<<" .輸出所有 n" cout<<" 自身信息 n" cout<<"退出請按0 n" cout<<"n" cout<&
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度水路貨運運輸承包服務(wù)合同2篇
- 二零二五版水電安裝工程安全評估與施工合同2篇
- 二零二五版農(nóng)業(yè)貸款定金合同規(guī)范文本3篇
- 二零二五版幼兒園教師勞動權(quán)益保護及勞動合同解除程序協(xié)議3篇
- 二零二五版房產(chǎn)托管居間服務(wù)合同協(xié)議3篇
- 二零二五年房地產(chǎn)物業(yè)管理合作開發(fā)合同3篇
- 二零二五年度重點單位保安勤務(wù)合同5篇
- 二零二五版微電影導演定制化拍攝合同3篇
- 二零二五版KTV員工心理健康關(guān)愛計劃合同2篇
- 二零二五年度高端酒店場地租賃合同范本2篇
- DB34∕T 4010-2021 水利工程外觀質(zhì)量評定規(guī)程
- 納米復(fù)合材料的增韌增能機制
- 圖書館前臺接待工作總結(jié)
- 衛(wèi)生院藥品管理制度
- 神經(jīng)外科進修匯報課件
- 2024老年人靜脈血栓栓塞癥防治中國專家共識(完整版)
- 騰訊營銷師認證考試題庫(附答案)
- 鄰近鐵路營業(yè)線施工安全監(jiān)測技術(shù)規(guī)程 (TB 10314-2021)
- 四年級上冊脫式計算100題及答案
- 資本市場與財務(wù)管理
- 河南近10年中考真題數(shù)學含答案(2023-2014)
評論
0/150
提交評論