c圖書管理系統(tǒng)實驗報告和源代碼_第1頁
c圖書管理系統(tǒng)實驗報告和源代碼_第2頁
c圖書管理系統(tǒng)實驗報告和源代碼_第3頁
c圖書管理系統(tǒng)實驗報告和源代碼_第4頁
c圖書管理系統(tǒng)實驗報告和源代碼_第5頁
免費預(yù)覽已結(jié)束,剩余12頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、課程名稱:程序設(shè)計綜合實訓(xùn) 設(shè)計題目: 圖書管理系統(tǒng)姓名:學(xué)號:專業(yè)班級:指導(dǎo)老師:完成日期:1設(shè)計任務(wù)1.1 設(shè)計目的運用所學(xué)知識,完成圖書館管理系統(tǒng),通過實踐加強對所學(xué)知識的理解和鞏固1.2 設(shè)計內(nèi)容建立圖書館管理系統(tǒng),用戶分為圖書管理人員,讀者。管理人員可以增加刪除查看圖書、讀者。讀者只能查看自身信息,和借還書1.3 設(shè)計指標(biāo)或者要求管理人員可以訪問任意圖書和讀者,而讀者只能借還圖書館存在的圖書和查看自己的信息。2設(shè)計過程分析:由于管理系統(tǒng)用戶有圖書管理員和讀者,但兩者的權(quán)限不同,管理員有權(quán)訪問所有圖書信息和管理員信息,而讀者只能訪問所有圖書信息和自身的信息。所以他們的相同點: 都 能訪

2、問所有圖書信息不同點:管理員能訪問所有讀者信息而管理員只能訪問自身信息而不能訪問其它讀者信息; 故此設(shè)計了三個類程序包含三個類:圖書類(books),管理員類(manager),讀者類reader, books類為抽 象類,manager;和reader類為books類的派生類。為了能讓管理員和讀者訪問所有圖書信 息,所有都繼承了 books類;而為了分出兩者的權(quán)限的不同,所以把所有讀者的信息做為一 個鏈表作為管理員的一個私有成員, 而讀者卻只能放一個自身節(jié)點作為讀者的私有成員,然后分別設(shè)計各個類的成員函數(shù)。2.1 程序功能Classbooks/虛基類protected:books_node*

3、broot;public:books();構(gòu)造函數(shù)savebooks();佛存修改的內(nèi)容search_book();M找某一本書print_books();/輸出所有書的信息virtualadd_book()=0;/對于讀者是還書,對于管理員添加書virtualdelet_book()=0;/ 對于讀者是借書,對于管理員是去掉某一本書;Classmanager:publicbooks/t 理員類protected:readers_node*rroot;public:manager(readers_node*);savereaders();add_book();/徐力口圖書信息delet_boo

4、k();/刪除圖書search_reader();/S找讀者信息add_reader();/徐力口讀者delet_reader();/W 除讀者print_readers();/f俞出所有讀者;classreader:publicbooks/債者類private:readers_node*personnel;/f 放讀者 自 身信息public:reader(readers_node*);add_book();/還書reader_borrow();delet_book();reader_return();/ft 書print_me();/查看自己借書情況 save_readers(reader

5、s_node*);2.2 程序流程圖退3軟件運行或者測試結(jié)果(1) 管理員身份登錄:(2)讀者身份登錄:4軟件設(shè)計過程中遇到的問題以及解決辦法由于編寫前期做了大量的設(shè)計工作,在編寫過程中基本沒有遇到難解決的問題提, 倒是在設(shè)計類時有些茫然,經(jīng)過反復(fù)斟酌還是做了一些取舍,比如把讀取讀者文件 放在了類的外面等。5總結(jié)通過本次課程設(shè)計學(xué)到了很多東西,對于C+對象的含義有了進(jìn)一步的認(rèn)識,從而對類的封裝和設(shè)計有了一種新的認(rèn)識,不只是停留在表面,為以后的學(xué)習(xí)積累了經(jīng)驗,設(shè)計不比編寫 容易,類設(shè)計好是整個程序?qū)懞玫那疤?,只有一個好的規(guī)劃才能寫出好的程序。不過也通過 本次發(fā)現(xiàn)了自己的不足之處??偸牵罕敬握n程設(shè)

