《C語言程序設(shè)計(jì)實(shí)踐》課程報(bào)告_第1頁
《C語言程序設(shè)計(jì)實(shí)踐》課程報(bào)告_第2頁
《C語言程序設(shè)計(jì)實(shí)踐》課程報(bào)告_第3頁
《C語言程序設(shè)計(jì)實(shí)踐》課程報(bào)告_第4頁
《C語言程序設(shè)計(jì)實(shí)踐》課程報(bào)告_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

3、塊調(diào)用關(guān)系,進(jìn)一步完善模塊函數(shù)細(xì)節(jié)(函數(shù)名、參數(shù)、返回值等)(3)實(shí)現(xiàn)過程 要求學(xué)生養(yǎng)成良好的編碼習(xí)慣、完成各個(gè)模塊并進(jìn)行測試,最終完成系統(tǒng)整體測試;(4)總結(jié)階段 按照要求完成系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)報(bào)告,并進(jìn)行總結(jié)、答辯。成績評定報(bào)告撰寫情況(30分)系統(tǒng)完成情況(30分)答辯情況(40分)總分內(nèi)容20分規(guī)范程度5分程序測試5分基本功能20分?jǐn)U展功能10分自述情況10分答辯情況30分成績評定教師: 24 1. 需求分析經(jīng)過大一上學(xué)期的理論學(xué)習(xí),在基礎(chǔ)實(shí)驗(yàn)的基礎(chǔ)上,本學(xué)期我們繼續(xù)開設(shè)了c語言程序設(shè)計(jì)實(shí)踐課。課程要求我們對已經(jīng)學(xué)習(xí)的基礎(chǔ)實(shí)驗(yàn)進(jìn)行整合與銜接處理,并最終形成一個(gè)系統(tǒng)性質(zhì)的規(guī)模較大的程序。本次

4、課程設(shè)計(jì)要求我們達(dá)到能獨(dú)立完成一個(gè)圖書管理系統(tǒng),完成后要求實(shí)現(xiàn)的功能有對圖書信息的錄入、刪除、修改,瀏覽(即輸出), 按某種方式查詢(要求至少一種查詢方式),按某種方式排序(要求至少一種排序方式)。當(dāng)然,我們可以根據(jù)自己的能力對系統(tǒng)進(jìn)行完善性的拓展,例如自己加入簡單的權(quán)限處理,統(tǒng)計(jì)功能,模糊查詢等,甚至可以拓展為圖書借閱系統(tǒng)。通過整個(gè)程序的開發(fā)過程,最終使我們掌握利用計(jì)算機(jī)解決實(shí)際問題的基本方法,熟悉c語言開發(fā)的全過程,提高綜合應(yīng)用c語言的能力、編程和調(diào)試能力,為學(xué)習(xí)計(jì)算機(jī)后續(xù)課程打好專業(yè)基礎(chǔ)。 2. 概要設(shè)計(jì)1. 系統(tǒng)采用的是結(jié)構(gòu)數(shù)組數(shù)據(jù)系統(tǒng),用于實(shí)現(xiàn)圖書信息的存放,修改,排序等功能。 用二

5、進(jìn)制文件保存已寫入的信息。2. 模塊劃分:1 void addnewbook圖書信息錄入系統(tǒng)2 void rprint圖書信息瀏覽系統(tǒng)3 void querybook圖書信息查詢系統(tǒng):void numnode1-書籍編號查找 .2-書名void namenode查找.3-void writer作者查找.4-void press出版社查找.5-void fuzzy模糊查找.4 void paixu圖書信息排序系統(tǒng):1-價(jià)格排序2-時(shí)間排序5 voide xiugai圖書信息修改系統(tǒng)6 void shanchu圖書信息刪除系統(tǒng) 7 圖書信息統(tǒng)計(jì)系統(tǒng):1-void sorttongji書籍類別統(tǒng)計(jì).

