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

VIP免費(fèi)下載

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

文檔簡(jiǎn)介

1、中國石油大學(xué)(華東)軟件工程系程序設(shè)計(jì)(C)實(shí)驗(yàn)(總結(jié)報(bào)告)專業(yè)班級(jí): 軟件1301 學(xué) 號(hào): 1307020125 姓 名: 燕朋賓 2014年1月一、實(shí)習(xí)題目介紹(包括:題目名稱,及題目要求完成的工作任務(wù)、要求實(shí)現(xiàn)的功能目標(biāo)等) 1.題目名稱 圖書管理系統(tǒng) 2.基本功能(1) 查詢圖書: 輸入要查詢圖書的信息,如書名,位置,索書號(hào)等,系統(tǒng)即可自動(dòng)查詢使用者所需要的圖書,能查詢到則輸出完整的圖書信息,查詢不到則提示使用者該書不存在。(2) 添加圖書: 輸入要添加圖書的數(shù)目,即可根據(jù)系統(tǒng)的提示逐項(xiàng)添加圖書的基本信息,直至添加完畢為止。結(jié)束時(shí)顯示使用者添加的所有圖書。(3) 修改圖書: 輸入要修

2、改的圖書信息,找到該圖書后即可修改書名,位置,索書號(hào)等基本信息。(4) 刪除圖書: 輸入要?jiǎng)h除的圖書信息,找到該圖書后即可自動(dòng)刪除。二、開發(fā)工作內(nèi)容1.主要思路 (1)首先建立一個(gè)記錄圖書信息的檔。 (2) 使用界面函數(shù),使使用者更方便。 (3)使用者鍵入數(shù)字實(shí)現(xiàn)選擇。 (4)使用者輸入要查詢的圖書信息,如圖書名,通過逐項(xiàng)比較找到圖書,并輸出圖書的所有信息。 (5)使用者輸入要修改的圖書信息,通過逐項(xiàng)比較找到圖書,再使用fseek,以及fwrite函數(shù)實(shí)現(xiàn)修改。 (6)使用者輸入要?jiǎng)h除的圖書信息,通過逐項(xiàng)比較找到圖書,建立新結(jié)構(gòu)體Struct Book n=“0”,”0”,”0”,”0”,使用

3、新結(jié)構(gòu)體替換要?jiǎng)h除的圖書結(jié)構(gòu)體,即可實(shí)現(xiàn)刪除功能。 (7)使用者輸入要添加的圖書數(shù)目,系統(tǒng)自動(dòng)提示使用者添加內(nèi)容,直到添加完畢為止。 (8)使用死循環(huán),每次功能完成之后提醒使用者,按0退出,按其他數(shù)字繼續(xù)。2.各模塊功能的實(shí)現(xiàn)過程 (1)建立記錄圖書信息的檔 代碼:void save();int i;if(fp=fopen(book.dat,wb)=NULL)printf(cannotn);return ; for(i=0;i5) system(cls);jiemian(); printf(*n);printf( 請(qǐng)重新輸入n);printf(*n);scanf(%d,&i);if(i=5)b

4、reak;switch(i)case 1:chaxun();break;case 2:xiugai();break;case 3:add();break;case 4:shanchu();break;case 5:chaxunsuoyou();break;if(i=0)break;printf(nnnnnnn);printf(*按0退出,按其他數(shù)字繼續(xù)*n);scanf(%d,&j);system(cls);(4)輸入要查詢的圖書信息 原理:系統(tǒng)通過比較,如果圖書存在則輸出圖書詳細(xì)信息,圖書不存在則輸出圖書不存在的信息。 代碼: void chaxun() int p;int i,n=0;ch

5、ar b100; printf( );printf( $=|n); printf( );printf( $-圖書查詢系統(tǒng)-|n); printf( ); printf( $_|n);printf( ); printf( $1.查詢圖書名 |n);printf( ); printf( $_|n); printf( );printf( $2.查詢圖書類型 |n); printf( );printf( $_|n); printf( );printf( $3.查詢圖書位置 |n);printf( ); printf( $_|n); printf( );printf( $4.查詢圖書編號(hào) |n); pr

