




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美發(fā)新寵清新盤發(fā)設(shè)計(jì)
- 個(gè)性化教學(xué)與課程實(shí)施的社會(huì)學(xué)視角-洞察闡釋
- 游戲客服試題及答案
- 第17課 第二次世界大戰(zhàn)與戰(zhàn)后國際秩序的形成 課件 人教統(tǒng)編版高中歷史必修中外歷史綱要下
- 2024年溫州市工人業(yè)余大學(xué)輔導(dǎo)員考試真題
- 2024年重慶南川區(qū)事業(yè)單位遴選真題
- 2024年遼源市融發(fā)資本運(yùn)營集團(tuán)有限公司及招聘工作人員真題
- 山西省朔州市懷仁市懷仁市第一中學(xué)校等(青桐鳴聯(lián)考)2025屆高三下學(xué)期高考模擬數(shù)學(xué)試題
- 2024-2025年高三數(shù)學(xué)5月針對(duì)性測(cè)試三
- 廣西幼師幼兒園教育活動(dòng)設(shè)計(jì)與指導(dǎo)課程標(biāo)準(zhǔn)
- 2025年高考數(shù)學(xué)全國一卷試題真題及答案詳解(精校打印)
- 2024年嘉定區(qū)外岡鎮(zhèn)招聘工作人員真題
- 貴州國企招聘2025貴州省糧食儲(chǔ)備集團(tuán)有限公司招聘76人筆試參考題庫附帶答案詳解析集合
- 2025年建筑工程土石方回填分包協(xié)議范本
- 學(xué)生集中配餐管理制度
- 2023-2024學(xué)年廣東廣州番禺區(qū)初一下學(xué)期期末數(shù)學(xué)試卷(標(biāo)準(zhǔn)版)
- DB62T 4130-2020 公路混凝土構(gòu)件蒸汽養(yǎng)護(hù)技術(shù)規(guī)程
- 行政人事部所需各類表格模板
- 胃癌內(nèi)科護(hù)理常規(guī)
- 工程資金共管協(xié)議書
- 2024北京西城區(qū)六年級(jí)畢業(yè)考英語試題及答案
評(píng)論
0/150
提交評(píng)論