6、2-void kuno庫存低于標(biāo)準(zhǔn)統(tǒng)計(jì)3. 程序框架1 進(jìn)行錄入圖書信息2 錄入后進(jìn)行瀏覽系統(tǒng)3 然后根據(jù)需要分別進(jìn)行查詢,排序,修改,刪除,統(tǒng)計(jì)功能3. 詳細(xì)設(shè)計(jì):1. 定義圖書結(jié)構(gòu):typedef struct booklong num;/書的序號char namemax;/書名char timemax;/出版時(shí)間char writermax;double price;char pressmax;/出版社 char sortmax;int kucun;/庫存量book;2. 圖書錄入系統(tǒng):void addnewbook(file *fp)/*添加書籍system(cls);int a;if

7、(fp=fopen(圖書信息.txt,a+)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);book newbook;printf(-1代表結(jié)束); while(a!=-1)printf(輸入書籍編號:); scanf(%ld,&newbook.num);printf(輸入書名:);scanf(%s,);printf(輸入出版時(shí)間:);scanf(%s,newbook.time);printf(輸入作者:);scanf(%s,newbook.writer);printf(輸入價(jià)格:);scanf(%lf,&newbook.price);prin

8、tf(輸入出版社:);scanf(%s,newbook.press);printf(輸入書籍種類:);scanf(%s,newbook.sort);printf(輸入庫存量:); scanf(%d,&newbook.kucun); fwrite(&newbook,size,1,fp);scanf(%d,&a);fclose(fp);3. 圖書瀏覽系統(tǒng)void rprint(file *fp)/圖書信息瀏覽system(cls);if(fp=fopen(圖書信息.txt,r+)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);book log;printf(書籍編號 書名

9、 出版時(shí)間 作者 價(jià)格 出版社 種類 庫存量 n);while(!feof(fp)fread(&log,sizeof(book),1,fp);printf(%8ld %s %6s %10s %.2lf %s %s %d n,log.num,,log.time,log.writer,log.price,log.press ,log.sort,log.kucun);4. 圖書查詢系統(tǒng)一按編號查找void numnode(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);long num;int

10、i=0;book chaxun;printf(enter num:);scanf(%ld,&num);while(!feof(fp) fread(&chaxun,size,1,fp); if(num=chaxun.num)printf(%ldt%st%st%st,chaxun.num,,chaxun.time,chaxun.writer);printf(%.2lft%st%dn,chaxun.price,chaxun.sort,chaxun.kucun); i=1; if(i!=1)printf(對不起,沒有你想要查找的書籍。n);fclose(fp);二按書名查找voi

11、d namenode(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);int i=0;char namemax;book chaxun;printf(enter name:);scanf(%s,name);while(!feof(fp)fread(&chaxun,size,1,fp);if(strcmp(name,)=0)printf(%ldt%st%st%st%.2lft%st%dn,chaxun.num,,chaxun.time,chaxun.writer,

12、chaxun.price,chaxun.sort,chaxun.kucun);i=1;if(i!=1)printf(對不起,沒有你想要查找的書籍。n);fclose(fp);三按作者名查找void writernode(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);int i=0;char writermax;book chaxun;printf(enter writer:);scanf(%s,writer);while(!feof(fp)fread(&chaxun,size,1,fp);if(strc

13、mp(writer,chaxun.writer)=0)printf(%ldt%st%st%st%.2lft%st%dn,chaxun.num,,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);i=1;if(i!=1)printf(對不起,沒有你想要查找的書籍。n);fclose(fp);四按出版社查找void pressnode(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);int i=0;char

14、pressmax;book chaxun;printf(enter press:);scanf(%s,press);while(!feof(fp)fread(&chaxun,size,1,fp);if(strcmp(press,chaxun.press)=0)printf(%ldt%st%st%st%.2lft%st%dn,chaxun.num,,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);i=1;if(i!=1)printf(對不起,沒有你想要查找的書籍。n);fclose(fp);五

15、模糊查詢void fuzzy(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);int k=0;char zifumax;book chaxun;printf(輸入關(guān)鍵字:);getchar();int i,j;for(i=0;(zifui=getchar()!=n;i+);zifui=0;while(!feof(fp)fread(&chaxun,size,1,fp);for(i=0;zifui!=0;i+)for(j=0;chaxun.writerj!=0;j+)if(zifui=chaxun.write

16、rj)printf(%ldt%st%st%st%.2lft%st%dn,chaxun.num,,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);k=1;if(k!=1)printf(對不起,沒有你想要查找的書籍。n);fclose(fp);4. 排序功能一 按價(jià)錢排序void price(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);int n;int i=1,j;n=tongji(fp);book

17、t;book paixumax;while(!feof(fp)fread(&paixui,size,1,fp);i+;for(i=1;in;i+)for(j=1;jpaixuj+1.price)t=paixuj;paixuj=paixuj+1;paixuj+1=t;for(i=1;in;i+)printf(%ldt%st%st%st%.2lft%st%dn,paixui.num,,paixui.time,paixui.writer,paixui.price,paixui.sort,paixui.kucun);fclose(fp);二按時(shí)間排序void time(file

18、*fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);int n;int i=1,j;n=tongji(fp);book paixumax,t;while(!feof(fp)fread(&paixui,size,1,fp);i+;for(i=1;i=n;i+)for(j=1;j0)t=paixuj;paixuj=paixuj+1;paixuj+1=t;for(i=1;in;i+)printf(%ldt%st%st%st%.2lft%st%dn,paixui.num,,paixui.time,paix

19、ui.writer,paixui.price,paixui.sort,paixui.kucun);fclose(fp);三排序選擇void paixu(file *fp)int choice=-1;printf(1-價(jià)格排序n2-時(shí)間排序n);scanf(%d,&choice); switch(choice)case 1:price(fp);break;case 2:time(fp);break;default:printf(errorn);break;5. 修改功能void bookxiugai(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打

20、開圖書信息管理系統(tǒng)!n);exit(0);file *t;int n=0;int i=0;if(t=fopen(圖書信息.txt,r+)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);long num;int choice;book xiugai;book duqu;printf(輸入要修改書的編號:);scanf(%ld,&num);while(!feof(t)i+;fread(&duqu,size,1,t);if(num=duqu.num)printf(請輸入修改后的書籍信息:n); printf(請輸入書籍編號:);scanf(%d,&xiugai.num);p

21、rintf(請輸入書名:);scanf(%s,);printf(請輸入作者:);scanf(%s,xiugai.writer);printf(請輸入出版時(shí)間:);scanf(%s,xiugai.time);printf(請輸入價(jià)格:);scanf(%lf,&xiugai.price);printf(請輸入出版社:);scanf(%s,xiugai.press);printf(請輸入書籍種類:);scanf(%s,xiugai.sort);printf(請輸入庫存量:);scanf(%d,&xiugai.kucun); n=i; fseek(t,(n-1)*size,0);

22、printf(1-確認(rèn)修改。n其他數(shù)字-取消修改。);scanf(%d,&choice);if(choice=1)fwrite(&xiugai,size,1,t);printf(修改成功!n);6. 刪除功能void bookshanchu(file *fp)file *t;if(fp=fopen(圖書信息.txt,r)=null) printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);int i=1,n;long num;n=tongji(fp);book duqumax;printf(請輸入書籍編號:);scanf(%ld,&num);while(!feof(fp)fread(&d

23、uqui,size,1,fp);i+;if(t=fopen(圖書信息.txt,w)=null) printf(不能打開圖書信息管理系統(tǒng)!n);exit(0);for(i=1;ikcun.kucun)printf(%ldt%st%st%st%.2lft%st%dn,kcun.num,,kcun.time,kcun.writer,kcun.price,kcun.sort,kcun.kucun);fclose(fp);三統(tǒng)計(jì)選擇函數(shù)void tongjixinxi(file *fp)if(fp=fopen(圖書信息.txt,r)=null)printf(不能打開圖書信息管理系統(tǒng)!n);exit(0); int choice; printf(1-書籍類別統(tǒng)計(jì).n2-庫存低于標(biāo)準(zhǔn)統(tǒng)計(jì).n); scanf(%d,&choice); switch(choice) case 1:sorttongji(fp);break; case 2:kuno(fp);break; default:printf(errorn);break; 4.調(diào)試分析: 問題一 界面不美觀,進(jìn)入一次系統(tǒng)只能進(jìn)行一項(xiàng)操作的問題解決方法 通過將主菜單與清屏函數(shù)(system(“cls”)一起

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論