6、intf( );printf( $_|n); printf( );printf(請(qǐng)輸入服務(wù)類型(數(shù)字)n);printf( ); scanf(%d,&p); system(cls); if(p=1) printf(請(qǐng)輸入要查詢的圖書名:n); scanf(%s,b);if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,)=0)printf(_n);printf(|%-15s|%-20s|%-

7、20s|%-5s|n,,booki.lei,booki.floor,booki.hao);n=1; if(n=0) printf(對(duì)不起,你查詢的圖書不存在n); fclose(fp); if(p=2) printf(請(qǐng)輸入要查詢的圖書類型:n); scanf(%s,b);if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.lei)=0)printf(_n);printf(%-

8、15s%-20s%-20s%-5sn,,booki.lei,booki.floor,booki.hao);n+; fclose(fp); if(n=0) printf(對(duì)不起,你查詢的圖書不存在n);printf(%s類型書的數(shù)目為%dn,b,n); if(p=3) printf(請(qǐng)輸入要查詢的位置:n); scanf(%s,b); if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,bo

9、oki.floor)=0) printf(_n);printf(|%-15s|%-20s|%-20s|%-5s|n,,booki.lei,booki.floor,booki.hao);printf(_n);n+; if(n=0) printf(對(duì)不起,你查詢的圖書不存在n); printf(%s位置書的數(shù)目為%dn,b,n); fclose(fp); if(p=4) printf(請(qǐng)輸入要查詢的圖書編號(hào):n); scanf(%s,b); if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0); for(i=0;iN;i+)f

10、read(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.hao)=0)printf(%-15s%-20s%-20s%-5sn,,booki.lei,booki.floor,booki.hao);n=1;if(n=0)printf(查無此書n); fclose(fp); (5)修改圖書時(shí)只需輸入要修改的圖書信息及新的圖書信息即可實(shí)現(xiàn)。 實(shí)現(xiàn)原理:先逐項(xiàng)對(duì)比找到圖書,再用fseek函數(shù)指向該圖書,然后用fwrite函數(shù)進(jìn)行修改。 代碼: void xiugai() int i,j,k=0,u;struct Book n;

11、char boo100; ;printf(請(qǐng)輸入要修改的圖書名n); scanf(%s,boo); if(fp=fopen(bok.dat,rb)=NULL) printf(cannot open filen); exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp); if(strcmp(boo,)=0) j=i; k=1; fclose(fp); if(k=1) printf( _n); printf( $-圖書修改系統(tǒng)-$n); printf( |_|n); printf( |1.修改圖書名 |n)

12、; printf( |_|n); printf( |2.修改圖書類型 |n); printf( |_|n); printf( |3.修改圖書編號(hào) |n); printf( |_|n); printf(請(qǐng)輸入修改內(nèi)容(數(shù)字)n); scanf(%d,&u); system(cls); if(u=1) printf(請(qǐng)輸入新的書名n); scanf(%s,&); if(fp=fopen(bok.dat,rb+)=NULL) printf(cannotn); exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET); strcpy(n.lei,b

13、ookj.lei); strcpy(n.floor ,bookj.floor);strcpy(n.hao ,bookj.hao);fwrite(&n,sizeof(struct Book),1,fp);printf(修改前:n);printf(%-15s%-20s%-20s%-5sn,,bookj.lei,bookj.floor,bookj.hao); printf(修改后:n);printf(%-15s%-20s%-20s%-5sn,,bookj.lei,bookj.floor,bookj.hao); printf(*修改成功*n); if(u=2) prin

14、tf(請(qǐng)輸入新的類型n); if(fp=fopen(bok.dat,rb+)=NULL) printf(cannotn); exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET); scanf(%s,&n.lei); strcp,); strcpy(n.floor ,bookj.floor);strcpy(n.hao ,bookj.hao);fwrite(&n,sizeof(struct Book),1,fp);printf(修改前:n);printf(%-15s%-20s%-20s%-5sn,,bookj.l

15、ei,bookj.floor,bookj.hao); printf(修改后:n);printf(%-15s%-20s%-20s%-5sn,,n.lei,bookj.floor,bookj.hao); printf(*修改成功*n); if(u=3) printf(請(qǐng)輸入新的編號(hào)n); if(fp=fopen(bok.dat,rb+)=NULL) printf(cannotn); exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET); scanf(%s,&n.hao); strcpy(n.lei,bookj.lei); strcp

