C語言圖書管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁
C語言圖書管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁
C語言圖書管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁
C語言圖書管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁
C語言圖書管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上課 程 報(bào) 告課 程 名 稱: 程序設(shè)計(jì)實(shí)踐 專 業(yè) 班 級(jí) : 信息類1110 學(xué) 生 姓 名 : 學(xué) 號(hào) : 任 課 教 師 : 學(xué) 期 :20101-2012學(xué)年第二學(xué)期 課程報(bào)告任務(wù)書題 目圖書信息管理系統(tǒng)主要內(nèi)容開發(fā)一個(gè)圖書信息管理系統(tǒng),圖書信息包括:圖書編號(hào)、書名、作者、出版社、類別、出版時(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)一步明確各模塊調(diào)用關(guān)系,進(jìn)一步完善模塊

3、函數(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é)、答辯。成績評(píng)定報(bào)告撰寫情況(30分)系統(tǒng)完成情況(30分)答辯情況(40分)總分內(nèi)容20分規(guī)范程度5分程序測試5分基本功能20分?jǐn)U展功能10分自述情況10分答辯情況30分成績評(píng)定教師: 專心-專注-專業(yè)1 需求分析這是一個(gè)能簡單管理圖書的小型圖書管理系統(tǒng),其中圖書信息包括:書名,作者名,書編號(hào),分類,出版單位,出版時(shí)間,價(jià)格等。通過這些信息使之提供以下功能: (1)圖書信息創(chuàng)建功能。其中圖書信息包括:書名,作者名

4、,書編號(hào),分類,出版單位,出版時(shí)間,價(jià)格等。(圖書信息用文件保存)。(2)圖書信息查看功能。用來查看各項(xiàng)圖書信息。(3)圖書信息查找功能。通過已知信息來查找想要的圖書。(4)圖書信息的刪除。可以刪除特定圖書。(5)圖書信息的修改??梢孕薷膱D書的各項(xiàng)信息。(6)圖書信息的排序功能。按圖書信息對錄入的圖書進(jìn)行排序。(7)菜單選擇功能,此功能也是圖書信息信息管理系統(tǒng)的入口,用戶所要進(jìn)行的各種操作均需在此模塊中進(jìn)行選擇并進(jìn)而調(diào)用其他模塊實(shí)現(xiàn)相應(yīng)的功能2 概要設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)圖書管理系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)包含書名、圖書書號(hào)、作者名、分類、出版社、出版時(shí)間、價(jià)格等;在處理過程中各項(xiàng)可以作為一本圖書的不同屬性來

5、進(jìn)行處理。/自定義枚舉類型fi_type,用來表示圖書信息 typedef enum _fi_type news=1, /圖書信息 fi_type;/圖書信息結(jié)構(gòu)體 struct fi_info char name11; /書名 char writer21; /作者 char shuhao10; /書號(hào) char fenlei10; /分類 char chuban20; /出版社 int chubantime; /出版時(shí)間 float price; /價(jià)格 fi_type type; struct fi_info* next; /結(jié)構(gòu)體的指針域,用于存放鏈表的下個(gè)結(jié)點(diǎn)的地址; 模塊劃分本系統(tǒng)主

6、要有創(chuàng)建新的圖書、查找圖書、刪除圖書、修改圖書、查看圖書和圖書排序幾個(gè)基本功能。 2struct fi_info *head=NULL,*head_=NULL ; /將圖書信息寫成鏈表,頭指針分別為空 int Book_num; /圖書信息的統(tǒng)計(jì)數(shù) void menu();int ReadinfoFromFile(); /讀入數(shù)據(jù) /函數(shù)申明 int chuangjian(); /創(chuàng)建新的圖書信息void chazhao(); /查找圖書void shanchu(); /刪除圖書void xiugai(); /修改圖書void show(); /查看圖書void paixu() ; /圖書排序

7、void quit(); /退出書名查找作者查找組合查找(3)程序結(jié)構(gòu)主菜單 開始輸入創(chuàng)建圖書查找書名查找作者查找組合查找刪除圖書修改圖書顯示圖書 退出3 詳細(xì)設(shè)計(jì)1.主菜單函數(shù)的原型:void menu()函數(shù)的功能:調(diào)用菜單,使用各項(xiàng)功能程序:void menu() printf("nn*<圖書信息管理系統(tǒng)>*n"); printf("-主菜單- n"); printf("ttt <1;創(chuàng)建圖書信息 > n");printf("ttt <2;查找圖書信息 > n");prin

