




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課 程 報 告課 程 名 稱: 程序設計實踐 專 業(yè) 班 級 : 信息類1006班 學 生 姓 名 : 杜 威 科 學 號 : 201046830622 任 課 教 師 : 徐 振 強 學 期 :2010-2011學年第二學期 課程報告任務書題 目圖書信息管理系統(tǒng)主要內(nèi)容開發(fā)一個圖書信息管理系統(tǒng),圖書信息包括:圖書編號、書名、作者、出版社、類別、出版時間、價格等基本信息(也可以根據(jù)自己情況進行擴充,比如是否借出、庫存量等)。使之能提供以下基本功能:(1)圖書信息錄入功能(圖書信息用文件保存)輸入v(2)圖書信息瀏覽功能輸出(3)查詢功能(至少一種查詢方式)、排序功能(至少一種排序方式): l
2、按書名查詢 按作者名查詢 按照價錢排序 按出版時間排序等等(4)圖書信息的刪除與修改擴展功能:可以按照自己的程度進行擴展。比如(1)簡單的權限處理 (2)報表打印功能(3)甚至根據(jù)自己情況,可以加上學生信息,并擴充為圖書借閱系統(tǒng)。(4)模糊查詢 (5)綜合查詢 (6)統(tǒng)計功能 比如統(tǒng)計處某一類別的圖書信息 或 篩選出小于指定數(shù)量庫存的圖書信息等等,總之,可以根據(jù)自己需求進行分析功能。任務要求一、提交材料應包括:(1)系統(tǒng)源代碼 (2)課程報告二、整個設計過程具體要求(1)需求分析 要求學生對案例系統(tǒng)進行分析,設計出需要完成的功能,完善各個模塊的調(diào)用關系;(2)設計過程 要求學生進一步明確各模塊
3、調(diào)用關系,進一步完善模塊函數(shù)細節(jié)(函數(shù)名、參數(shù)、返回值等)(3)實現(xiàn)過程 要求學生養(yǎng)成良好的編碼習慣、完成各個模塊并進行測試,最終完成系統(tǒng)整體測試;(4)總結階段 按照要求完成系統(tǒng)設計和實現(xiàn)報告,并進行總結、答辯。成績評定報告撰寫情況(30分)系統(tǒng)完成情況(30分)答辯情況(40分)總分內(nèi)容20分規(guī)范程度5分程序測試5分基本功能20分擴展功能10分自述情況10分答辯情況30分成績評定教師: 1 需求分析針對一般圖書管理信息系統(tǒng)的需求,通過對圖書管理信息工作的實際分析,設計出如下的圖書信息:圖書編號,圖書名字,圖書作者,圖書出版社,圖書價格,五個基本信息,由于圖書的其他信息在程序上實現(xiàn)的過程基本
4、相同,所以選出最具代表性的集中圖書信息作為程序設計實踐的數(shù)據(jù)2 概要設計1. 系統(tǒng)程序結構主函數(shù)main通過調(diào)用int choiceuser();/用戶選擇訪問身份,int admmenu();/管理員的功能選擇,int visitormenu();/訪客的功能選擇,void creat();/錄入圖書,void browsebook();/瀏覽圖書,void updatebook();/修改圖書信息,void deletebook();/刪除圖書,void sortbook();/排序圖書,void querybook();/查詢圖書,void export();/導出所需的圖書信息,voi
5、d fuzzyquery();/模糊查詢圖書信息,特色功能,以及這些函數(shù)分別又再次調(diào)用其所屬子函數(shù),實現(xiàn)圖書管理系統(tǒng)的圖書信息的錄入,顯示,修改,刪除,排序,查詢,導出,特別是模糊查詢等功能。2. 系統(tǒng)宏定義,調(diào)用函數(shù),結構體如下:#define BI 10 bookid 定義圖書編號長為10#define BN 31 bookname 定義圖書名字長為15個字#define BA 11 bookname 定義圖書作者長為5個字#define BP 25 bookpublisher 定義圖書出版社長為12個字typedef struct bookchar idBI;/id定義為字符型防止定義為
6、整形是id超出取值范圍char nameBN;char authorBA;char publisherBP;double price;struct book *next;Book; 自定義類型 Bookint choiceuser();/用戶選擇訪問身份int admmenu();/管理員的功能選擇int visitormenu();/訪客的功能選擇void showfile();void creat();/錄入圖書void browsebook();/瀏覽圖書int judgeclass();/判斷classes是否為空int openclass(char booktype);/打開clas
7、s并且讀出booktypeBook *filetolink(char booktype);/從圖書類型文件中讀出數(shù)據(jù)到鏈表void updatebook();/修改圖書信息void deletebook();/刪除圖書Book *deletebyid(Book *head,char id);/按圖書編號刪除Book *deletebyname(Book *head,char name);/按圖書名字刪除Book *deletebyauthor(Book *head,char author);/按圖書作者刪除void deletebybooktype();/刪除圖書類型,謹慎使用void sor
8、tbook();/排序圖書Book *sortbyid(Book *head);/Book *sortbyname(Book *head);/Book *sortbyauthor(Book *head);/Book *sortbyprice(Book *head);/void querybook();/查詢圖書Book *querybyid(Book *head);/Book *querybyname(Book *head);/Book *querybyauthor(Book *head);/void export();/導出所需的圖書信息void directexport(Book *hea
9、d);/void exportaftersortbyid(Book *head);/void exportaftersortbyname(Book *head);/void exportaftersortbyauthor(Book *head);/void exportaftersortbyprice(Book *head);/void fuzzyquery();/模糊查詢圖書信息,特色功能void fuzzyquerybyid(Book *head);/ 按圖書編號模糊查詢void fuzzyquerybyname(Book *head);/ 按圖書名字模糊查詢void fuzzyquery
10、byauthor(Book *head);/按圖書作者模糊查詢void fuzzyquerystackroom();/模糊查詢書庫3. 程序總體框架 主函數(shù)main選擇管理員身份選擇訪客身份三次機會輸入密碼管理員菜單訪客菜單模糊查詢,按編號,名字,作者模糊查詢導出圖書,排序后或直接導出到D盤文件查詢圖書,按編號,名字,作者查詢修改圖書,先調(diào)用先查詢函數(shù),后修改排序圖書,按編號 名字 作者 價格 排序刪除圖書,按編號,名字,作者刪除查看圖書,顯示所有圖書類型的信息圖書錄入,新建或者添加圖書信息回到用戶菜單 退出系統(tǒng)3 詳細設計*main()/主函數(shù)Book *head=NULL;int choi
11、ce;if(choiceuser()while(choice=admmenu()switch(choice)case 1:creat();break;case 2:browsebook();break;case 3:deletebook();break;case 4:sortbook();break;case 5:updatebook();break;case 6:querybook();break;case 7:export();break;case 8:fuzzyquery();break;case 9:fuzzyquerystackroom();break;default:printf(
12、"n您輸入的數(shù)據(jù)無效,請按任意鍵繼續(xù)");getch();break;elsewhile(choice=visitormenu()switch(choice)case 1:browsebook();break;case 2:sortbook();break;case 3:querybook();break;case 4:export();break;case 5:fuzzyquery();break;case 6:fuzzyquerystackroom();break;default:printf("n您輸入的數(shù)據(jù)無效,請按任意鍵繼續(xù)");getch()
13、;break;printf("您已經(jīng)退出本系統(tǒng),歡迎再次使用!n");*void deletebook()/刪除圖書的主調(diào)用函數(shù)FILE *fbtype;char booktype20,idBI,nameBN,authorBA,id0BI;int n=1,i;Book *head,*p;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf("t-刪除圖書-nn");printf(&
14、quot;ttt0-退出刪除圖書nnttt1-按圖書編號刪除nn");printf("ttt2-按圖書名字刪除nnttt3-按圖書作者刪除nn");printf("ttt4-按圖書類型刪除(謹慎使用 )nn");printf("t-nn");printf("請選擇您要刪除圖書方式的代號:");scanf("%d",&i);getchar();switch(i)case 0:break;case 1:printf("n輸入圖書編號為 0 時退出刪除nn");p
15、rintf("請輸入你要刪除的圖書編號:");scanf("%s",id);getchar();while(strcmp(id,"0")!=0) switch(strlen(id)case 1:strcpy(id0,"0000");strcpy(id,strcat(id0,id);break;case 2:strcpy(id0,"000");strcpy(id,strcat(id0,id);break;case 3:strcpy(id0,"00");strcpy(id,str
16、cat(id0,id);break;case 4:strcpy(id0,"0");strcpy(id,strcat(id0,id);break;case 5:break;default:printf("你輸入的圖書編號過長,請按任意鍵結束");getch();return ;head=deletebyid(head,id);if(head=NULL)printf("該類型中的圖書信息已經(jīng)完全刪除,請回車繼續(xù)");getchar();break;printf("請輸入你要刪除的圖書編號:");scanf("
17、%s",id);getchar(); break;case 2:printf("n輸入圖書名字為 0 時退出刪除nn");printf("請輸入你要刪除的圖書名字:");scanf("%s",name);getchar();while(strcmp(name,"0")!=0) head=deletebyname(head,name);if(head=NULL)printf("該類型中的圖書信息已經(jīng)完全刪除,請回車繼續(xù)");getchar();break;printf("請輸入
18、你要刪除的圖書名字:");scanf("%s",name);getchar(); break;case 3:printf("n輸入圖書作者為 0 時退出刪除nn");printf("請輸入你要刪除的圖書作者:");scanf("%s",author);getchar();while(strcmp(author,"0")!=0) head=deletebyauthor(head,author);if(head=NULL)printf("該類型中的圖書信息已經(jīng)完全刪除,請回車繼續(xù)
19、");getchar();break;printf("請輸入你要刪除的圖書作者:");scanf("%s",author);getchar(); break;case 4:deletebybooktype();return ;default:printf("您輸入的數(shù)據(jù)無效!請按任意鍵繼續(xù)");getch(); return ;/刪除圖書后存入文件if(fbtype=fopen(booktype,"wb")=NULL)printf("該類型圖書信息由于某種原因無法刪除,請回車以繼續(xù)!"
20、);getchar();return ;p=head;while(p)fwrite(p,sizeof(Book),1,fbtype);p=p->next;fclose(fbtype);*void sortbook()/排序圖書的主調(diào)用函數(shù)char booktype20;int n=1,i;Book *head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf("nt-排序圖書-nn");pr
21、intf("ttt0-退出排序圖書nnttt1-按圖書 編號 排序nn");printf("ttt2-按圖書 名字 排序nnttt3-按圖書 作者 排序nn");printf("ttt4-按圖書 價格 排序nn");printf("t-nn");printf("請選擇您要排序圖書方式的代號:");scanf("%d",&i);getchar();switch(i)case 0:break;case 1:sortbyid(head);break;case 2:sortb
22、yname(head);break;case 3:sortbyauthor(head);break;case 4:sortbyprice(head);break;default:printf("您輸入的數(shù)據(jù)無效!按任意鍵繼續(xù)");getch();break;*void querybook()/查詢圖書的主調(diào)用函數(shù)char booktype20;int n=1,i;Book *head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NU
23、LL) return ;printf("nt-查詢圖書-nn");printf("ttt0-退出查詢圖書nnttt1-按圖書編號查詢nn");printf("ttt2-按圖書名字查詢nnttt3-按圖書作者查詢nn");printf("t-nn");printf("請選擇您要查詢圖書方式的代號:");scanf("%d",&i);getchar();switch(i)case 0:break;case 1:querybyid(head);break;case 2:;q
24、uerybyname(head);break;case 3:querybyauthor(head);break;default:printf("您輸入的數(shù)據(jù)無效!按任意鍵繼續(xù)");getch();break;*void export()/導出圖書的主調(diào)用函數(shù)char booktype20;int i;Book *head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf("nt-導出圖書
25、信息");printf("-nn");printf("ttt0-退出導出圖書信息nn");printf("ttt1-直接導出該類型的圖書信息nn");printf("ttt2-按圖書 編號 排序后導出nn");printf("ttt3-按圖書 名字 排序后導出");printf("nnttt4-按圖書 作者 排序后導出nn");printf("ttt5-按圖書 價格 排序后導出nn");printf("t-");printf(
26、"-nn");printf("說明:導出信息將自動保存在 D盤 圖書館管理系統(tǒng) 文件夾下,");printf("導出信息以文本形式存放。為保證你導出的圖書信息有效,");printf("請及時移出該文件夾。nn");printf("請選擇您要導出圖書信息方式的代號:");scanf("%d",&i);getchar();/自動創(chuàng)建文件夾_mkdir("D:圖書館管理系統(tǒng)");switch(i)case 0:break;case 1:directex
27、port(head);break;case 2:exportaftersortbyid(head);break;case 3:exportaftersortbyname(head);break;case 4:exportaftersortbyauthor(head);break;case 5:exportaftersortbyprice(head);break;default:printf("您輸入的數(shù)據(jù)無效!按任意鍵繼續(xù)");getch();break;*void fuzzyquery()/特色功能,模糊查詢圖書信息char booktype20;int i;Book *
28、head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf("nt-模糊查詢( 特色功能 )");printf("-nn");printf("ttt0-退出模糊查詢nnttt1-按圖書 編號 模糊查詢nn");printf("ttt2-按圖書 名字 模糊查詢nn");printf("ttt3-按圖書 作者 模糊查詢nn"
29、;);printf("t-nn");printf("請選擇您要模糊查詢圖書方式的代號:");scanf("%d",&i);getchar();switch(i)case 0:break;case 1:fuzzyquerybyid(head);break;case 2:fuzzyquerybyname(head);break;case 3:fuzzyquerybyauthor(head);break;default:printf("您輸入的數(shù)據(jù)無效!按任意鍵繼續(xù)");getch();break;*4 調(diào)試分析1,測試數(shù)據(jù)圖書編號 圖書名字 圖書作者 圖書出版社 圖書價格 00230 程序設計 何欽銘 高等教育出版社
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 常州插花活動方案
- 工會親情活動方案
- 帶狗露營活動方案
- 小班餐點活動方案
- 少先隊進耕地活動方案
- 工會春聯(lián)比賽活動方案
- 小班游戲識字活動方案
- 岱山公司拓展活動方案
- 干警講壇活動方案
- 工地擺攤活動方案
- Welcome Unit 開學第一課(課件)高中英語人教版必修第一冊
- 資產(chǎn)管理數(shù)字化解決方案
- 護理安全意識
- 鋼筋內(nèi)部比對作業(yè)指導書
- 幼兒園中班社會《美麗的黃山》課件
- 法社會學教程(第三版)教學
- 6綜合與實踐(北京五日游)(教案)-六年級下冊數(shù)學人教版
- 專題22 桃花源記(含答案與解析)-備戰(zhàn)2024年中考語文之文言文對比閱讀(全國版)
- GB/T 44150-2024金屬及其他無機覆蓋層鋅與鎳、鈷或鐵合金電鍍層
- AQ6111-2023個體防護裝備安全管理規(guī)范
- 重慶市大足縣2023-2024學年四年級數(shù)學第二學期期末聯(lián)考試題含解析
評論
0/150
提交評論