C語(yǔ)言圖書(shū)管理系統(tǒng)代碼和課程報(bào)告書(shū)_第1頁(yè)
C語(yǔ)言圖書(shū)管理系統(tǒng)代碼和課程報(bào)告書(shū)_第2頁(yè)
C語(yǔ)言圖書(shū)管理系統(tǒng)代碼和課程報(bào)告書(shū)_第3頁(yè)
C語(yǔ)言圖書(shū)管理系統(tǒng)代碼和課程報(bào)告書(shū)_第4頁(yè)
C語(yǔ)言圖書(shū)管理系統(tǒng)代碼和課程報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 課 程 報(bào) 告課 程 名 稱(chēng): 程序設(shè)計(jì)實(shí)踐 專(zhuān) 業(yè) 班 級(jí) : 學(xué) 生 姓 名 : 學(xué) 號(hào) : 任 課 教 師 : 學(xué) 期 : 2011-2012學(xué)年第二學(xué)期 課程報(bào)告任務(wù)書(shū)題 目圖書(shū)信息管理系統(tǒng)主要內(nèi)容開(kāi)發(fā)一個(gè)圖書(shū)信息管理系統(tǒng),圖書(shū)信息包括:圖書(shū)編號(hào)、書(shū)名、作者、出版社、類(lèi)別、出版時(shí)間、價(jià)格等基本信息(也可以根據(jù)自己情況進(jìn)行擴(kuò)充,比如是否借出、庫(kù)存量等)。使之能提供以下基本功能:(1)圖書(shū)信息錄入功能(圖書(shū)信息用文件保存)輸入v(2)圖書(shū)信息瀏覽功能輸出(3)查詢(xún)功能(至少一種查詢(xún)方式)、排序功能(至少一種排序方式): l 按書(shū)名查詢(xún) 按作者名查詢(xún) 按照價(jià)錢(qián)排序 按出版時(shí)間排序等等(4)

2、圖書(shū)信息的刪除與修改擴(kuò)展功能:可以按照自己的程度進(jìn)行擴(kuò)展。比如(1)簡(jiǎn)單的權(quán)限處理 (2)報(bào)表打印功能(3)甚至根據(jù)自己情況,可以加上學(xué)生信息,并擴(kuò)充為圖書(shū)借閱系統(tǒng)。(4)模糊查詢(xún) (5)綜合查詢(xún) (6)統(tǒng)計(jì)功能 比如統(tǒng)計(jì)處某一類(lèi)別的圖書(shū)信息 或 篩選出小于指定數(shù)量庫(kù)存的圖書(shū)信息等等,總之,可以根據(jù)自己需求進(jìn)行分析功能。任務(wù)要求一、提交材料應(yīng)包括:(1)系統(tǒng)源代碼 (2)課程報(bào)告二、整個(gè)設(shè)計(jì)過(guò)程具體要求(1)需求分析 要求學(xué)生對(duì)案例系統(tǒng)進(jìn)行分析,設(shè)計(jì)出需要完成的功能,完善各個(gè)模塊的調(diào)用關(guān)系;(2)設(shè)計(jì)過(guò)程 要求學(xué)生進(jìn)一步明確各模塊調(diào)用關(guān)系,進(jìn)一步完善模塊函數(shù)細(xì)節(jié)(函數(shù)名、參數(shù)、返回值等)(3)

3、實(shí)現(xiàn)過(guò)程 要求學(xué)生養(yǎng)成良好的編碼習(xí)慣、完成各個(gè)模塊并進(jìn)行測(cè)試,最終完成系統(tǒng)整體測(cè)試;(4)總結(jié)階段 按照要求完成系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)報(bào)告,并進(jìn)行總結(jié)、答辯。成績(jī)?cè)u(píng)定報(bào)告撰寫(xiě)情況(30分)系統(tǒng)完成情況(30分)答辯情況(40分)總分內(nèi)容20分規(guī)范程度5分程序測(cè)試5分基本功能20分?jǐn)U展功能10分自述情況10分答辯情況30分成績(jī)?cè)u(píng)定教師: 21圖書(shū)錄入圖書(shū)瀏覽圖書(shū)查詢(xún)修改刪除圖書(shū)借閱圖書(shū)歸還圖書(shū)圖書(shū)信息管理系統(tǒng)借閱查詢(xún)1 需求分析2 概要設(shè)計(jì)可適當(dāng)參考以下提示: 數(shù)據(jù)結(jié)構(gòu) 模塊劃分 程序總體框架 分為七個(gè)模塊!都是通過(guò)自定義函數(shù)完成!圖書(shū)刪除修改,圖書(shū)借閱與歸還都是通過(guò)編號(hào)完成,所以圖書(shū)編號(hào)在我的程序里邊