16、y(n.floor ,bookj.floor);strcp ,);fwrite(&n,sizeof(struct Book),1,fp); printf(* n);printf(%-15s%-20s%-20s%-5sn,,bookj.lei,bookj.floor,bookj.hao); printf(*n);printf(%-15s%-20s%-20s%-5sn,,bookj.lei,bookj.floor,n.hao); printf( =修改成功=n); if(k=0) printf(查無此書n); fclose(fp);(6)

17、刪除圖書。 實(shí)現(xiàn)原理:使用者輸入要?jiǎng)h除的圖書信息,通過逐項(xiàng)比較找到圖書,建立新結(jié)構(gòu)Struct Book n=“0”,”0”,”0”,”0”,使用新結(jié)構(gòu)體替換要?jiǎng)h除的圖書結(jié)構(gòu)體,即可實(shí)現(xiàn)刪除功能。 代碼:/刪除圖書功能void shanchu() ; int i,u,j,k,m=0; char b100;struct Book n=0,0,0; printf( $=|n); printf( $-圖書刪除系統(tǒng)-|n); printf( $_|n); printf( $1.刪除圖書名 |n); printf( $_|n); printf( $2.刪除圖書類型 |n); printf( $_|n);

18、 printf( $3.刪除圖書位置 |n); printf( $_|n); printf( $4.刪除圖書編號(hào) |n); printf( $_|n); printf(請(qǐng)輸入服務(wù)類型(數(shù)字)n); scanf(%d,&u); if(u=1) printf(請(qǐng)輸入要?jiǎng)h除的內(nèi)容:n);scanf(%s,b); for(k=0;kN;k+) if(fp=fopen(bok.dat,rb)=NULL) printf(cannotn);exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp); if(strcmp(b,booki.nam

19、e)=0) printf(%-15s%-20s%-20s%-5sn,,booki.lei,booki.floor,booki.hao); j=i;m=1; printf(%dn,j); fclose(fp);if(fp=fopen(bok.dat,rb+)=NULL)printf(cannotn);exit(0);fseek(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp); fclose(fp);if(m=0)printf(您要?jiǎng)h除的圖書不存在:n); if(u=2) printf

20、(請(qǐng)輸入要?jiǎng)h除的內(nèi)容:n);scanf(%s,b);for(k=0;kN;k+) if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.lei)=0)j=i;m=1;printf(%-15s%-20s%-20s%-5sn,,bookj.lei,bookj.floor,bookj.hao); break; fclose(fp);if(fp=fopen(bok.dat,rb+)=NUL

21、L)printf(cannotn);exit(0);fseek(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp); fclose(fp);if(m=0)printf(您要?jiǎng)h除的圖書不存在:n); if(u=3) printf(請(qǐng)輸入要?jiǎng)h除的內(nèi)容:n);scanf(%s,b);for(k=0;kN;k+) if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),

22、1,fp);if(strcmp(b,booki.floor)=0)printf(%-15s%-20s%-20s%-5sn,,booki.lei,booki.floor,booki.hao); j=i;m=1;break; fclose(fp);if(fp=fopen(bok.dat,rb+)=NULL)printf(cannotn);exit(0);fseek(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp);printf(%-15s%-20s%-20s%-5sn,bookj.nam

23、e,bookj.lei,bookj.floor,bookj.hao); fclose(fp);if(m=0)printf(您要?jiǎng)h除的圖書不存在:n); if(u=4) printf(請(qǐng)輸入要?jiǎng)h除的內(nèi)容:n);scanf(%s,b); if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.hao)=0)printf(%-15s%-20s%-20s%-5sn,,booki.lei,bo

24、oki.floor,booki.hao); j=i;m=1;break; fclose(fp);if(fp=fopen(bok.dat,rb+)=NULL)printf(cannotn);exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp); fclose(fp); if(m=0)printf(您要?jiǎng)h除的圖書不存在:n); (7) 增加圖書。 實(shí)現(xiàn)原理:使用追加方式打開檔,即可在檔尾增加圖書。通過輸入數(shù)字控制輸入圖書的數(shù)目。代碼: void add() Book n100;int i,j;print

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論