圖書館管理系統(tǒng)設(shè)計(C語言)_第1頁
圖書館管理系統(tǒng)設(shè)計(C語言)_第2頁
圖書館管理系統(tǒng)設(shè)計(C語言)_第3頁
圖書館管理系統(tǒng)設(shè)計(C語言)_第4頁
圖書館管理系統(tǒng)設(shè)計(C語言)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C程序設(shè)計報告圖書管理系統(tǒng)

設(shè)計題目:圖書管理系統(tǒng)設(shè)計要求:利用C語言實現(xiàn)小型的圖書管理系統(tǒng),能夠滿意基本的借閱功能。1.1問題提出:本人安排編寫一個圖書管理系統(tǒng),主要是供應(yīng)具有圖書管理的程序。本人的主要工作就是,編寫出一個正確的程序,使其正常運(yùn)行,實現(xiàn)圖書管理功能!1.2本系統(tǒng)主要會涉及的學(xué)問點(diǎn):結(jié)構(gòu),數(shù)組,循環(huán),函數(shù),推斷,指針等語句的應(yīng)用。1.3主要功能要求:功能分析:從圖書館的管理功能上分析,圖書館一共有三個方面的需求。1 對用戶的管理。2 對圖書的管理。3 對借閱的管理。因此,本系統(tǒng)也從以上三個方面進(jìn)行了設(shè)計,以實現(xiàn)上面的功能。詳細(xì)分析如下1 注冊用戶管理(以學(xué)校為樣體,用戶為學(xué)生)學(xué)生信息包括:學(xué)生ID,學(xué)生姓名,學(xué)生學(xué)號,所在院系,所在班級,性別,年齡。(1) 學(xué)生加入須要依次輸入學(xué)生ID,學(xué)生姓名,學(xué)生學(xué)號,所在院系,所在班級,性別,年齡。不能為空。(2) 學(xué)生刪除此處用一個查詢功能,是你便利的找到要刪除的學(xué)生,同時顯示該學(xué)生的信息,并要求刪除確認(rèn)。(3)學(xué)生信息修改運(yùn)用系統(tǒng)供應(yīng)的查找功能可以快速的找到要修改的學(xué)生,并提示修改的信息。2 圖書信息管理圖書信息包括:圖書ID,圖書名字,圖書作者,在館狀態(tài)。(1) 新書入庫須要填入圖書ID,圖書名字,圖書作者,在館狀態(tài);其中在館狀態(tài)須要填:true,表示圖書在館。(2) 舊書刪除對不用的舊書可以執(zhí)行該操作??梢赃\(yùn)用系統(tǒng)供應(yīng)的查找符合條件的圖書,并可以同步顯示該圖書的信息,以便確認(rèn)所刪圖書的正確性。(3) 圖書信息修改當(dāng)圖書的信息發(fā)生變更的時候可以運(yùn)用該功能來更新圖書的信息,以保證圖書信息的正確性。操作是只要用系統(tǒng)供應(yīng)的查找功能找到該圖書,就可以在信息顯示欄中對圖書信息做修改。3 圖書借閱管理:圖書借閱信息包括:借閱號,圖書ID,學(xué)生ID,是否借出,借出日期,是否歸還,歸還日期。(1) 圖書借閱:須要圖書ID,學(xué)生ID。(2) 圖書歸還:須要圖書ID,學(xué)生ID。4 查詢報表(1) 圖書信息查詢:可以依據(jù)圖書ID,圖書名字,圖書作者實現(xiàn)查詢。(2) 借/還紀(jì)錄查詢借,還圖書信息都可以依據(jù)圖書ID,學(xué)生ID,日期范圍敏捷的查詢。(3) 未還圖書查詢查詢可以依據(jù)圖書ID,學(xué)生ID,班級,院系進(jìn)行,從而可以便利的進(jìn)行分組管理。2功能設(shè)計2.1算法設(shè)計本系統(tǒng)須要實現(xiàn)的功能要求:利用switch語句設(shè)計如圖1所示的主菜單:請輸入選項編號(1~10)圖書菜單1—添加圖書2-圖書查尋3-刪除一本圖書資料4-借書5-還書6-退出系統(tǒng)會員菜單7-添加會員8-會員查詢9-刪除一個會員資料10-查詢某個會員所借圖書狀況圖1圖書管理系統(tǒng)主菜單2、選擇5后,調(diào)用還書函數(shù),進(jìn)入函數(shù)后利用switch語句實現(xiàn)一個如圖2所示的菜單,該菜單中每個選項調(diào)用一個函數(shù)還書菜單請輸入選項編號(1~4)1――輸入圖書名2――查詢圖書資料3――圖書已借出的推斷4――作圖書未借書標(biāo)記,表示已還書圖2還書子菜單部分模塊流程圖:程序起先程序起先程序結(jié)束循環(huán)操作查找進(jìn)行操作的對象確認(rèn)所選操作的對象,進(jìn)行操作學(xué)生管理還書借書信息修改刪除學(xué)生加入學(xué)生信息修改舊書刪除新書入庫退出系統(tǒng)關(guān)于查詢報表借/還管理圖書管理程序結(jié)束循環(huán)操作查找進(jìn)行操作的對象確認(rèn)所選操作的對象,進(jìn)行操作學(xué)生管理還書借書信息修改刪除學(xué)生加入學(xué)生信息修改舊書刪除新書入庫退出系統(tǒng)關(guān)于查詢報表借/還管理圖書管理圖書信息查詢未還圖書查圖書信息查詢未還圖書查詢借/還紀(jì)錄查詢系統(tǒng)信息確認(rèn)退出確認(rèn)退出退出系統(tǒng)退出系統(tǒng)3程序代碼設(shè)計1初始化界面模塊1)函數(shù)原型:voidMenu()2)功能:初始化界面3)變量及類型:voidRedText(intx,inty,char*z):定義整形變量voidMenu(){system("cls");/*調(diào)用系統(tǒng)的清屏吩咐*/textbackground(BLUE);/*將背景設(shè)置為藍(lán)色*/window(1,1,25,80);clrscr();textx=3;/*光標(biāo)初始化位置*/texty=2;gotoxy(1,2);printf("%c",218);/*畫左上角*/for(i=0;i<78;i++)printf("%c",196);/*畫水平直線*/printf("%c",191);/*畫右上角*/for(i=3;i<=23;i++){gotoxy(1,i);printf("%c",179);/*畫垂直線*/gotoxy(80,i);printf("%c",179);}printf("%c",192);/*畫左下角*/for(i=0;i<78;i++)printf("%c",196);printf("%c",217);/*畫右下角*/gotoxy(1,1);textcolor(7);/*設(shè)置灰色*/for(i=0;i<80;i++)cprintf("%c",219);/*用符號實現(xiàn)畫主菜單的灰色背景區(qū)*/Selectitem();/*調(diào)用選項函數(shù)*/DrawSelectitem();/*畫選項*/gettext(2,3,78,23,c);/*保存當(dāng)前文本區(qū)域*/}4)說明:進(jìn)入系統(tǒng)后自動驅(qū)動初始化界面2詳細(xì)操作過程模塊1)函數(shù)原型:voidRun()2)功能:利用while,for等循環(huán)語句和if等推斷語句,實現(xiàn)詳細(xì)的圖書管理的過程如,借書、還書等過程。3)變量及類型:voidDrawFrame(intl,intu,intr,intd,inttcolor,intbcolor){textbackground(bcolor);/*背景顏色*/textcolor(bcolor);/*文本顏色*/for(i=l;i<=r;i++)/*輸出背景區(qū)域*/{for(j=u;j<=d;j++){gotoxy(i,j);printf("%c",219);/*輸出背景字符*/}}textcolor(tcolor);/*邊框顏色*/for(i=u+1;i<d;i++)/*在背景區(qū)域內(nèi)輸出邊框線*/{gotoxy(l,i);cprintf("%c",179);/*垂直線*/gotoxy(r,i);cprintf("%c",179);}for(i=l+1;i<r;i++){gotoxy(i,u);cprintf("%c",196);/*水平線*/gotoxy(i,d);cprintf("%c",196);}gotoxy(l,u);cprintf("%c",218);/*左上角*/gotoxy(r,u);cprintf("%c",191);/*右上角*/gotoxy(l,d);cprintf("%c",192);/*左下角*/gotoxy(r,d);cprintf("%c",217);/*右下角*//*gettext(l+1,u+1,r-1,d-1,save1);*//*保存邊框內(nèi)區(qū)域*/}4)說明:以大量的函數(shù),實現(xiàn)圖書管理的主要過程,包括對用戶的管理、對圖書的管理、對借閱的管理。4.C程序設(shè)計總結(jié)1.程序調(diào)試基本正常,基本達(dá)到圖書管理要求,調(diào)試之處游少數(shù)錯誤,經(jīng)過修改基本上已經(jīng)可以正常運(yùn)用了。2.本人在程序設(shè)計感到,充分的利用網(wǎng)上的資源和手中的源代碼及借鑒他人的閱歷可以更加的解決困難,使程序達(dá)到要求。參考文獻(xiàn)[1]譚浩強(qiáng),C程序設(shè)計(其次版),北京:清華高校出版社,2001.1[2]陳朔鷹,C語言程序設(shè)計習(xí)題集,北京:人命郵電出版社,2003.6附錄:程序清單#include<dos.h>#include<bios.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#defineLEFT0x4b00/*左*/#defineRIGHT0x4d00/*右*/#defineDOWN0x5000/*下*/#defineUP0x4800/*上*/#defineSPACE0x3920/*空格*/#defineESC0x011b/*ESC鍵*/#defineENTER0x1c0d/*回車鍵*/#defineBackspace0xe08/*擦除鍵*/#defineALT_B12288/*組合鍵ALT_B*/#defineALT_M12800/*組合鍵ALT_M*/#defineALT_H8960/*組合鍵ALT_H*/intkey;/*按鍵變量*/inttextx,texty;/*光標(biāo)坐標(biāo),x行,y列*/structmenustruct/*菜單用的結(jié)構(gòu)體*/{charname[10];/*主菜單名*/charstr[10][20];/*選項*/intn;/*選項數(shù)*/}ml[3];/*運(yùn)用了3個,可依據(jù)須要增刪*/typedefstructBookList/*書的結(jié)構(gòu)體*/{charnum[20];/*圖書編號*/charname[20];/*書名*/intprice;/*書的價格*/charperson[20];/*借閱人*/intyes;/*推斷書是否存在或者已經(jīng)借出,1存在,0借出*/structBookList*next;}Book;typedefstructMemberList/*會員的結(jié)構(gòu)體*/{charname[20];/*會員的姓名*/charsex[2];/*會員的性別*/intage;/*會員的年齡*/structMemberList*next;}Member;charsave[4096];/*保存文本區(qū)域空間*//*charsav1[4096];*/charc[4096];/*清屏專用空間*/inti,j;/*常用變量*/voidMenu();/*初始化界面*/voidSelectitem();/*定義菜單*/voidDrawSelectitem();/*顯示主菜單*/voidBlackText(intx,inty,char*z);/*選中菜單*/voidRedText(intx,inty,char*z);/*正常菜單*/voidRun();/*詳細(xì)操作過程*/voidDrawMl(intn);/*顯示下拉菜單*/voidMoveMl(intn,intx);/*菜單選項的限制*/voidEnter(intm,intn);/*菜單選項的詳細(xì)功能*/voidBookAdd();/*添加圖書*/voidBookConsult();/*圖書查詢*/voidBookDel();/*刪除圖書資料*/voidBookBorrow();/*借書*/voidBookReturn();/*還書*/voidMemberAdd();/*增加會員*/voidMemberConsult();/*查詢會員*/voidMemberDel();/*刪除會員*/voidMemberBook();/*查詢會員借書信息*/voidHelp();/*幫助*/voidVer();/*版本信息*/voidClrScr();/*自定義清屏函數(shù)*/voidDrawFrame(intleft,intup,intright,intdown,inttextcolor,intbackgroundcolor);/*畫邊框*//***主函數(shù)****/voidmain(void){Menu();/*初始化界面*/Run();/*詳細(xì)操作過程*/}/*初始化界面*/voidMenu(){system("cls");/*調(diào)用系統(tǒng)的清屏吩咐*/textbackground(BLUE);/*將背景設(shè)置為藍(lán)色*/window(1,1,25,80);clrscr();textx=3;/*光標(biāo)初始化位置*/texty=2;gotoxy(1,2);printf("%c",218);/*畫左上角*/for(i=0;i<78;i++)printf("%c",196);/*畫水平直線*/printf("%c",191);/*畫右上角*/for(i=3;i<=23;i++){gotoxy(1,i);printf("%c",179);/*畫垂直線*/gotoxy(80,i);printf("%c",179);}printf("%c",192);/*畫左下角*/for(i=0;i<78;i++)printf("%c",196);printf("%c",217);/*畫右下角*/gotoxy(1,1);textcolor(7);/*設(shè)置灰色*/for(i=0;i<80;i++)cprintf("%c",219);/*用符號實現(xiàn)畫主菜單的灰色背景區(qū)*/Selectitem();/*調(diào)用選項函數(shù)*/DrawSelectitem();/*畫選項*/gettext(2,3,78,23,c);/*保存當(dāng)前文本區(qū)域*/}/*定義菜單*/voidSelectitem(){strcpy(ml[0].name,"Book");/*下面的詳細(xì)選項補(bǔ)空格是為了各菜單黑色背景相同*/strcpy(ml[0].str[0],"Add");/*添加圖書*/strcpy(ml[0].str[1],"Consult");/*查詢圖書*/strcpy(ml[0].str[2],"Del");/*刪除圖書資料*/strcpy(ml[0].str[3],"Borrow");/*借書*/strcpy(ml[0].str[4],"Return");/*還書*/strcpy(ml[0].str[5],"Exit");/*退出系統(tǒng)*/ml[0].n=6;/*保存菜單的項數(shù)*/strcpy(ml[1].name,"Member");strcpy(ml[1].str[0],"Add");/*添加新會員*/strcpy(ml[1].str[1],"Consult");/*查詢會員資料*/strcpy(ml[1].str[2],"Del");/*刪除會員資料*/strcpy(ml[1].str[3],"Member&book");ml[1].n=4;strcpy(ml[2].name,"Help");/*系統(tǒng)幫助*/strcpy(ml[2].str[0],"ThisSystem");strcpy(ml[2].str[1],"Ver");ml[2].n=2;}/*顯示主單名*/voidDrawSelectitem(){for(i=0;i<3;i++)RedText(i,1,ml[i].name);/*顯示主菜單名,且首字母為紅色*/}/*正常顯示菜單*/voidRedText(intx,inty,char*z){textbackground(7);/*設(shè)置背景顏色為淺灰色*/gotoxy(3+x*20,y);for(j=0;z[j];j++){if(j==0)textcolor(RED);/*第一個字母顯示紅色*/elsetextcolor(BLACK);/*設(shè)置黑色*/cprintf("%c",z[j]);/*輸出菜單名*/}}/*顯示選中菜單*/voidBlackText(intx,inty,char*z){textbackground(0);/*設(shè)置背景顏色為黑色*/textcolor(15);/*設(shè)置文本顏色為白色*/gotoxy(3+20*x,y);/*定位坐標(biāo)*/cputs(z);/*輸出菜單名字符串*/}/*按鍵操作過程*/voidRun(){while(1){gotoxy(texty,textx);key=bioskey(0);/*接收按鍵*/switch(key){caseALT_B:caseESC:DrawMl(0);break;/*顯示下拉菜單1*/caseALT_M:DrawMl(1);break;/*顯示下拉菜單2*/caseALT_H:DrawMl(2);/*顯示下拉菜單3*/caseUP:/*上光標(biāo)鍵的操作限制*/{if(textx==3)textx=23;textx--;gotoxy(texty,textx);}break;caseDOWN:/*下光標(biāo)鍵的操作限制*/{if(textx==23)textx=3;textx++;gotoxy(texty,textx);}break;caseLEFT:/*左光標(biāo)鍵的操作限制*/{if(texty==2)texty=79;texty--;gotoxy(texty,textx);}break;caseBackspace:/*擦除鍵的設(shè)置*/{if(texty==2&&textx==3)continue;else{if(texty!=2)texty--;/*擦除鍵的細(xì)微環(huán)節(jié)問題,先擦去東西,然后光標(biāo)還要往后退一格*/elseif(texty==2){texty=78;textx--;}gotoxy(texty,textx);printf("");gotoxy(texty,textx);}}break;/*endcase0xe08*/caseRIGHT:/*右光標(biāo)鍵的操作限制*/{if(texty==79)texty=2;texty++;gotoxy(texty,textx);}break;caseSPACE:/*空格鍵的操作*/{if(texty==79)continue;else{gotoxy(texty,textx);/*空格的細(xì)微環(huán)節(jié)操作*/printf("");texty++;gotoxy(texty,textx);}}break;caseENTER:/*回車的限制操作*/{if(textx==23)continue;textx++;texty=2;gotoxy(texty,textx);}break;default:/*非限制鍵的結(jié)果*/{if(texty==79&&textx==23)/*到達(dá)最終就不再輸出*/continue;elseif(texty==79&&textx!=23)/*到行的最終*/{textx++;texty=2;}gotoxy(texty,textx);/*輸出結(jié)果*/printf("%c",key);if(texty==79)/*假如texty==79就不執(zhí)行*/continue;else/*假如沒到行尾就接著執(zhí)行,使光標(biāo)向前移動一位*/texty++;}}}/*大循環(huán)的大括號*/}/*畫邊框函數(shù)*/voidDrawFrame(intl,intu,intr,intd,inttcolor,intbcolor){textbackground(bcolor);/*背景顏色*/textcolor(bcolor);/*文本顏色*/for(i=l;i<=r;i++)/*輸出背景區(qū)域*/{for(j=u;j<=d;j++){gotoxy(i,j);printf("%c",219);/*輸出背景字符*/}}textcolor(tcolor);/*邊框顏色*/for(i=u+1;i<d;i++)/*在背景區(qū)域內(nèi)輸出邊框線*/{gotoxy(l,i);cprintf("%c",179);/*垂直線*/gotoxy(r,i);cprintf("%c",179);}for(i=l+1;i<r;i++){gotoxy(i,u);cprintf("%c",196);/*水平線*/gotoxy(i,d);cprintf("%c",196);}gotoxy(l,u);cprintf("%c",218);/*左上角*/gotoxy(r,u);cprintf("%c",191);/*右上角*/gotoxy(l,d);cprintf("%c",192);/*左下角*/gotoxy(r,d);cprintf("%c",217);/*右下角*//*gettext(l+1,u+1,r-1,d-1,save1);*//*保存邊框內(nèi)區(qū)域*/}/*顯示詳細(xì)下拉選擇項目*/voidDrawMl(intn){gettext(1,1,80,25,save);/*保存被掩蓋的地方*/BlackText(n,1,ml[n].name);/*反選顯示主菜單*/DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);/*下拉菜單的邊框*/for(i=3;i<3+ml[n].n;i++)/*輸出所選菜單各選項*/{if(i==3)BlackText(n,i,ml[n].str[i-3]);/*默認(rèn)選中第一項*/elseRedText(n,i,ml[n].str[i-3]);/*其余各項首字符紅色顯示*/}gotoxy(79,1);MoveMl(n,3);/*菜單選項的限制*/}/*菜單選項的限制,n確定水平項,x確定下拉的選項*/voidMoveMl(intn,intx){intflag=1;while(flag){gotoxy(79,1);key=bioskey(0);/*接收按鍵*/gotoxy(79,1);switch(key){caseESC:/*退出循環(huán)*/puttext(1,1,80,25,save);/*復(fù)原打開菜單前的樣子*/flag=0;break;caseLEFT:/*移到左邊的選項*/puttext(1,1,80,25,save);/*復(fù)原打開菜單前的樣子*/if(n==0)/*往左移動越界的話移到最終一個選項*/DrawMl(2);elseDrawMl(n-1);flag=0;break;caseRIGHT:/*移動右邊的選項*/puttext(1,1,80,25,save);/*復(fù)原打開菜單前的樣子*/if(n==2)/*往右移動越界的話移到第一個選項*/DrawMl(0);elseDrawMl(n+1);flag=0;break;caseUP:/*詳細(xì)選項往上移動*/RedText(n,x,ml[n].str[x-3]);/*輸出紅色字體*/if(x==3)/*移到最上面再按上鍵,就移到最下面*/x=3+ml[n].n-1;elsex--;/*移動到新的要顯示的內(nèi)容*/BlackText(n,x,ml[n].str[x-3]);/*輸出黑色字體*/flag=1;break;caseDOWN:/*詳細(xì)選項往下移動*/RedText(n,x,ml[n].str[x-3]);if(x==(3+ml[n].n-1))/*移動到最底下再按下鍵就移到最上面*/x=3;elsex++;/*移動到新的要顯示的內(nèi)容*/BlackText(n,x,ml[n].str[x-3]);flag=1;break;caseENTER:puttext(1,1,80,25,save);/*復(fù)原打開菜單前的樣子*/Enter(n,x-3);/*菜單選項的詳細(xì)功能*/flag=0;break;}gotoxy(79,1);}}/*菜單選項的詳細(xì)功能*/voidEnter(intm,intn){switch(m){case0:switch(n)/*選擇了圖書菜單選項*/{case0:BookAdd();break;/*添加圖書*/case1:BookConsult();break;/*圖書查詢*/case2:BookDel();break;/*刪除一本圖書資料*/case3:BookBorrow();break;/*借書*/case4:BookReturn();break;/*還書*/case5:exit(0);break;}break;/*退出系統(tǒng)*/case1:switch(n)/*選擇了會員菜單選項*/{case0:MemberAdd();break;/*添加會員*/case1:MemberConsult();break;/*會員查詢*/case2:MemberDel();break;/*刪除一個會員資料*/case3:MemberBook();/*查詢某個會員所借圖書狀況*/}break;case2:switch(n)/*選擇了幫助菜單選項*/{case0:Help();break;case1:Ver();}}/*結(jié)束外switch*/}voidBookAdd(){FILE*fp;Bookconsultbook;fp=fopen("book.txt","rb");/*讀方式打開文件*/if(fp==NULL)fp=fopen("book.txt","wb");/*寫方式打開文件*/else/*假如有書就添加*/{fclose(fp);fp=fopen("book.txt","ab");/*追加方式打開文件*/}ClrScr();/*清屏*/printf("Intputnewbooknum:");/*逐個輸入新圖書的資料*/gets(consultbook.num);gotoxy(2,4);printf("Inputnewbookname:");gets();gotoxy(2,5);printf("Pleaseinputnewbook'sprice:");scanf("%d%*c",&consultbook.price);strcpy(consultbook.person,"");consultbook.yes=1;/*表示書存在未借出*/consultbook.next=NULL;fwrite(&consultbook,sizeof(Book),1,fp);/*塊寫*/fclose(fp);/*關(guān)閉文件*/ClrScr();}/*圖書查詢*/voidBookConsult(){FILE*fp;Bookconsultbook;charbookname[20];/*書名*/intflag=0,i=0;ClrScr();gotoxy(2,3);printf("Inputthebookname:");gets(bookname);/*輸入要查詢的圖書名*/fp=fopen("book.txt","rb");if(fp==NULL)/*沒找到文件*/{ClrScr();gotoxy(2,3);printf("Error!");fclose(fp);return;}elsewhile(!feof(fp))/*查詢圖書資料*/{fread(&consultbook,sizeof(Book),1,fp);if(strcmp(,bookname)==0)/*假如查找到*/{ClrScr();gotoxy(2,3+i*5);printf("Thisbook%sinformationasfollow:",);gotoxy(2,4+i*5);printf("Thisbooknumis%s",consultbook.num);gotoxy(2,5+i*5);printf("Thisbook'spriceis%d",consultbook.price);gotoxy(2,6+i*5);printf("Thisbook'sisbrowwedby%s",consultbook.person);gotoxy(2,7+i*5);printf("Thisbook'sstateis%d",consultbook.yes);i++;flag=1;/*查找數(shù)據(jù)標(biāo)記*/}}if(flag==0){ClrScr();gotoxy(2,3);printf("Nofoundthisbook");}fclose(fp);}/*刪除圖書資料*/voidBookDel(){FILE*fp;Book*head,*p,*q;charbookname[20];fp=fopen("book.txt","rb");/*讀方式打開文件*/if(fp==NULL)/*沒找到文件*/{gotoxy(2,3);printf("Error!");fclose(fp);return;}head=p=q=(Book*)malloc(sizeof(Book));/*將文件內(nèi)容放入鏈表*/fread(p,sizeof(Book),1,fp);/*讀第一條記錄*/while(!feof(fp)){q=p;p=(Book*)malloc(sizeof(Book));fread(p,sizeof(Book),1,fp);/*讀記錄*/q->next=p;/*新記錄插入到鏈表的尾*/}p->next=NULL;/*最終一個結(jié)點(diǎn)的后繼為空*/fclose(fp);ClrScr();printf("Inputthebookname:");gets(bookname);/*輸入圖書名*/p=head;while(p!=NULL)/*按名字查找要刪除的圖書*/{if(strcmp(p->name,bookname)==0)/*找到要刪除的圖書*/{if(p==head)/*假如是第一個結(jié)點(diǎn)*/head=head->next;elseq->next=p->next;/*不是第一個結(jié)點(diǎn)*/break;}q=p;/*指針后移*/p=p->next;}fp=fopen("book.txt","wb");/*刪除后從鏈表的頭起先重新保存*/while(head!=NULL){fwrite(head,sizeof(Book),1,fp);/*塊寫*/head=head->next;}fclose(fp);ClrScr();}/*借書*/voidBookBorrow(){FILE*fp;Bookconsultbook;Memberconsultmember;charbookname[20],membername[20];intflag=0,mflag=0;ClrScr();gotoxy(2,3);printf("Inputthemermbername:");gets(membername);/*輸入會員名*/if((fp=fopen("member.txt","rb"))==NULL)/*沒找到文件*/{gotoxy(3,3);printf("Cannotopenfile\n!");return;}elsewhile(!feof(fp))/*查詢會員資料*/{fread(&consultmember,sizeof(Member),1,fp);if(strcmp(,membername)==0){mflag=1;/*是會員標(biāo)記*/break;}}fclose(fp);if(mflag==0){gotoxy(2,4);printf("Younotisamember,pleasregister!");/*不是會員不能借書*/return;}gotoxy(3,5);printf("Inputthebookname:");gets(bookname);/*輸入圖書名*/ClrScr();if((fp=fopen("book.txt","rb+"))==NULL)/*沒找到文件*/{gotoxy(2,3);printf("Cannotopenfile\n!");return;}while(!feof(fp))/*查詢圖書資料*/{fread(&consultbook,sizeof(Book),1,fp);if(strcmp(,bookname)==0){if(consultbook.yes==0)/*圖書已經(jīng)借出的推斷*/{gotoxy(2,3);printf("Thisbookhasborrowed\n!");break;}else{consultbook.yes=0;/*作借出標(biāo)記*/strcpy(consultbook.person,membername);/*登記借書會員*/fseek(fp,-1L*sizeof(Book),1);/*從當(dāng)前位置前移一條記錄指針*/fwrite(&consultbook,sizeof(Book),1,fp);/*寫記錄*/gotoxy(2,3);printf("Borrowedsucc!");flag=1;/*借出書標(biāo)記*/break;}}}if(flag!=1){ClrScr();gotoxy(2,3);printf("Borrowedfail!\n");/*借書失敗*/}fclose(fp);}/*還書*/voidBookReturn(){FILE*fp;Bookconsultbook;charbookname[20];intflag=0;ClrScr();if((fp=fopen("book.txt","rb+"))==NULL)/*沒找到文件*/{gotoxy(2,3);printf("cannotopenfile\n!");return;}printf("Inputthebookname:");gets(bookname);/*輸入圖書名*/ClrScr();while(!feof(fp))/*查詢圖書資料*/{fread(&consultbook,sizeof(Book),1,fp);if(strcmp(,bookname)==0){if(consultbook.yes==0)/*圖書已經(jīng)借出的推斷*/{consultbook.yes=1;/*作圖書未借書標(biāo)記,表示已還書*/strcpy(consultbook.person,"");fseek(fp,-1L*sizeof(Book),1);fwrite(&consultbook,sizeof(Book),1,fp);gotoxy(2,3);printf("Returnbooksucc!");flag=1;break;}}}if(flag!=1)printf("Returnfail!\n");fclose(fp);}/*清除屏幕*/voidClrScr(){inti,j;puttext(2,3,78,23,c);/*剛起先已經(jīng)用gettext把藍(lán)色的一塊地方保存下來,現(xiàn)在再還原*/gotoxy(2,3);}/*會員注冊*/voidMemberAdd(){FILE*fp;Memberconsultmember;fp=fopen("member.txt","rb");if(fp==NULL)/*假如沒會員就新建*/fp=fopen("member.txt","wb");else/*假如有會員就添加*/{fclose(fp);fp=fopen("member.txt","ab");/*追加方式打開*/}ClrScr();gotoxy(2,3);printf("Intputnewmembername:");/*逐個輸入會員的資料*/gets();gotoxy(2,4);printf("Inputmembersex:");gets(consultmember.sex);gotoxy(2,5);printf("Pleaseinputmemberage:");scanf("%d%*c",&consultmember.age);fwrite(&consultmember,sizeof(Member),1,fp);/*寫入記錄*/fclose(fp);ClrScr();}/*查詢會員*/voidMemberConsult(){FILE*fp;Memberconsultmember;charmembername[20];intflag=0;ClrScr();gotoxy(2,3);printf("Inputthemembername:");/*輸入要查詢的會員名*/gets(membername);fp=fopen("member.txt","rb");if(fp==NULL)/*沒找到文件*/{ClrScr();gotoxy(2,3);printf("Error!");fclose(fp);return;}while(!feof(fp))/*查詢會員資料*/{fread(&consultmember,sizeof(Member),1,fp);if(strcmp(,membername)==0)/*比較*/{ClrScr();gotoxy(2,3);printf("Thismember%sinformationasfollow:",);gotoxy(2,4);printf("Thismember'sexis%s",consultmember.sex);gotoxy(2,5);printf("Thismember'sageis%d",consultmember.age);flag=1;break;}}if(flag==0){ClrScr();gotoxy(2,3);printf("Nofoundthismember!");}fclose(fp);}/*刪除會員資料*/voidMemberDel(){FILE*fp;Member*head,*p,*q;charmembername[20];fp=fopen("member.txt","rb");if(fp==NULL)/*沒找到文件*/{gotoxy(2,3);printf("Error!");fclose(fp);return;}head=p=q=(Member*)malloc(sizeof(Member));/*將文件內(nèi)容放入鏈表*/fread(p,sizeof(Member),1,fp);while(!feof(fp)){q=p;p=(Member*)malloc(sizeof(Member));fread(p,sizeof(Member),1,fp);/*讀記錄*/q->next=p;/*鏈入到鏈表的尾部*/}p->next=NULL;fclose(fp);ClrScr();printf("Inputthemembername:");/*輸入會員名*/gets(membername);p=head;while(p!=NULL)/*按名字查找要刪除的書*/{if(strcmp(p->name,membername)==0)/*查找會員*/{if(p==head)hea

溫馨提示

  • 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

提交評論