4、是唯一的!1 圖書(shū)錄入可以錄入圖書(shū)名,作者,出版社,出版日期,價(jià)格!錄入圖書(shū)編號(hào)時(shí)函數(shù)就會(huì)判斷此編號(hào)是否存在,若存在不能成功錄入!2 圖書(shū)瀏覽可以瀏覽全部圖書(shū)!3 圖書(shū)查詢(xún)提供按圖書(shū)編號(hào)模糊查詢(xún),按圖書(shū)名關(guān)鍵字查詢(xún),按圖書(shū)編號(hào)精確查詢(xún),按圖書(shū)名精確查詢(xún)!模糊查詢(xún)和關(guān)鍵字查詢(xún)事通過(guò)比價(jià)字符串的相似度而實(shí)現(xiàn)的!4 修改刪除圖書(shū)可以通過(guò)圖書(shū)查詢(xún)來(lái)查詢(xún)操作的圖書(shū)編號(hào),通過(guò)編號(hào)操作!函數(shù)會(huì)提示用戶(hù)是否調(diào)用圖書(shū)查詢(xún)來(lái)找到自己想要操作的圖書(shū)的編號(hào)。如果某一本圖書(shū)已經(jīng)被借閱那么用戶(hù)就不能刪除該圖書(shū)!5 借閱圖書(shū)通過(guò)學(xué)號(hào)和圖書(shū)編號(hào)進(jìn)行借閱!如果該學(xué)號(hào)是第一次借閱那么會(huì)提示用戶(hù)輸入自己的姓名,并存入student

5、.txt,方便以后借閱與歸還!6 歸還圖書(shū)先提供學(xué)號(hào),然后程序會(huì)輸出該學(xué)號(hào)借閱的所有圖書(shū),然后再通過(guò)編號(hào)歸還!7 借閱查詢(xún)可查詢(xún)某個(gè)學(xué)生已借但未歸還的圖書(shū)!3 詳細(xì)設(shè)計(jì)分為七個(gè)模塊!都是通過(guò)自定義函數(shù)完成!主函數(shù)為:main()if(fp=fopen(d:book.txt,rb+)=NULL)printf(在d盤(pán)根目錄下沒(méi)有找到儲(chǔ)存圖書(shū)信息的book.txt文件n請(qǐng)選擇 1-手動(dòng)導(dǎo)入! 2-創(chuàng)建此文件n);scanf(%d,&xuan);switch(xuan)case 2:if(fp=fopen(d:book.txt,wb+)!=NULL) printf(創(chuàng)建成功nn);break;case

