




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)計(jì)算機(jī)科學(xué)和技術(shù)級(jí)1班課程設(shè)計(jì)題目:圖書(shū)借閱管理系統(tǒng) 姓名: 學(xué)號(hào): 一.需求分析說(shuō)明圖書(shū)借閱處理過(guò)程簡(jiǎn)述處理過(guò)程關(guān)鍵包含:新增圖書(shū)上架、辦理圖證、圖書(shū)查詢(xún)、借書(shū)、還書(shū)等。(1)新增圖書(shū)上架新書(shū)上架時(shí),需要登記新書(shū):書(shū)名、作者、出版社、總冊(cè)數(shù)信息。(2)辦理圖書(shū)借閱證讀者辦理借書(shū)證時(shí),需要登記讀者(學(xué)生)學(xué)號(hào)、姓名。(3)圖書(shū)查詢(xún)讀者根據(jù)圖書(shū)編號(hào)查詢(xún)圖書(shū)基礎(chǔ)信息,并能夠得悉現(xiàn)還有幾冊(cè)能夠借閱。(4)借書(shū)每個(gè)學(xué)生讀者最多借5本書(shū)。讀者借書(shū)時(shí),應(yīng)登記書(shū)號(hào)、借書(shū)日期(年月日)。2.?dāng)?shù)據(jù)分析數(shù)據(jù)處理過(guò)程中包含到兩個(gè)實(shí)體:圖書(shū)和會(huì)員;各實(shí)體應(yīng)含有屬性以下:圖書(shū)(書(shū)號(hào)、書(shū)名、作者,總冊(cè)數(shù))讀者(學(xué)號(hào)、姓名、班級(jí))因?yàn)橥粋€(gè)圖書(shū)能夠有多冊(cè)上架,每個(gè)讀者最多能夠借閱5本書(shū),圖書(shū)借閱屬性以下:借閱(書(shū)號(hào)、借書(shū)日期)3.功效分析系統(tǒng)功效模塊包含:圖書(shū)增加、圖書(shū)刪除、圖書(shū)查詢(xún)、借書(shū)、還書(shū);另外還包含圖書(shū)信息修改和讀者信息修改。二.基礎(chǔ)功效1)圖書(shū)管理(增加圖書(shū)、查詢(xún)圖書(shū)、刪除圖書(shū)、圖書(shū)借閱、還書(shū));2)會(huì)員管理(增加會(huì)員、查詢(xún)會(huì)員、刪除會(huì)員、借書(shū)信息);3)系統(tǒng)管理(初始化、載入數(shù)據(jù)、保留數(shù)據(jù)、退出程序);三.程序設(shè)計(jì)#include<stdlib.h>#include<stdio.h>#include<iostream.h>#defineNULL0typedefstructBookInfo{/////圖書(shū)結(jié)構(gòu)intb_Code;////圖書(shū)編號(hào)charb_Name[20];/////名稱(chēng)intb_Total;/////總數(shù)intb_Out;///借出數(shù)BookInfo*nextbook;//////下一類(lèi)圖書(shū)}BookInfo;typedefstructMemberInfo{///會(huì)員結(jié)構(gòu)longm_Code;/////會(huì)員編號(hào)charm_Name[20];////會(huì)員名字intl_Codes[6];/////以借書(shū)編號(hào),最多5MemberInfo*nextmember;////下一會(huì)員}MemberInfo;typedefstructSystem{///管理系統(tǒng)結(jié)構(gòu)BookInfo*BI;MemberInfo*MI;intBookTotal;////圖書(shū)類(lèi)庫(kù)存量intMemberTota;/////會(huì)員數(shù)量}System;System*InitSystem();/////voidAddBook(System*);////增加圖書(shū)B(niǎo)ookInfo*SearchBook(System*,int);////查詢(xún)圖書(shū)信息voidDelBook(System*);/////刪除圖書(shū)voidBrrowBook(System*);///////借書(shū)處理voidTurnBackBook(System*);////還書(shū)處理voidAddMember(System*);/////添加會(huì)員voidDelMember(System*);////刪除會(huì)員MemberInfo*SearchMember(System*,int);/////查詢(xún)會(huì)員信息voidStoreData(System*);voidLoadData(System*);voidExitSystem();voidmain(){System*S=InitSystem();intsel;do{cout<<"\n\t\t\t\t圖書(shū)管理系統(tǒng)"<<endl;cout<<"\t\t\t******************************"<<endl;cout<<"\t\t\t******************************"<<endl;cout<<"\t\t\t1.增加圖書(shū).\t2.查詢(xún)圖書(shū).\n\t\t\t3.刪除圖書(shū).\t4.借書(shū)處理.\n\t\t\t5.還書(shū)處理.\n\t\t\t6.添加會(huì)員.\t7.刪除會(huì)員.\n\t\t\t8.查詢(xún)會(huì)員.\t9.載入數(shù)據(jù).\n\t\t\t10.保留數(shù)據(jù).\t11.退出程序.\n";cout<<"\t\t\t******************************"<<endl;cout<<"\t\t\t******************************"<<endl;cout<<"請(qǐng)選擇:";do{cin>>sel;if(sel>=1&&sel<=11)break;cout<<"選擇錯(cuò)誤!\n重新輸入:"<<endl;}while(1);switch(sel){case1:AddBook(S);break;case2:SearchBook(S,-1);break;case3:DelBook(S);break;case4:BrrowBook(S);;break;case5:TurnBackBook(S);break;case6:AddMember(S);break;case7:DelMember(S);break;case8:SearchMember(S,-1);break;case9:LoadData(S);break;case10:StoreData(S);break;default:ExitSystem();}}while(1);}System*InitSystem(){System*S=(System*)malloc(sizeof(System));S->BI=(BookInfo*)malloc(sizeof(BookInfo));S->BookTotal=0;S->BI->nextbook=NULL;S->MI=(MemberInfo*)malloc(sizeof(MemberInfo));S->MemberTota=0;S->MI->nextmember=NULL;returnS;}voidAddBook(System*S){intTempcode;charsel;BookInfo*p=S->BI;BookInfo*t;BookInfo*m;intnum;do{cout<<"輸入圖書(shū)編號(hào):";cin>>Tempcode;if(m=SearchBook(S,Tempcode)){cout<<"這類(lèi)書(shū)以有庫(kù)存.\n輸入圖書(shū)入庫(kù)量:"<<endl;cin>>num;m->b_Total+=num;}else{t=(BookInfo*)malloc(sizeof(BookInfo));t->b_Code=Tempcode;cout<<"輸入圖書(shū)名稱(chēng):";cin>>t->b_Name;cout<<"輸入圖書(shū)入庫(kù)量:";cin>>t->b_Total;t->b_Out=0;t->nextbook=p->nextbook;p->nextbook=t;S->BookTotal++;}cout<<"添加完成!"<<endl;cout<<"還要添加嗎?(Y/N)";cin>>sel;if(sel=='n'||sel=='N'){cout<<"結(jié)束添加"<<endl;return;}}while(1);}BookInfo*SearchBook(System*S,intcode){BookInfo*bi=S->BI->nextbook;intbookcode;if(code==-1){cout<<"請(qǐng)輸入要查詢(xún)圖書(shū)編號(hào):";cin>>bookcode;}elsebookcode=code;while(bi&&bi->b_Code!=bookcode)bi=bi->nextbook;if(code==-1){if(!bi)cout<<"沒(méi)找到你所要圖書(shū)."<<endl;else{cout<<"圖書(shū)編號(hào)為:"<<bi->b_Code<<endl;cout<<"圖書(shū)名稱(chēng)為:"<<bi->b_Name<<endl;cout<<"圖書(shū)庫(kù)存量為:"<<bi->b_Total<<endl;cout<<"圖書(shū)借出量為:"<<bi->b_Out<<endl;}}returnbi;}voidDelBook(System*S){BookInfo*bi;BookInfo*pl=S->BI;MemberInfo*memi;charsel;inttempcode;inti;do{pl=S->BI;bi=pl->nextbook;memi=S->MI->nextmember;cout<<"請(qǐng)輸入要?jiǎng)h除圖書(shū)編號(hào):";cin>>tempcode;while(bi){if(bi->b_Code==tempcode)break;pl=bi;bi=bi->nextbook;}if(bi==0)cout<<"沒(méi)有找到要?jiǎng)h除圖書(shū)"<<endl;else{pl->nextbook=bi->nextbook;S->BookTotal--;while(memi){for(i=1;i<=memi->l_Codes[0];i++){if(memi->l_Codes[i]==tempcode)break;}if(i<=memi->l_Codes[0]){for(;i<memi->l_Codes[0];i++)memi->l_Codes[i]=memi->l_Codes[i+1];memi->l_Codes[0]--;}memi=memi->nextmember;}free(bi);}cout<<"還有圖書(shū)要?jiǎng)h除嗎?(Y/N)";cin>>sel;if(sel=='N'||sel=='n'){cout<<"刪除圖書(shū)結(jié)束"<<endl;return;}}while(1);}voidBrrowBook(System*S){BookInfo*bi=S->BI->nextbook;BookInfo*p;charsel;intmemcode;MemberInfo*mp;inttempcode;do{cout<<"輸入要借出書(shū)號(hào):";cin>>tempcode;p=SearchBook(S,tempcode);if(!p){cout<<"沒(méi)有找到要借出圖書(shū)."<<endl;}else{cout<<"此書(shū)現(xiàn)存量為"<<(p->b_Total-p->b_Out)<<endl;if(!(p->b_Total-p->b_Out))cout<<"沒(méi)有足夠書(shū)了,外借失敗."<<endl;else{cout<<"請(qǐng)輸入會(huì)員編號(hào):";cin>>memcode;mp=SearchMember(S,memcode);if(!mp)cout<<"會(huì)員編號(hào)輸入錯(cuò)誤,外借失敗"<<endl;else{if(mp->l_Codes[0]==5)cout<<"借書(shū)量不能超出5本";else{p->b_Out++;mp->l_Codes[++mp->l_Codes[0]]=tempcode;cout<<"外借成功."<<endl;}}}}cout<<"\n還有圖書(shū)要借出嗎?(Y/N)";cin>>sel;if(sel=='N'||sel=='n'){cout<<"外借操作結(jié)束."<<endl;return;}}while(1);}voidTurnBackBook(System*S){BookInfo*bi=S->BI->nextbook;BookInfo*p;MemberInfo*mp;intmembercode;inttempcode;inti;charsel;do{cout<<"輸入歸還書(shū)號(hào):";cin>>tempcode;p=SearchBook(S,tempcode);if(!p){cout<<"書(shū)號(hào)輸入錯(cuò)誤."<<endl;}else{cout<<"此書(shū)現(xiàn)存量為"<<(p->b_Total-p->b_Out)<<endl;cout<<"請(qǐng)輸入會(huì)員編號(hào):";cin>>membercode;if(!(mp=SearchMember(S,membercode)))cout<<"會(huì)員編號(hào)輸入錯(cuò)誤,歸還失敗"<<endl;else{p->b_Out--;for(i=1;i<=mp->l_Codes[0];i++){if(mp->l_Codes[i]==tempcode)break;}while(i<mp->l_Codes[0]){mp->l_Codes[i]=mp->l_Codes[i+1];i++;}mp->l_Codes[0]--;cout<<"歸還成功."<<endl;}}cout<<"還有要?dú)w還圖書(shū)嗎?(Y/N)";cin>>sel;if(sel=='N'||sel=='n'){cout<<"歸還結(jié)束."<<endl;return;}}while(1);}voidAddMember(System*S){intTempcode;charsel;MemberInfo*p=S->MI;MemberInfo*t;do{cout<<"輸入會(huì)員編號(hào):";cin>>Tempcode;t=(MemberInfo*)malloc(sizeof(MemberInfo));t->m_Code=Tempcode;cout<<"輸入會(huì)員姓名:";cin>>t->m_Name;t->l_Codes[0]=0;t->nextmember=p->nextmember;p->nextmember=t;S->MemberTota++;cout<<"添加完成!"<<endl;cout<<"還要添加嗎?(Y/N)";cin>>sel;if(sel=='n'||sel=='N'){cout<<"結(jié)束添加"<<endl;return;}}while(1);}MemberInfo*SearchMember(System*S,intcode){MemberInfo*bi=S->MI->nextmember;intmembercode;inti;if(code==-1){cout<<"請(qǐng)輸入要查詢(xún)會(huì)員編號(hào):";cin>>membercode;}elsemembercode=code;while(bi&&bi->m_Code!=membercode)bi=bi->nextmember;if(code==-1){if(!bi)cout<<"沒(méi)找到指定會(huì)員."<<endl;else{cout<<"會(huì)員編號(hào)為:"<<bi->m_Code<<endl;cout<<"名稱(chēng)為:"<<bi->m_Name<<endl;cout<<"已借圖書(shū)有:"<<bi->l_Codes[0]<<"本."<<endl;for(i=1;i<=bi->l_Codes[0];i++)cout<<bi->l_Codes[i]<<'';cout<<endl;}}returnbi;}voidDelMember(System*S){MemberInfo*bi;MemberInfo*pl;BookInfo*book;charsel;inti;inttempcode;do{bi=S->MI->nextmember;pl=S->MI;cout<<"請(qǐng)輸入要?jiǎng)h除會(huì)員編號(hào):";cin>>tempcode;while(bi){if(bi->m_Code==tempcode)break;pl=bi;bi=bi->nextmember;}if(!bi)cout<<"沒(méi)有找到要?jiǎng)h除會(huì)員編號(hào).";else{pl->nextmember=bi->nextmember;S->MemberTota--;for(i=1;i<=bi->l_Codes[0];i++){if(!(book=SearchBook(S,bi->l_Codes[i]))){cout<<"刪除會(huì)員犯錯(cuò)!"<<endl;}else{book->b_Out--;book->b_Total--;}}free(bi);}cout<<"還有會(huì)員要?jiǎng)h除嗎?(Y/N)";cin>>sel;if(sel=='N'||sel=='n'){cout<<"刪除會(huì)員結(jié)束"<<endl;return;}}while(1);}voidStoreData(System*S){FILE*fp;BookInfo*bi=S->BI->nextbook;if(!(fp=fopen("BookSys","wb"))){cout<<"打開(kāi)文件BookSys失敗!"<<endl;exit(0);}fwrite(&(S->BookTotal),sizeof(int),1,fp);while(bi){fwrite(bi,sizeof(BookInfo),1,fp);bi=bi->nextbook;}MemberInfo*mi=S->MI->nextmember;fwrite(&(S->MemberTota),sizeof(int),1,fp);while(mi){fwrite(mi,sizeof(MemberInfo),1,fp);mi=mi->nextmember;}fclose(fp);}voidLoadData(System*S){FILE*fp;if(!(fp=fopen("BookSys","rb"))){cout<<"打開(kāi)文件BookSys失敗"<<endl;exit(0);}BookInfo*bi=S->BI;BookInfo*tempbi;fread(&(S->BookTotal),sizeof(int),1,fp);for(inti=1;i<=S->BookTotal;i++){tempbi=(BookInfo*)malloc(sizeof(BookInfo));fread(tempbi,sizeof(BookInfo),1,fp);bi->nextbook=tempbi;bi=tempbi;}bi->nextbook=NULL;MemberInfo*mi=S->MI;MemberInfo*te
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CFDCC 0217-2023家居用陶瓷巖板
- T/CEPPEA 5004.8-2020核電廠(chǎng)常規(guī)島施工圖設(shè)計(jì)文件內(nèi)容深度規(guī)定第8部分:供暖通風(fēng)與空氣調(diào)節(jié)
- T/CECS 10250-2022綠色建材評(píng)價(jià)泡沫鋁板
- T/CECS 10042-2019綠色建材評(píng)價(jià)無(wú)機(jī)裝飾板材
- T/CCS 026-2023煤礦防爆鋰電池車(chē)輛動(dòng)力電源換電安全技術(shù)要求
- T/CCMA 0180-2024熱風(fēng)微波復(fù)合加熱式瀝青路面再生修補(bǔ)車(chē)
- T/CCMA 0096-2020非公路自卸車(chē)運(yùn)行維護(hù)規(guī)程
- T/CBMMAS 001-2019 T/CHAA 010-2019適老電動(dòng)護(hù)理床技術(shù)要求
- T/CBMCA 057.2-2024適老化全場(chǎng)景技術(shù)規(guī)范第2部分:既有居住建筑適老化改造技術(shù)標(biāo)準(zhǔn)
- T/CBMCA 038-2022中央空調(diào)清洗消毒及運(yùn)維服務(wù)規(guī)范
- 轉(zhuǎn)讓店鋪輪胎協(xié)議書(shū)
- 2025年遼寧省盤(pán)錦市中考數(shù)學(xué)二模試卷
- 完整版新修訂《厲行節(jié)約反對(duì)浪費(fèi)條例》(課件)
- 水權(quán)與水資源管理考試試題及答案
- 公路防汛安全培訓(xùn)課件
- (區(qū)縣版)-中小學(xué)教輔材料征訂專(zhuān)項(xiàng)整治工作方案
- 文員崗位筆試試題及答案
- 2025年制冷工職業(yè)技能競(jìng)賽參考試題庫(kù)(共500題含答案)
- 安徽卓越縣中聯(lián)盟2024-2025學(xué)年高三下學(xué)期5月份檢測(cè)物理試題+答案
- 2024年河北承德辰飛供電服務(wù)有限公司招聘真題
- 工程造價(jià)咨詢(xún)服務(wù)投標(biāo)方案(專(zhuān)家團(tuán)隊(duì)版-)
評(píng)論
0/150
提交評(píng)論