8、tf("ttt <3;刪除圖書信息 > n");printf("ttt <4;修改圖書信息 > n");printf("ttt <5;顯示圖書信息 > n");printf("ttt <6;按出版時(shí)間排序> n");printf("ttt <0;退出 > n");printf("- n");2.新建文件函數(shù)的原型:int ReadinfoFromFile()函數(shù)的功能:建立文件儲(chǔ)存數(shù)據(jù)程序int ReadinfoFr

9、omFile() /讀入數(shù)據(jù) FILE *fp=NULL; /文件指針 struct fi_info *p=NULL; /結(jié)構(gòu)體指針 int i; if(fp=fopen("sun.txt","r+")=NULL) printf("文件不存在!n"); fp=fopen("sun.txt","w"); /為輸出打開一個(gè)文件 printf("文件建立成功!n"); fscanf(fp,"%d",&Book_num); /從文件中分別讀入圖書信息統(tǒng)計(jì)數(shù)

10、,以便于下面for循環(huán)的條件控制for(i=0;i<Book_num;i+)p=(struct fi_info*)malloc(sizeof(struct fi_info); /P為動(dòng)作指針,申請內(nèi)存空間fscanf(fp,"%s",p->name);fscanf(fp,"%s",p->writer); fscanf(fp,"%s",p->shuhao);fscanf(fp,"%s",&p->fenlei);fscanf(fp,"%s",p->chub

11、an);fscanf(fp,"%d",&p->chubantime); fscanf(fp,"%.2f",&p->price);fscanf(fp,"%d",&p->type);if(p->type=1) if(head=NULL) head=p; p->next=NULL; else p->next=head; head=p; else if(head_=NULL) head_=p; p->next=NULL; else p->next=head_; head_

12、=p; fclose(fp);return 0;3.創(chuàng)建圖書信息函數(shù)的原型:int chuangjian()函數(shù)的功能:記錄圖書的各項(xiàng)信息程序:int chuangjian() /創(chuàng)建圖書信息 struct fi_info *p=NULL; p=(struct fi_info*)malloc(sizeof(struct fi_info); printf("請輸入書名:"); scanf("%s",p->name);printf("請輸入作者名:"); scanf("%s",p->writer);prin

13、tf("請輸入書號(hào):"); scanf("%s",p->shuhao);printf("請輸入分類:"); scanf("%s",&p->fenlei);printf("請輸入出版社:");scanf("%s",p->chuban); printf("請輸入出版時(shí)間:"); scanf("%d",&p->chubantime);printf("請輸入價(jià)格:"); scanf(&

14、quot;%f",&p->price); p->type=news; Book_num+=1; p->next=head; head=p;return 0;4.查找圖書信息函數(shù)的原型:void chazhao()函數(shù)的功能:通過書名查找、作者查找、組合查找三種方式查找圖書信息。程序:void chazhao() /查找圖書信息 struct fi_info *p=NULL; char name10,writer21; int price; int b=1,i; printf("按書名查找請按1.n按作者名查找請按2.n按組合查詢請按3.n"

15、;); scanf("%d",&i); if(i=1) printf("請輸入要查找的書名:"); scanf("%s",name); for(p=head;p!=NULL;p=p->next) /一個(gè)鏈表指針p的遍歷,直到結(jié)尾p=NULL if(strcmp(name,p->name)=0) /字符串的比較函數(shù),若前后相等則等于0 b=0; /若存在,則b=0 printf("找到要查找的圖書信息:n");printf("圖書名稱 %sn",p->name);prin

16、tf("圖書作者 %sn",p->writer); printf("圖書書號(hào) %sn",p->shuhao);printf("圖書分類 %sn",p->fenlei);printf("出版社 %sn",p->chuban);printf("出版時(shí)間 %dn",p->chubantime);printf("圖書價(jià)格 %.2fn",p->price); if(head=NULL) printf("<查無此書>n"

17、); if(b) printf("<查找的圖書信息不存在!>n"); /若b=1,則不存在 else if(i=2) printf("請輸入要查找的作者名:"); scanf("%s",writer); for(p=head;p!=NULL;p=p->next) /一個(gè)鏈表指針p的遍歷,直到結(jié)尾p=NULL if(strcmp(writer,p->writer)=0) /字符串的比較函數(shù),若前后相等則等于0 b=0; /若存在,則b=0 printf("找到要查找的圖書信息:n"); pri

18、ntf("圖書名稱 %sn",p->name);printf("圖書作者 %sn",p->writer); printf("圖書書號(hào) %sn",p->shuhao);printf("圖書分類 %sn",p->fenlei);printf("出版社 %sn",p->chuban);printf("出版時(shí)間 %dn",p->chubantime);printf("圖書價(jià)格 %.2fn",p->price); if(he

19、ad=NULL) printf("<查無此書>n"); if(b) printf("<查找的圖書信息不存在!>n"); /若b=1,則不存在 else if(i=3) printf("請輸入要查找的 書名 價(jià)格n:"); scanf("%s %d",name,&price); for(p=head;p!=NULL;p=p->next) /一個(gè)鏈表指針p的遍歷,直到結(jié)尾p=NULL if(strcmp(name,p->name)=0&&price=p->

20、;price) /字符串的比較函數(shù),若前后相等則等于0 b=0; /若存在,則b=0 printf("找到要查找的圖書信息:n");printf("圖書名稱 %sn",p->name);printf("圖書作者 %sn",p->writer); printf("圖書書號(hào) %sn",p->shuhao);printf("圖書分類 %sn",p->fenlei);printf("出版社 %sn",p->chuban);printf("出版時(shí)

21、間 %dn",p->chubantime);printf("圖書價(jià)格 %.2fn",p->price); if(head=NULL) printf("查無此書n"); if(b) printf("<查找的圖書信息不存在!>n"); /若b=1,則不存在 else printf("<沒有該項(xiàng)功能,請重新選擇:>n"); system("PAUSE"); /暫停 5.刪除圖書信息函數(shù)的原型:void shanchu()函數(shù)的功能:通過書名確定圖書,進(jìn)而刪

22、除該書程序:void shanchu() /刪除圖書信息 struct fi_info *p=NULL; /定義兩個(gè)結(jié)構(gòu)體指針 struct fi_info *q=NULL; char name10; int b=1; int a; printf("請輸入要?jiǎng)h除的書名:n"); scanf("%s",name); for(p=head,q=head;p!=NULL;p=p->next) if(strcmp(name,p->name)=0) b=0; printf("確定刪除? 0(是) or 1(否)n"); scanf(

23、"%d",&a); if(a=0) if(p=head) head=head->next; else q->next=p->next; printf("刪除成功!n"); else q=p; if(b) printf("<提示:查無此書!.n"); system("PAUSE"); 6.修改圖書信息函數(shù)的原型:void xiugai()函數(shù)的功能:通過書名確定圖書,進(jìn)而修改該書的各項(xiàng)信息程序:void xiugai() /修改圖書信息 struct fi_info *p=NULL;

24、int a,b=1; char name10; printf("請輸入書名:nn"); scanf("%s",name); for(p=head;p!=NULL;p=p->next) if(strcmp(p->name,name)=0) b=0; printf("圖書名稱 %sn",p->name); printf("圖書作者 %sn",p->writer); printf("圖書書號(hào) %sn",p->shuhao); printf("圖書分類 %sn&q

25、uot;,p->fenlei); printf("出版社 %sn",p->chuban); printf("出版時(shí)間 %dn",p->chubantime); printf("圖書價(jià)格 %.2fn",p->price); printf("<是否確定修改? 0 (是)or 1(否)>n"); scanf("%d",&a); if(a=0) printf("*請重新輸入信息*n"); printf("請輸入書名:")

26、; scanf("%s",p->name);printf("請輸入作者名:"); scanf("%s",p->writer);printf("請輸入書號(hào):"); scanf("%s",p->shuhao);printf("請輸入分類:"); scanf("%s",&p->fenlei); printf("請輸入出版社:"); scanf("%s",&p->chuban);

27、 printf("請輸入出版時(shí)間:"); scanf("%d",&p->chubantime);printf("請輸入價(jià)格:"); scanf("%f",&p->price); p->type=news; printf("nn <提醒:信息修改成功!>nn"); if(b=1) printf("<沒有您要修改的信息!>n"); system("PAUSE");7.顯示圖書信息 函數(shù)的原型:void

28、show()函數(shù)的功能:顯示已存圖書的各項(xiàng)信息程序:void show() /顯示圖書信息 struct fi_info *p=NULL;system("cls"); for(p=head;p!=NULL;p=p->next) printf("圖書名稱 %sn",p->name);printf("圖書作者 %sn",p->writer); printf("圖書書號(hào) %sn",p->shuhao);printf("圖書分類 %sn",p->fenlei);printf

29、("出版社 %sn",p->chuban);printf("出版時(shí)間 %dn",p->chubantime);printf("圖書價(jià)格 %.2fn",p->price); system("PAUSE");8.圖書排序函數(shù)的原型:void paixu()函數(shù)的功能:按出版時(shí)間的不同將記錄的圖書排序程序:void paixu() /按出版時(shí)間排序struct fi_info *a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n+;for(i=0;i<n;i+)ai=p1;p1=p1->next;for(k=0;k<n-1;k+)index=k;for(i=k+1;i<n;i+)if(aindex->chubantime>ai->chubantime)index=i; temp=aindex;aindex=ak;ak=temp;for(i=0;i<n;i+) printf("圖書書名 %sn",ai->name); printf(&q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論