6、 1:printf(請(qǐng)把名為book.txt的文件復(fù)制到d盤(pán)根目錄下nn);if(fpj=fopen(d:jieyue.txt,rb+)=NULL)printf(在d盤(pán)根目錄下沒(méi)有找到儲(chǔ)存借閱信息的jieyue.txt文件n請(qǐng)選擇 1-手動(dòng)導(dǎo)入! 2-創(chuàng)建此文件n);scanf(%d,&xuan);switch(xuan)case 2:if(fpj=fopen(d:jieyue.txt,wb+)!=NULL) printf(創(chuàng)建成功nn);break;case 1:printf(請(qǐng)把名為jieyue.txt的文件復(fù)制到d盤(pán)根目錄下nn);if(fps=fopen(d:student.txt,r

7、b+)=NULL)printf(在d盤(pán)根目錄下沒(méi)有找到儲(chǔ)存學(xué)生信息的student.txt文件n請(qǐng)選擇 1-手動(dòng)導(dǎo)入! 2-創(chuàng)建此文件n);scanf(%d,&xuan);switch(xuan)case 2:if(fps=fopen(d:student.txt,wb+)!=NULL) printf(創(chuàng)建成功nn);break;case 1:printf(請(qǐng)把名為student.txt的文件復(fù)制到d盤(pán)根目錄下nn);menu();printf(n 代碼:);scanf(%d,&xuan);while(xuan=1|xuan=2|xuan=3|xuan=4|xuan=5|xuan=6|xuan=

8、7)fp=fopen(d:book.txt,rb+);fps=fopen(d:student.txt,rb+);fpj=fopen(d:jieyue.txt,rb+);switch(xuan)case 0:break;case 1:end();break;case 2:print();break;case 3:find();break;case 4:del();break;case 5:lend();break;case 6:huan();break;case 7:cha();break;fclose(fp);fclose(fpj);fclose(fps);menu();printf(n 代碼

9、:);scanf(%d,&xuan);然后通過(guò)函數(shù)調(diào)用實(shí)習(xí)以下功能1 圖書(shū)錄入可以錄入圖書(shū)名,作者,出版社,出版日期,價(jià)格!函數(shù)名為“void end()”。2 圖書(shū)瀏覽可以瀏覽全部圖書(shū)!函數(shù)名為“void print()”。3 圖書(shū)查詢(xún)提供按圖書(shū)編號(hào)模糊查詢(xún),按圖書(shū)名關(guān)鍵字查詢(xún),按圖書(shū)編號(hào)精確查詢(xún),按圖書(shū)名精確查詢(xún)!函數(shù)名為“void find()”。4 修改刪除圖書(shū)可以通過(guò)圖書(shū)查詢(xún)來(lái)查詢(xún)操作的圖書(shū)編號(hào),通過(guò)編號(hào)操作!函數(shù)名為“viod del()”。5 借閱圖書(shū)通過(guò)學(xué)好和圖書(shū)編號(hào)進(jìn)行借閱!函數(shù)名為“void lend()”。6 歸還圖書(shū)先提供學(xué)號(hào),然后程序會(huì)輸出該學(xué)號(hào)借閱的所有圖書(shū),然后再

10、通過(guò)書(shū)號(hào)歸還!函數(shù)名為“void huan()”。7 借閱查詢(xún)可查詢(xún)某個(gè)學(xué)生已借但未歸還的圖書(shū)!函數(shù)名為“void cha()”。4 調(diào)試分析調(diào)試程序時(shí)主要問(wèn)題出現(xiàn)在文件指針的移動(dòng),我圖書(shū)和借閱信息的刪除!因?yàn)槲艺麄€(gè)程序都是通過(guò)圖書(shū)編號(hào)來(lái)完成操作,所以我必須保證圖書(shū)編號(hào)不被重復(fù),用戶(hù)修改圖書(shū)編號(hào)和刪除時(shí)我都要考慮這本書(shū)書(shū)是否被借閱!解決第一個(gè)問(wèn)題就是利用fseek(),rewind()這兩個(gè)函數(shù)來(lái)控制指針。解決第二個(gè)問(wèn)題利用文件。比如刪除圖書(shū),我先把不用刪除的圖書(shū)寫(xiě)到另一個(gè)文件里,然后再以新建的方式打開(kāi)原文件,把圖書(shū)信息又寫(xiě)回來(lái)!5測(cè)試結(jié)果1.我用了三冊(cè)圖書(shū)信息(如下)書(shū)名編號(hào)作者出版日期價(jià)格

11、出版社類(lèi)別原始庫(kù)存English001Mary2011010118.2SouthpressLanguage1Math002Robert2011010212.3NorthpressNature2Chinese003Hans2011010330.3EastpressLanguage3和兩個(gè)同學(xué)(信息如下)來(lái)測(cè)試了這個(gè)系統(tǒng)姓名學(xué)號(hào)Wang201101Zhang201102輸入程序后通過(guò)圖書(shū)瀏覽可以看到已經(jīng)成功輸入2.圖書(shū)查詢(xún)提供按圖書(shū)編號(hào)模糊查詢(xún),按圖書(shū)名關(guān)鍵字查詢(xún),按圖書(shū)編號(hào)精確查詢(xún),按圖書(shū)名精確查詢(xún)!我這里用演示用圖書(shū)名關(guān)鍵字查詢(xún)!輸入“Eng”,程序就找出包含“Eng”的所有圖書(shū)! 3.修改刪