6、計受益匪淺,動手能力大大增強;附錄(程序源代碼)#include<iostream.h>#include<fstream.h>#include<string.h>#include<stdio.h>#include<conio.h>#definemax3typedefstructBookscharbook_name15;inttotal_num;intborrow_num;charbook_num15;Books*next;books_node;typedefstructReaderscharreader_name15;charread

7、er_no15;intreader_borrow_num;structReader_borrow_bookscharborrow_books_name15;charborrow_books_no15;reader_borrow_bookmax;Readers*next;readers_node;classbooksprotected:books_node*broot;public:books();savebooks();search_book();print_books();virtualadd_book()=0;virtualdelet_book()=0;classmanager:publi

8、cbooksprotected:readers_node*rroot;public:manager(readers_node*);savereaders();add_book();delet_book();search_reader();add_reader();delet_reader();print_readers();classreader:publicbooksprivate:readers_node*personnel;public:reader(readers_node*);add_book();reader_borrow();delet_book();reader_return(

9、);print_me();save_readers(readers_node*);books:books()books_node*r;broot=newbooks_node;r=newbooks_node;r->next=NULL;broot=r;ifstreaminFile;inFile.open("c:books.dat",ios:binary);if(inFile.is_open()=-1)cout<<"con'topenbooks.dat"<<endl; elseinti=0;while(1)i+;books

10、_node*node;node=newbooks_node;inFile.read(char*)node,sizeof(books_node);if(inFile.eof()break;node->next=r->next;r->next=node;inFile.close();if(i<2)cout<<" 暫時沒有圖書數(shù)據(jù)"<<endl;books:savebooks()books_node*L;L=newbooks_node;L=broot->next;ofstreamoutFile;outFile.open(&qu

11、ot;c:books.dat",ios:binary);while(L)outFile.write(char*)L,sizeof(books_node);L=L->next;outFile.close();books:search_book()charsearchedbook15;cout<<"輸入要查找的書的名子:";cin>>searchedbook;books_node*r;r=newbooks_node;r=broot->next;while(r)if(strcmp(searchedbook,r->book_nam

12、e)=0)cout<<" 書名 :"<<r->book_name<<" 書的總量:"<<r->total_num<<" 借出 :"<<r->borrow_num<<" 書的編號 :"<<r->book_num<<endl;break;r=r->next;if(r=NULL)cout<<" 對不起,沒有此書 "<<endl;books:p

13、rint_books()books_node*r;r=newbooks_node;r=broot->next;while(r)cout<<"書名:"<<r->book_name<<"書的總量:"<<r->total_num<<"借出 :"<<r->borrow_num<<" 書的編號 :"<<r->book_num<<endl;r=r->next;deleter;manag

14、er:add_book()books_node*L;L=newbooks_node;L=broot;while(1)books_node*r;r=newbooks_node;r->next=NULL;cout<<"輸入書名:"cin>>r->book_name;cout<<”輸入上的編號:"cin>>r->book_num;r->borrow_num=0;cout<<"輸入總數(shù):"cin>>r->total_num;r->next=L-&

15、gt;next;L->next=r;cout<<"addmore(n 終止 ,其它鍵繼續(xù))"charsign;cin>>sign;if(sign='n'|sign='N')break;broot=L;savebooks();manager:delet_book()chardeleted15;cout<<"輸入要刪除的圖書名字:”;cin>>deleted;books_node*node,*L;node=newbooks_node;L=newbooks_node;node=broo

16、t;while(node->next)if(strcmp(deleted,node->next->book_name)=0)break; node=node->next;if(node->next=NULL)cout<<"sorry!Thereisnothebook!"<<endl;elseif(node->next->borrow_num=0)node->next=node->next->next;savebooks()elsecout<<”對不起,暫時不能刪除,因為還有沒有歸

17、還的書"<<endl;manager:manager(readers_node*node) rroot=newreaders_node;rroot=node;manager:savereaders()readers_node*L;L=newreaders_node;L=rroot->next;ofstreamoutFile;outFile.open("c:Readers.dat",ios:binary);while(L)outFile.write(char*)L,sizeof(readers_node);L=L->next;outFile.

