版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、C語言高級程序設計課程設計報告 一、 設計題目名稱 圖書管理 (Tip 圖書屬性:編號,書名,作者,單價,數(shù)量,出版社。)二、 程序基本要求(1)主菜單設計:按基本要求進行(2)記錄輸入:對每一種圖書的編號、書名、作者、單價、數(shù)量、出版社,進行輸入并存儲在數(shù)據(jù)文件中。(3)顯示記錄:按書名或作者順序(本次是按照書名的首字母順序)顯示全部圖書記錄(4)維護記錄:能夠?qū)崿F(xiàn)添加、刪除、修改圖書記錄,結(jié)果存儲到文件中。修改紀錄可以對任意記錄的數(shù)據(jù)進行修改并在修改前后對記錄內(nèi)容進行顯示;刪除記錄可以刪除文件中的任意一個紀錄。(5)查詢記錄。根據(jù)編號、書名、作者等查詢圖書的信息。如:根據(jù)編號顯示某種圖書的
2、記錄;根據(jù)書名顯示記錄;根據(jù)作者顯示其所著書籍,可能有多個記錄。(6)統(tǒng)計記錄。計算每種圖書的總價值,并以列表的方式顯示;計算某作者所著的圖書數(shù)量。(7)自行檢驗:設計、輸入圖書數(shù)據(jù)記錄,基本與實踐情況相似,記錄數(shù)不少于10條,能反應以上所有要求。三、 程序設計思想圖書管理系統(tǒng)退出本系統(tǒng)修改圖書記錄刪除圖書記錄增加圖書記錄查詢圖書記錄統(tǒng)計圖書記錄顯示圖書記錄新建圖書記錄主菜單四、 程序步驟 /*包含預定義函數(shù)的頭文件*/#include #include #include #include #include /*定義全局變量*/struct record /*建立一個類型為struct rec
3、ord的結(jié)構(gòu)體*/ char id20; /*編號*/ char sm20; /*書名*/ char zz10; /*作者*/ double dj; /*單價*/ int sl; /*數(shù)量*/ char cbs10; /*出版社*/ int pd; /*0/1排序判斷*/ struct record *next; /*下一圖書信息的頭指針*/;struct record BOOK1000; /*定義寬度為1000的名為BOOK的結(jié)構(gòu)體數(shù)組*/int NUM; /*用于計數(shù)輸入記錄的次數(shù);用于表示結(jié)構(gòu)體數(shù)組變量的下標*/FILE *fp; /*文件指針*/void new_record(); /
4、*記錄輸入*/void browse(); /*顯示記錄*/void append(); /*尾加記錄*/void delet(); /*刪除記錄*/void modi(); /*修改記錄*/void search(); /*查詢記錄*/void cout(); /*統(tǒng)計記錄*/*編寫主函數(shù)*/int main() int choice=1; /*用于選擇功能對應的序號鍵*/ while(choice) system(cls); /*系統(tǒng)自帶的清屏功能,下同*/printf(nn); printf(ntt-歡迎使用圖書管理系統(tǒng)-n); printf(ntt-Welcome to use Pay
5、roll System!-); printf(ntt);/*提取系統(tǒng)時間的時間函數(shù)*/ time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); printf( 尊敬的用戶,您好!n); printf(tt); printf( 您于n); printf(tt); printf( %s, asctime (timeinfo) ); printf(tt); printf( 開始使用本系統(tǒng));printf(ntt);/*主菜單頁面的構(gòu)建*/printf(ntt主菜單);pri
6、ntf(ntt );printf(ntt*1-新建圖書記錄*);printf(ntt*2-顯示圖書記錄*);printf(ntt*3-增加圖書記錄*);printf(ntt*4-刪除圖書記錄*);printf(ntt*5-修改圖書記錄*);printf(ntt*6-查詢圖書記錄*);printf(ntt*7-統(tǒng)計圖書記錄*);printf(ntt*0-退出本系統(tǒng)*);printf(ntt );printf(ntt);printf(ntt:);scanf(%1d,&choice);/*新建前先判斷是否有數(shù)據(jù)記錄*/if(choice!=1&NUM=0) if (fp=fopen(BOOK.dat
7、,r)!=NULL) while (fread(&BOOKNUM,1,sizeof(struct record),fp) NUM+;else printf(There is no data!);continue;/*swtch語句的功能選擇*/switch (choice)case 0:exit(0); /*退出本系統(tǒng)*/case 1:new_record(); /*新建圖書記錄*/break;case 2:browse(); /*顯示圖書記錄*/break; case 3:append(); /*增加圖書記錄*/break;case 4:delet(); /*刪除圖書記錄*/break; c
8、ase 5:modi(); /*修改圖書記錄*/break;case 6: search(); /*查詢圖書記錄*/break;case 7:cout(); /*統(tǒng)計圖書記錄*/break;/*1-新建圖書記錄功能*/void new_record()char c;system(cls);printf(ntt*您正在使用圖書信息輸入功能*);printf(ntt);printf( 請輸入第%d本圖書的信息,NUM+1);printf(ntt請輸入編號:);scanf(%s,BOOKNUM.id);printf(ntt請輸入書名:);scanf(%s, BOOKNUM.sm);printf(nt
9、t請輸入作者:);scanf(%s, BOOKNUM.zz);printf(ntt請輸入單價:);scanf(%lf, &BOOKNUM.dj);printf(ntt請輸入數(shù)量:);scanf(%d, &BOOKNUM.sl);printf(ntt請輸入出版社:);scanf(%s, BOOKNUM.cbs);printf(ntt是否繼續(xù)添加貨物信息(y/n=yes/no):); /*詢問用戶是否繼續(xù)輸入下一圖書記錄*/getchar(); /*緩停作用*/ NUM+; /*已經(jīng)記錄的書籍數(shù)自動加1*/scanf(%c, &c); if (c = y) BOOKNUM.next=&BOOKNU
10、M+1;new_record(); else BOOKNUM.next=NULL;fp=fopen(BOOK.dat,w); fwrite(BOOK,sizeof(struct record),NUM,fp);return; /*2-顯示圖書記錄功能*/void browse()int i,j;int p1000;char cid20;for(i=0;iNUM;i+)BOOKi.pd=1;for(i=0;iNUM;i+) for(j=0;jNUM ;j+) if(BOOKj.pd) strcpy(cid,BOOKj.sm);pi=j; for(j=0;jNUM;j+) if(strcmp(BO
11、OKj.sm,cid)0&BOOKj.pd) pi=j; BOOKpi.pd=0;system(cls);if (NUM != 0)printf(nt-您正在使用按書名排序功能-);printf(nnt序號t編號t書名t作者t 單價t 數(shù)量t出版社n);for(i = 0; i NUM; i+) printf(t %dt %s t%s t%s t%ft%dt %sn,i + 1,BOOKpi.id,BOOKpi.sm,BOOKpi.zz,BOOKpi.dj,BOOKpi.sl,BOOKpi.cbs);getchar();printf(nt-);elseprintf(nttSorry,there
12、 is no data!);printf(nnt Press Enter to return to the main menu :);getchar();return;/*3-增加圖書記錄功能*/void append()char c;system(cls);printf(ntt*您正在使用圖書信息添加功能*);printf(ntt請輸入編號:);scanf(%s,BOOKNUM.id);printf(ntt請輸入書名:);scanf(%s, BOOKNUM.sm);printf(ntt請輸入作者:);scanf(%s, BOOKNUM.zz);printf(ntt請輸入單價:);scanf(
13、%lf, &BOOKNUM.dj);printf(ntt請輸入數(shù)量:);scanf(%d, &BOOKNUM.sl);printf(ntt請輸入出版社:);scanf(%s, BOOKNUM.cbs);printf(ntt是否繼續(xù)添加圖書信息(y/n):);getchar(); BOOKNUM-1.next=&BOOKNUM;scanf(%c, &c);if (c = y) BOOKNUM.next=&BOOKNUM+1; new_record();else BOOKNUM.next=NULL;NUM+;fp=fopen(BOOK.dat,w); fwrite(BOOK,sizeof(stru
14、ct record),NUM,fp);return;/*4-刪除圖書記錄功能*/void delet()char cid20;int i,p=0;system(cls);printf(ntt*您正在使用圖書信息刪除功能*);printf(ntt請輸入要刪除的圖書編號:);scanf(%s,cid);for(i=0;iNUM;i+)if(strcmp(BOOKi.id,cid)=0)p=1;break;if(p)for(;iNUM-1;i+)/*用后者信息替換前者信息,實現(xiàn)刪除功能*/ strcpy(BOOKi.id,BOOKi+1.id); strcpy(BOOKi.sm,BOOKi+1.sm
15、); strcpy(BOOKi.zz,BOOKi+1.zz); BOOKi.dj=BOOKi+1.dj; BOOKi.sl=BOOKi+1.sl; strcpy(BOOKi.cbs,BOOKi+1.cbs); BOOKi.next=&BOOKi+1; BOOKi.next=NULL; fp=fopen(BOOK.dat,w); fwrite(BOOK,sizeof(struct record),i,fp); NUM-;else printf(nttInvalid operation!n); getchar();return;/*5-修改圖書記錄功能*/void modi()char cid20
16、;int i,p=0;system(cls);printf(ntt*您正在使用圖書信息修改功能*);printf(ntt請輸入要修改的圖書編號:);scanf(%s,cid);for(i=0;iNUM;i+)if(strcmp(BOOKi.id,cid)=0)p=1;break;if(p)system(cls);printf(ntt*請輸入圖書修改信息*);printf(ntt請輸入編號:);scanf(%s,BOOKi.id);printf(ntt請輸入書名:);scanf(%s, BOOKi.sm);printf(ntt請輸入作者:);scanf(%s, BOOKi.zz);printf(
17、ntt請輸入單價:);scanf(%lf, &BOOKi.dj);printf(ntt請輸入數(shù)量:);scanf(%d, &BOOKi.sl);printf(ntt請輸入出版社:);scanf(%s, BOOKi.cbs); printf(nttCongratulation!-Successfully modifiedn); printf(nttPress Enter to replace: ); getchar();fp=fopen(BOOK.dat,w); fwrite(BOOK,sizeof(struct record),i,fp);else printf(nttInvalid oper
18、ation!n); getchar();return;/*6-查詢圖書記錄功能*/void search() int choice,p=0,i; char cid20;system(cls);printf(ntt-您正在使用圖書信息查詢功能系統(tǒng)-n);printf(ntt查詢子菜單);printf(ntt );printf(ntt*1-根據(jù)編號查詢*);printf(ntt*2-根據(jù)書名查詢*);printf(ntt*3-根據(jù)作者查詢*);printf(ntt*4-根據(jù)出版社查詢*);printf(ntt*0-退出本系統(tǒng)*);printf(ntt );printf(ntt);printf(nt
19、t請選擇所需要的功能:);scanf(%1d,&choice);if(choice)system(cls);printf(ntt*請輸入查詢關鍵字*);printf(ntt您要找的關鍵字:);scanf(%s,cid); switch (choice)case 0: return;case 1: system(cls); if (NUM != 0) printf(nt-搜索結(jié)果如下-); printf(nnt序號t編號t書名t作者t 單價t 數(shù)量t 出版社n); for(i = 0; i NUM; i+) if(strcmp(BOOKi.id,cid)=0) printf(t%dt%st%st
20、%st%ft%dt%sn,i + 1,BOOKi.id,BOOKi.sm,BOOKi.zz,BOOKi.dj,BOOKi.sl,BOOKi.cbs);printf(nt -); printf(nnt Press Enter to return :);getchar(); break;case 2: system(cls); if (NUM != 0) printf(nt-搜索結(jié)果如下-); printf(nnt序號t編號t書名t作者t 單價t 數(shù)量t 出版社n); for(i = 0; i NUM; i+) if(strcmp(BOOKi.sm,cid)=0) printf(t%dt%st%s
21、t%st%ft%dt%sn,i + 1,BOOKi.id,BOOKi.sm,BOOKi.zz,BOOKi.dj,BOOKi.sl,BOOKi.cbs);printf(nt -);printf(nnt Press Enter to return :);getchar(); break; case 3: system(cls); if (NUM != 0) printf(nt-搜索結(jié)果如下-); printf(nnt序號t編號t書名t作者t 單價t 數(shù)量t 出版社n); for(i = 0; i NUM; i+) if(strcmp(BOOKi.zz,cid)=0) printf(t%dt%st%
22、st%st%ft%dt%sn,i + 1,BOOKi.id,BOOKi.sm,BOOKi.zz,BOOKi.dj,BOOKi.sl,BOOKi.cbs);printf(nt -);printf(nnt Press Enter to return :);getchar(); break;case 4: system(cls); if (NUM != 0) printf(nt-搜索結(jié)果如下-); printf(nnt序號t編號t書名t作者t 單價t 數(shù)量t 出版社n); for(i = 0; i NUM; i+) if(strcmp(BOOKi.cbs,cid)=0) printf(t%dt%st%st%st%ft%dt%sn,i + 1,BOOKi.id,BOOKi.sm,BOOKi.zz,BOOKi.dj,BOOKi.sl,BOOKi.cbs);printf(nt -);printf(nnt Press Enter to return :);getchar(); break;default:printf(nttSorry,there is no data!);getchar();/*7-統(tǒng)計圖書記錄功能*/void cout() int choice=1,i,z=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 調(diào)查物聯(lián)網(wǎng)安全
- 兒童發(fā)展與初等教育的關聯(lián)考核試卷
- 初等教育的藝術(shù)實踐任務考核試卷
- 安全標準化與生產(chǎn)質(zhì)量保障考核試卷
- 智能咖啡機消費市場研究報告考核試卷
- 茶葉行業(yè)托盤租賃協(xié)議
- 通信運營商用戶隱私保護政策
- 工業(yè)園區(qū)廠房租賃解約協(xié)議
- 橋梁建設臨時圍墻協(xié)議
- 知識產(chǎn)權(quán)侵權(quán)訴訟指南
- 柴油發(fā)電機組應急預案
- 徠卡v lux4中文說明書大約工作時間和可拍攝圖像數(shù)量
- 格力2匹柜機檢測報告KFR-50LW(50530)FNhAk-B1(性能)
- 分級護理制度考試題及答案
- 小學生勞動課炒菜教案(精選8篇)
- 高考作文模擬寫作:“德”與“得”導寫及范文
- 江蘇專轉(zhuǎn)本《大學語文》考綱
- 中國青瓷藝術(shù)鑒賞智慧樹知到答案章節(jié)測試2023年麗水學院
- 2023年小學數(shù)學手抄報比賽活動總結(jié)(3篇)
- 2023年版一級建造師-水利工程實務電子教材
- 中國當代文學智慧樹知到答案章節(jié)測試2023年青島濱海學院
評論
0/150
提交評論