12、除圖書(shū),我這里演示把編號(hào)為002的圖書(shū)的價(jià)格修改為63.34.借閱歸還圖書(shū)都是通過(guò)編號(hào)完成!我這里演示wang同學(xué)借編號(hào)為001的圖書(shū)!6 課程心得總結(jié)剛開(kāi)始在做這個(gè)程序的時(shí)候沒(méi)有做需求分析,結(jié)果盲目的寫(xiě)沒(méi)有目的,得到了教訓(xùn)!寫(xiě)這個(gè)程序熟悉了很多以前學(xué)過(guò)的知識(shí),文件運(yùn)用能力有很大提高!明白了以前很多不知道的為什么,比如以前老師不建議用全局變量,但這次我用,遇到了不少麻煩!、很多同學(xué)在寫(xiě)程序的時(shí)候都不用F10調(diào)試程序,我覺(jué)得用F10調(diào)試程序?qū)ξ覀兒苡袔椭驗(yàn)檫@可以快速幫我們找到程序出現(xiàn)錯(cuò)誤的地方!由于我很多模塊都是通過(guò)編號(hào)完成的,所以在修改圖書(shū)的編號(hào)時(shí)必然會(huì)給借閱造成麻煩,這給我?guī)?lái)不少麻煩,

13、不過(guò)我還是解決了!代碼#include#include#includeFILE *fp,*fpj,*fps;int i,xuan;typedef struct bookchar name10;char num10;char writer10;int date;char press10;float price;char leibie10;int kucun;int jiechu;bo;typedef struct studentchar name10;char num10;int jie;st;typedef struct jieyuechar snum10;char bnum10;ji;voi