18、close();manager:add_reader()readers_node*L;L=newreaders_node;L=rroot;intsign=0;while(1)readers_node*r;r=newreaders_node;r->next=NULL;cout<<"輸入姓名:"cin>>r->reader_name;cout<<"輸入讀R白"編號:"cin>>r->reader_no;r->reader_borrow_num=0;r->next=L-&g

19、t;next;L->next=r;cout<<"addmore(n 終止 ,其它鍵繼續(xù))"charsign;cin>>sign;if(sign='n'|sign='N')break;root=L;savereaders();manager:delet_reader()chardeleted15;cout<<"輸入要刪除讀者的名字:”;cin>>deleted;readers_nodenode,*L;node=newreaders_node;L=newreaders_node;no

20、de=rroot;while(node->next)if(strcmp(deleted,node->next->reader_name)=0)break;node=node->next;if(node->next=NULL)cout<<"sorry!Thereisnothereader!"<<endl; elsenode->next=node->next->next;savereaders();manager:search_reader()readers_node*r;r=newreaders_node

21、;r=rroot->next;charreader15;cout<<"輸入要查找讀者的姓名:”;cin>>reader;while(r)if(strcmp(reader,r->reader_name)=0)cout<<"姓名:"<<r->reader_name<<'編號:"<<r->reader_no<<"借書總數(shù):"<<r->reader_borrow_num<<endl;for(inti

22、=0;i<r->reader_borrow_num;i+)cout<<"書名:"<<r->reader_borrow_booki.borrow_books_name<<""<<"書的編號 :"<<r->reader_borrow_booki.borrow_books_no; break;elser=r->next;if(!r)cout<<" 沒有此人 "<<endl;manager:print_read

23、ers()readers_nodeprintL;printL=newreaders_node;printL=rroot->next;while(printL)cout<<"姓名編號借書總數(shù)"<<endl;cout<<printL->reader_name<<""<<printL->reader_no<<""<<printL->reader_borrow_num<< endl;for(inti=0;i<print

24、L->reader_borrow_num;i+)cout<<" 書名 :"<<printL->reader_borrow_booki.borrow_books_name<<""<<" 書的編號 :"<<printL->reader_borrow_booki.borrow_books_no;printL=printL->next;deleteprintL;reader:reader(readers_node*node)(personnel)=newrea

25、ders_node;personnel=node;reader:add_book()books_node*node;node=newbooks_node;node=broot->next;charreturned15;cout<<"輸入要還書的名子:”;cin>>returned;for(inti=0;i=personnel->reader_borrow_num;i+)if(strcmp(returned,personnel->reader_borrow_booki.borrow_books_name)=0)break;if(i=person

26、nel->reader_borrow_num+1)printf(" 不好意思,你沒有此書 ");system("pause");elsewhile(node)if(strcmp(node->book_name,returned)=0)break;elsenode=node->next;if(node)personnel->reader_borrow_num-;node->borrow_num-;savebooks();elsecout<<,對不起,沒有你要還的書或者所還書被刪除 "<<end

27、l;reader:delet_book()if(personnel->readerborrow_num<max)books_node*node;node=newbooks_node;node=broot->next;charborrowed15;cout<<, 輸入要借書的名子:,;cin>>borrowed;while(node)if(strcmp(node->book_name,borrowed)=0)break;elsenode=node->next;if(node&&(node->total_num-node-

28、>borrow_num)>0)strcpy(personnel->reader_borrow_bookpersonnel->reader_borrow_num.borrow_books_nam e,node->book_name);strcpy(personel->reader_borrow_bookpersonnel->reader_borrw_num+.borrow_books_no, node->book_num);node->borrow_num+;savebooks();elsecoutvv”對不起,沒有你要借的書或者所要借的書已

29、經(jīng)借完!"<<endl;elsecoutvv"對不起,你借書的數(shù)量已經(jīng)超過最大借數(shù)量 "<<endl;reader:print_me()cout<<"姓名"<<personnel->reader_name<<'編號:"<<personnel->reader_no<<'借書總 數(shù):"<<personnel->reader_borrow_num<<endl;for(inti=0;i<