14、d menu()/菜單printf(nn);for(i=0;i80;i+)printf(#);printf(nn);printf(tt1-圖書(shū)錄入ttt);printf(2-圖書(shū)瀏覽nn);printf(tt3-圖書(shū)查詢(xún)ttt);printf(4-修改刪除圖書(shū)nn);printf(tt5-借閱圖書(shū)ttt);printf(6-歸還圖書(shū)nn);printf(tt7-借閱查詢(xún)tttn);printf(ntttt輸入其他任意鍵退出n);printf(nn);for(i=0;i80;i+)printf(#);printf(nn);void end()/錄入圖書(shū)bo boo,booq;printf(請(qǐng)輸入

15、圖書(shū)名(最多十個(gè)字符):);scanf(%s,);doi=1;printf(請(qǐng)輸入圖書(shū)編號(hào)(最多十個(gè)字符):);scanf(%s,boo.num);fread(&booq,sizeof(bo),1,fp);while(!feof(fp)if(strcmp(booq.num,boo.num)=0)printf(n該編號(hào)已存在請(qǐng)重新輸入nn);i=0;break;fread(&booq,sizeof(bo),1,fp);rewind(fp);while(i=0);printf(請(qǐng)輸入圖書(shū)作者(最多十個(gè)字符):);scanf(%s,boo.writer);printf(請(qǐng)輸入圖書(shū)出版

16、日期(例如2001年5月3日出版則輸入20010503):);scanf(%d,&boo.date);printf(請(qǐng)輸入圖書(shū)價(jià)格:);scanf(%f,&boo.price);printf(請(qǐng)輸入圖書(shū)出版社(最多十個(gè)字符):);scanf(%s,boo.press);printf(請(qǐng)輸入圖書(shū)類(lèi)別(最多十個(gè)字符):);scanf(%s,boo.leibie);printf(請(qǐng)輸入圖書(shū)入庫(kù)數(shù):);scanf(%d,&boo.kucun);boo.jiechu=0;getchar();fseek(fp,0,2);fwrite(&boo,sizeof(bo),1,fp);printf(n錄入成功!回

17、到主菜單);system(pause);void print()/瀏覽圖書(shū)bo boo;printf(書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);fread(&boo,sizeof(bo),1,fp);while(feof(fp)=0)printf(%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4dn,,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);fread(&boo,sizeof(bo),1,fp);printf(n瀏覽圖書(shū)完畢!回

18、到主菜單);system(pause);int dui(char *p,char *p1)/對(duì)比兩個(gè)字符串的相關(guān)度(用于精確搜索)int bao=0,fan=1;for(i=0;i(int)strlen(p1)-bao+1)return 0;elsefor(i=0;i(int)strlen(p);i+)if(pi!=p1bao+i)fan=0;return fan;void find()/查詢(xún)圖書(shū)char hao10;int fan=1;int bian=1;bo boo;printf(請(qǐng)選擇查詢(xún)類(lèi)型:nntt1-按圖書(shū)編號(hào)模糊查詢(xún) 2-按圖書(shū)名關(guān)鍵字查詢(xún)n);printf( ntt3-按圖書(shū)

19、編號(hào)精確查詢(xún) 4-按圖書(shū)名精確查詢(xún)nn代碼:);scanf(%d,&xuan);if(xuan=1)printf(請(qǐng)輸入編號(hào)(最多十個(gè)字符):);scanf(%s,hao);printf(序號(hào) 書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);fread(&boo,sizeof(bo),1,fp);while(!feof(fp)fan=dui(hao,boo.num);if(fan=1)printf(%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4dn,bian,,boo.num,boo.writer,boo.price,boo.

20、press,boo.leibie,boo.kucun,boo.jiechu);bian+;fread(&boo,sizeof(bo),1,fp);else if(xuan=2)printf(請(qǐng)輸入圖書(shū)名關(guān)鍵字(最多十個(gè)字符):);scanf(%s,hao);printf(序號(hào) 書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);fread(&boo,sizeof(bo),1,fp);while(!feof(fp)fan=dui(hao,);if(fan=1)printf(%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4dn,bian

21、,,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);fread(&boo,sizeof(bo),1,fp);else if(xuan=4)printf(請(qǐng)輸入圖書(shū)名(最多十個(gè)字符):);scanf(%s,hao);printf(序號(hào) 書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);while(!feof(fp)if(strcmp(hao,)=0)printf(%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4dn,bia

22、n,,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);fread(&boo,sizeof(bo),1,fp);else if(xuan=3)printf(請(qǐng)輸入圖書(shū)編號(hào)(最多十個(gè)字符):);scanf(%s,hao);printf(序號(hào) 書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);while(!feof(fp)if(strcmp(hao,boo.num)=0)printf(%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4dn,bi

23、an,,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);fread(&boo,sizeof(bo),1,fp);elseprintf(輸入錯(cuò)誤,正在退出!);system(pause);return;printf(n查詢(xún)圖書(shū)完畢! );system(pause);void del()/修改刪除圖書(shū)FILE *p;ji jie;int j=0;char num10;bo boo,booq;int xu;char or;char cha10;printf(n刪除修改圖書(shū)只能通過(guò)圖書(shū)編號(hào)來(lái)

24、完成!n是否調(diào)用圖書(shū)查詢(xún)來(lái)查詢(xún)你要操作的圖書(shū)編號(hào)(Y/N)n);getchar();scanf(%c,&or);if(or=Y|or=y)find();rewind(fp);printf(n請(qǐng)輸入你要操作的圖書(shū)的編號(hào)(如果輸入錯(cuò)誤的編號(hào),將不做任何操作):);scanf(%s,cha);fread(&jie,sizeof(ji),1,fpj);while(!feof(fpj)if(strcmp(jie.bnum,cha)=0)printf(n這本書(shū)已有人借閱,不能操作!n正在退出 );system(pause);return;fread(&jie,sizeof(ji),1,fpj);print

25、f(nn1-刪除圖書(shū) 2-修改圖書(shū)nn);printf(請(qǐng)選擇操作類(lèi)型:);scanf(%d,&xuan);fread(&boo,sizeof(bo),1,fp);p=fopen(d:books1.txt,wb+);while(!feof(fp)j+;if(strcmp(boo.num,cha)=0)if(xuan=2)printf(nn1-書(shū)名 2-編號(hào) 3-作者 4-價(jià)格 5-出版社 6-類(lèi)別 7-庫(kù)存nn);printf(請(qǐng)選擇要修改的項(xiàng)目:);scanf(%d,&xu);if(xu=1)printf(你要把%s改為:,);scanf(%s,);else

26、if(xu=2)doi=1;printf(你要把%s改為:,boo.num);scanf(%s,num);rewind(fp);fread(&booq,sizeof(bo),1,fp);while(!feof(fp)if(strcmp(booq.num,num)=0)printf(n該編號(hào)已存在請(qǐng)重新輸入nn);i=0;break;fread(&booq,sizeof(bo),1,fp);while(i=0);rewind(fp);for(i=0;ij;i+)fread(&boo,sizeof(bo),1,fp);strcpy(boo.num,num);else if(xu=3)printf(

27、你要把%s改為:,boo.writer);scanf(%s,boo.writer);else if(xu=4)printf(你要把%.2f改為:,boo.price);scanf(%f,&boo.price);else if(xu=5)printf(你要把%s改為:,boo.press);scanf(%s,boo.press);else if(xu=6)printf(你要把%s改為:,boo.leibie);scanf(%s,boo.leibie);else if(xu=7)printf(你要把%d改為:,&boo.kucun);scanf(%d,&boo.kucun);fwrite(&boo

28、,sizeof(bo),1,p);elsefwrite(&boo,sizeof(bo),1,p);fread(&boo,sizeof(bo),1,fp);fclose(p);p=fopen(d:books1.txt,rb+);fclose(fp);fp=fopen(d:book.txt,wb+);fread(&boo,sizeof(bo),1,p);while(!feof(p)fwrite(&boo,sizeof(bo),1,fp);fread(&boo,sizeof(bo),1,p);fclose(fp);printf(操作成功 回到主菜單);system(pause);void lend(

29、)/借閱圖書(shū)bo boo;FILE *p;st stu;ji jie;int j=0;char or,num10,xnum10;printf(n借閱圖書(shū)只能通過(guò)圖書(shū)編號(hào)完成!n是否調(diào)用圖書(shū)查詢(xún)來(lái)查詢(xún)你要操作的圖書(shū)編號(hào)(Y/N)n);getchar();scanf(%c,&or);if(or=Y|or=y)find();printf(n請(qǐng)輸入你要借閱的圖書(shū)的編號(hào):);scanf(%s,num);fread(&boo,sizeof(bo),1,fp);while(!feof(fp)if(strcmp(num,boo.num)=0)j=1;break;fread(&boo,sizeof(bo),1,

30、fp);if(j=0)printf(n書(shū)庫(kù)沒(méi)有該圖書(shū) 正在退出n);system(pause);return;printf(n你需要借閱的圖書(shū)是:n);printf(書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);printf(%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4dn,,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);if(boo.kucun=boo.jiechu)printf(n該冊(cè)圖書(shū)已全部借出!正在退出n);system(p

31、ause);return;printf(n請(qǐng)輸入你的學(xué)號(hào):);scanf(%s,xnum);j=0;fread(&jie,sizeof(ji),1,fpj);while(!feof(fpj)if(strcmp(jie.bnum,num)=0)&(strcmp(jie.snum,xnum)=0)j=1;break;fread(&jie,sizeof(ji),1,fpj);if(j=1)printf(n你已經(jīng)借閱過(guò)該書(shū) 正在退出n);system(pause);return;fread(&stu,sizeof(st),1,fps);j=0;while(!feof(fps)if(strcmp(xnu

32、m,stu.num)=0)j=1;break;fread(&stu,sizeof(st),1,fps);if(j=0)printf(n你是第一次借閱圖書(shū),為了方便管理請(qǐng)輸入你的姓名:);scanf(%s,);strcpy(stu.num,xnum);stu.jie=1;fseek(fps,0,2);fwrite(&stu,sizeof(st),1,fps);elseif(stu.jie=5)/這里可以控制每個(gè)學(xué)生最多借幾本書(shū)printf(n你已經(jīng)借了5本書(shū),不能再借n);system(pause);return;p=fopen(d:jie.txt,wb+);rewind(fps

33、);fread(&stu,sizeof(st),1,fps);while(!feof(fps)if(strcmp(xnum,stu.num)=0)stu.jie+;fwrite(&stu,sizeof(st),1,p);fread(&stu,sizeof(st),1,fps);fclose(p);fclose(fps);p=fopen(d:jie.txt,rb+);fps=fopen(d:student.txt,wb+);fread(&stu,sizeof(st),1,p);while(!feof(p)fwrite(&stu,sizeof(st),1,fps);fread(&stu,sizeo

34、f(st),1,p);strcpy(jie.bnum,num);strcpy(jie.snum,xnum);fseek(fpj,0,2);fwrite(&jie,sizeof(ji),1,fpj);rewind(fp);p=fopen(d:jie.txt,wb+);fread(&boo,sizeof(bo),1,fp);while(!feof(fp)if(strcmp(num,boo.num)=0)boo.jiechu+;fwrite(&boo,sizeof(bo),1,p);fread(&boo,sizeof(bo),1,fp);fclose(p);p=fopen(d:jie.txt,rb+

35、);fclose(fp);fp=fopen(d:book.txt,wb+);fread(&boo,sizeof(bo),1,p);while(!feof(p)fwrite(&boo,sizeof(bo),1,fp);fread(&boo,sizeof(bo),1,p);printf(n借閱成功!回到主菜單);system(pause);void huan()/歸還圖書(shū)FILE *p;bo boo;ji jie;st stu;int j=0;char snum10,bnum10;i=0;printf(n請(qǐng)輸入你的學(xué)號(hào):);scanf(%s,snum);printf(n你借閱了以下圖書(shū)n);fre

36、ad(&jie,sizeof(ji),1,fpj);printf(書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);while(!feof(fpj)if(strcmp(jie.snum,snum)=0)fread(&boo,sizeof(bo),1,fp);while(!feof(fp)if(strcmp(jie.bnum,boo.num)=0)printf(%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4dn,,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo

37、.jiechu);j=1;fread(&boo,sizeof(bo),1,fp);fread(&jie,sizeof(ji),1,fpj);if(j=0)printf(n你沒(méi)有借閱任何圖書(shū)!nn正在退出);system(pause);return;rewind(fp);rewind(fpj);printf(n請(qǐng)輸入你歸還的圖書(shū)的編號(hào):);scanf(%s,bnum);fread(&jie,sizeof(jie),1,fpj);/改變jieyue.txt里的數(shù)據(jù)p=fopen(d:jie.txt,wb+);while(!feof(fpj)if(strcmp(jie.bnum,bnum)=0)&(

38、strcmp(jie.snum,snum)=0)i=1;else fwrite(&jie,sizeof(jie),1,p);fread(&jie,sizeof(jie),1,fpj);if(i=0)printf(n你沒(méi)有借過(guò)該圖書(shū)n正在退出);system(pause);return;fclose(p);fclose(fpj);p=fopen(d:jie.txt,rb+);fpj=fopen(d:jieyue.txt,wb+);fread(&jie,sizeof(ji),1,p);while(!feof(p)fwrite(&jie,sizeof(ji),1,fpj);fread(&jie,si

39、zeof(ji),1,p);fclose(p);/改變book.txt里的數(shù)據(jù)p=fopen(d:jie.txt,wb+);fread(&boo,sizeof(bo),1,fp);while(!feof(fp)if(strcmp(bnum,boo.num)=0)boo.jiechu-;fwrite(&boo,sizeof(bo),1,p);fread(&boo,sizeof(bo),1,fp);fclose(p);p=fopen(d:jie.txt,rb+);fclose(fp);fp=fopen(d:book.txt,wb+);fread(&boo,sizeof(bo),1,p);while

40、(!feof(p)fwrite(&boo,sizeof(bo),1,fp);fread(&boo,sizeof(bo),1,p);fclose(p);/改變student.txt里的數(shù)據(jù)p=fopen(d:jie.txt,wb+);rewind(fps);fread(&stu,sizeof(st),1,fps);while(!feof(fps)if(strcmp(snum,stu.num)=0)stu.jie-;fwrite(&stu,sizeof(st),1,p);fread(&stu,sizeof(st),1,fps);fclose(p);fclose(fps);p=fopen(d:jie

41、.txt,rb+);fps=fopen(d:student.txt,wb+);fread(&stu,sizeof(st),1,p);while(!feof(p)fwrite(&stu,sizeof(st),1,fps);fread(&stu,sizeof(st),1,p);printf(n歸還成功!回到主菜單);system(pause);void cha()/借閱查詢(xún)char num10;bo boo;ji jie;printf(n請(qǐng)輸入你的學(xué)號(hào):);scanf(%s,num);fread(&jie,sizeof(ji),1,fpj);printf(書(shū)名 編號(hào) 作者 價(jià)格 出版社 類(lèi)別 原始庫(kù)存 借出n);while(!feof(fpj)if(strcmp(jie.snum,num)=0)fread(&boo,sizeof(bo),1,fp);whi

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論