30、personnel->reader_borrow_num;i+)printf("書名:s,書的編號:s”,personnel->reader_borrow_booki.borrow_books_name,personnel->reader_borrow_booki.borrow_books_no)voidPause()getch();fflush(stdin);reader:reader_borrow()delet_book();reader:reader_return()add_book();reader:save_readers(readers_node*L)r

31、eaders_node*root;root=newreaders_node;root=L->next;ofstreamoutFile;outFile.open("c:Readers.dat",ios:binary);while(root)outFile.write(char)root,sizeof(readers_node);root=root->next;outFle.close();readers_node*read_readers()readers_node*r;r=newreaders_node;r->next=NULL;intflag=0;ifs

32、treaminFile;inFile.open("c:Readers.dat",ios:binary);if(inFile.is_open()=-1)cout<<"con'topenreaders.dat"<<endl;returnr;elsewhile(1)flag+;readers_node*node;node=newreaders_node;inFile.read(char*)node,sizeof(readers_node);if(inFile.eof()break;node->next=r->next

33、;r->next=node;inFile.close();if(flag<2)cout<<"暫無讀者"<<endl;returnr;elsereturnr;password()system("cls");chara="111111",b10,c;intn=0,k;cerr<<"nnnnttt 請輸入密碼,你將擁有3 次機會 :n"while(1)n+;k=0;cout<<"ttt 輸入密碼 :"while(1)c=getch();if(

34、c=13)break;bk=c;k+;cerr<<"*"bk='0'cout«"n"if(n>2)(printf("你已經(jīng)超過輸入次數(shù),系統(tǒng)將退出rT);getch();)if(strcmp(a,b)=O)break;elsecoutvv'密碼錯誤,請重新輸入n"cerr«"n")voidmanager_menu_1 (managerM)intN;while(1)cout«" cout«" |圖書管圖書管理系統(tǒng)I

35、n”;cout«" | 菜單 | rT;cout«" Icout«"I增加圖書In"cout«"I.刪除圖書In"cout«"I.查找圖書In"cout«"I.輸出所有In"cout«"I退出請按0 In"cout«"coutVV”請輸入您的選擇(0-4) :()bb"cin»N;switch(N)(case 1: M .add_book() ;getch(); br

36、eak;case2: M.delet_book();getch();break; case3:M.search_book();getch();break; case4:M .pri nt_books() ;getch() ;break; caseO: return;) system("cls");)voidmanager_menu_2(managerM) (intN;while(1)n"n"n"n"cout«" cout<<" |圖書管圖書管理系統(tǒng)I n"cout<<&q

37、uot; | 菜單 | n"cout<<" |1n"cout<<" |增加讀者I n"cout<<" |刪除讀者I n"cout<<" |查找讀者I n"cout<<" |輸出所有I n"cout<<" | 退出請按 0 I n"cout<<" 11n"cout<<"請輸入您的選擇(0-4):()bb"cin>>N;sw

38、itch(N)(case1:M.add_reader();getch();break;case2: M.delet_reader();getch();break;case3:M.search_reader();getch();break;case4:M.print_readers();getch();break;case0:return;system("cls");voidmanager_menu(readers_node*L)(system("cls");password();managermanager(L);intN;while(1)(cout&l

39、t;<" 1n"cout<<" |圖書管圖書管理系統(tǒng)I n"cout<<" | 菜單 | n"cout<<" |1n"cout<<" |圖書維護(hù)I n"cout<<" |讀者維護(hù)I n"cout<<" | 退出請按 0 I n"cout<<" 11n"cout<<"請輸入您的選擇(0-2):()bb"cin>&

40、gt;N;switch(N)(case1:system("cls");manager_menu_1(Manager); break;case2: system("cls");manager_menu_2(Manager);break;case0:return;)system("cls");)reader_menu(readers_node*L)(charname15;cout<<"輸入用戶名:";cin>>name;readers_node*node;node=newreaders_node;node=L->next;while(node) (if(strcmp(nome,node->reader_name)=0) break; elsenode=node->next;) if(node) (readerReader(node);intN;while(1)(cout<<" In n" cout<<" |圖書管圖書管理系統(tǒng)I 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論