版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語言設(shè)計(jì)報(bào)告 設(shè)計(jì)課題:圖書館銷售系統(tǒng)設(shè)計(jì)姓名:學(xué)號(hào):學(xué)院:專業(yè):班級(jí): TOC o 1-3 h z u HYPERLINK l _Toc299616449 圖書銷售管理系統(tǒng)設(shè)計(jì) PAGEREF _Toc299616449 h 2 HYPERLINK l _Toc299616450 一、設(shè)計(jì)要求 PAGEREF _Toc299616450 h 2 HYPERLINK l _Toc299616451 二、總體設(shè)計(jì)思路 PAGEREF _Toc299616451 h 2 HYPERLINK l _Toc299616452 1.主要功能:系統(tǒng)主要包括八個(gè)功能模塊。 PAGEREF _Toc2996
2、16452 h 3 HYPERLINK l _Toc299616453 2.總體思路框圖 PAGEREF _Toc299616453 h 3 HYPERLINK l _Toc299616454 3.系統(tǒng)流程圖 PAGEREF _Toc299616454 h 3 HYPERLINK l _Toc299616455 三、主要參數(shù)和函數(shù) PAGEREF _Toc299616455 h 4 HYPERLINK l _Toc299616456 1.全局變量 PAGEREF _Toc299616456 h 4 HYPERLINK l _Toc299616457 2.主要函數(shù) PAGEREF _Toc299
3、616457 h 5 HYPERLINK l _Toc299616458 四、程序調(diào)試及整體實(shí)現(xiàn) PAGEREF _Toc299616458 h 14 HYPERLINK l _Toc299616459 1.主菜單運(yùn)行界面 PAGEREF _Toc299616459 h 14 HYPERLINK l _Toc299616460 2.圖書信息錄入界面 PAGEREF _Toc299616460 h 14 HYPERLINK l _Toc299616461 3.圖書信息瀏覽界面 PAGEREF _Toc299616461 h 14 HYPERLINK l _Toc299616462 4.圖書查詢界
4、面 PAGEREF _Toc299616462 h 15 HYPERLINK l _Toc299616463 5.圖書信息修改界面 PAGEREF _Toc299616463 h 16 HYPERLINK l _Toc299616464 6.圖書信息刪除界面 PAGEREF _Toc299616464 h 16 HYPERLINK l _Toc299616465 7.圖書信息排序主界面 PAGEREF _Toc299616465 h 17 HYPERLINK l _Toc299616466 8.購書清單界面 PAGEREF _Toc299616466 h 17 HYPERLINK l _Toc
5、299616467 五、體會(huì)總結(jié) PAGEREF _Toc299616467 h 18 HYPERLINK l _Toc299616468 附件 PAGEREF _Toc299616468 h 19圖書銷售管理系統(tǒng)設(shè)計(jì)設(shè)計(jì)要求圖書信息包括:序號(hào)、書名、作者、出版單位、價(jià)格。系統(tǒng)以菜單方式工作。圖書信息錄入功能圖書信息用文件保存輸入。圖書信息的刪除與修改功能。圖書信息瀏覽功能輸出。查詢功能算法:(按書名/作者查詢)。排序功能算法:按書名排序/按價(jià)格排序。圖書購置功能:統(tǒng)計(jì)選購圖書的總價(jià),給出清單,屏幕輸出參考以下的實(shí)際購書單。總體設(shè)計(jì)思路通過編譯一個(gè)C語言函數(shù),其中包含一個(gè)主函數(shù),多個(gè)子函數(shù),主
6、函數(shù)調(diào)用余的子函數(shù)實(shí)現(xiàn)人們能夠簡(jiǎn)易、快捷的了解并找到自己所學(xué)要的信息的功能。主要功能:系統(tǒng)主要包括八個(gè)功能模塊。圖書信息的錄入:將所要錄入的圖書信息包括序號(hào)、書名、作者、出版社、價(jià)格等錄入一個(gè)文本文件中。每錄入一本書,系統(tǒng)提示是否繼續(xù),假設(shè)不繼續(xù),那么返回主界面。圖書信息的查詢:將所有圖書信息包括序號(hào)、書名、出版社、作者、價(jià)格等顯示在屏幕上,最后返回主界面。圖書信息的查詢:通過輸入圖書名稱或作者完成圖書信息的查找,并在屏幕上顯示,返回主界面。圖書信息的修改:通過輸入序號(hào),判斷此圖書是否存在,假設(shè)不存在那么提示用戶重新輸入圖書序號(hào),假設(shè)存在那么要求輸入要修改圖書的序號(hào),對(duì)該圖書重新錄入信息。錄入
7、后,提示是否繼續(xù),如不繼續(xù),那么返回主界面。 圖書信息的刪除:通過輸入序號(hào),判斷此圖書是否存在,假設(shè)存在, 那么提示用戶是否顯示刪除后的信息,假設(shè)不存在那么提示用戶重新輸入圖書序號(hào),刪除完畢后,返回主界面。圖書信息的排序:通過輸入書名或價(jià)格,提示用戶輸入想要使用的排序方式,排序后的信息顯示在屏幕上,返回主界面。圖書的購置:通過輸入要購置的圖書序號(hào),計(jì)算出總本書和總價(jià)格并連同其他購置信息一并顯示在屏幕上。退出系統(tǒng):返回主頁面??傮w思路框圖圖書銷售管理系統(tǒng)退出系統(tǒng)圖書信息排序圖書信息刪除圖書信息修改圖書信息查詢圖書購置清單圖書信息瀏覽圖書信息錄入圖1. 總體思路框圖系統(tǒng)流程圖開始編譯運(yùn)行翻開文件數(shù)
8、據(jù)讀入結(jié)構(gòu)體中選擇調(diào)用不同函數(shù)執(zhí)行退出main函數(shù)圖2. 系統(tǒng)流程圖主要參數(shù)和函數(shù)全局變量定義一個(gè)存放圖書信息的結(jié)構(gòu)體struct book,并定義此類型的變量struct book listN,用來表示圖書數(shù)組。struct book /*定義結(jié)構(gòu)體類型*/ int num; /*序號(hào)為整型*/ char name40; /*書名為字符串*/ char author20; /*作者為字符串*/ char publish50; /*出版社為字符串*/ float price; /*價(jià)格為浮點(diǎn)型*/ ;struct book listN; /*定義struct book類型的變量 list N個(gè)
9、*/int Count=0,定義全局變量,用來表示圖書的個(gè)數(shù),初始值為0。主要函數(shù)主函數(shù)main(),控制整個(gè)系統(tǒng)的執(zhí)行流程,使系統(tǒng)菜單可以循環(huán)執(zhí)行。根據(jù)圖書館信息管理系統(tǒng)的要求,可設(shè)計(jì)一個(gè)主函數(shù),及定義多個(gè)用戶自定義函數(shù)。通過將switch語句與break語句聯(lián)合使用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)程序的設(shè)計(jì)。case1至case7分別實(shí)現(xiàn)不同的功能,并能返回主界面;case0直接返回主界面。程序代碼:void main() int choice1; printf( *n); printf( * 歡送進(jìn)入圖書銷售管理系統(tǒng) *n); printf( *n); do printf(#); /*顯示菜單*/p
10、rintf(功能選項(xiàng): n);printf( 1 : 圖書信息錄入 n);printf( 2 : 圖書信息瀏覽 n);printf( 3 : 圖書信息查詢 n);printf( 4 : 圖書信息修改 n);printf( 5 : 圖書信息刪除 n); printf( 6 : 圖書信息排序 n); printf( 7 : 圖書的購置 n);printf( 0 : 退出系統(tǒng) n);printf(#);printf(t請(qǐng)選擇操作:); scanf(%d, &choice1); switch (choice1) /*菜單項(xiàng)選擇擇*/ case 1 : input();break; case 2 : s
11、how_bookinformation(list); break ; case 3 : check_bookinformation (list); break ; case 4 : modify_bookinformation (list); break ; case 5 :delete_bookinformation(list);break ; case 6 :reorder_bookinformation(list);break; case 7 :buytotal(list);break; case 0 :break ; while (choice1!=0); printf(謝謝! 歡送下
12、次使用使用!n); 翻開數(shù)據(jù)文件函數(shù)open(),把文件的信息翻開到一個(gè)結(jié)構(gòu)體數(shù)組中。定義指向文件的指針讀取數(shù)據(jù),假設(shè)指針指向NULL,那么顯示“無法操作,無文件信息!,要調(diào)用fopen、fclose和fread函數(shù)。程序代碼:void open() int i; FILE *fp; if(fp=fopen(book.txt,rb+)=NULL) printf(無法操作,無文件信息!n); exit(0); for(i=0;iN;i+) if(fread(&listi,sizeof(struct book),1,fp)=0) printf(數(shù)據(jù)輸出失敗!n); exit(0); fclose(
13、fp);信息錄入文件函數(shù)read(),函數(shù)類型為void。定義指向文件的指針讀取數(shù)據(jù),把輸入的圖書信息保存到文件中,假設(shè)指針指向NULL,那么輸出無法操作。利用for循環(huán)保存信息到指定文件。程序代碼:void read() int i; FILE *fp; if(fp=fopen(book.txt,wr+)=NULL) printf(n不能翻開文件!n); exit(0); for(i=0;iN;i+) if(fwrite(&listi,sizeof(struct book),1,fp)!=1) printf(文件寫入錯(cuò)誤!n); fclose(fp);信息錄入系統(tǒng)函數(shù)input(),提供錄入
14、圖書信息功能。在for循環(huán)下,一次提示用戶輸入圖書序號(hào)、書名、作者、出版社以及價(jià)格。每循環(huán)一次,提示用戶是否繼續(xù),中選“1”時(shí)繼續(xù)輸入圖書信息,選“2”時(shí)返回主界面;每循環(huán)一次Count自增1。程序代碼:void input() int i,k,j,t; for(j=0;listj.num!=0;j+) t=j+1; for(i=t;iN;i+) printf(t請(qǐng)輸入您的圖書序號(hào):); scanf(t%d,&listi.num); printf(t請(qǐng)輸入書名:); scanf(t%s,); printf(t請(qǐng)輸入作者:); scanf(t%s,listi.author);
15、 printf(t請(qǐng)輸入出版社:); scanf(t%s,listi.publish); printf(t請(qǐng)輸入價(jià)格:); scanf(t%f,&listi.price); fflush(stdin); printf(tn是否繼續(xù)錄入?(1.是 2.否); scanf(%d,&k); if(k=2) break; Count=i+1; read();刪除圖書信息函數(shù)delete_bookinformation (struct book list),提供對(duì)圖書信息的刪除功能。此函數(shù)運(yùn)行時(shí)利用open函數(shù)翻開數(shù)據(jù)文件,讀取信息;利用for循環(huán),當(dāng)輸入序號(hào)與循環(huán)中的某一對(duì)應(yīng)數(shù)據(jù)相同時(shí),將后一個(gè)賦值給
16、前一個(gè)從而把要?jiǎng)h除的圖書信息刪除掉。如果i=0,那么直接輸出“圖書銷售系統(tǒng)沒有你要輸出的圖書信息!。刪除后會(huì)顯示“刪除成功,同時(shí)Count自減1;最后還要執(zhí)行read函數(shù),重新記錄圖書信息。程序代碼:void delete_bookinformation (struct book list) int j,k,d,i=0; open(); printf(請(qǐng)輸入要?jiǎng)h除的圖書的序號(hào):n); scanf(%d,&d); for(j=0;listj.num!=0;j+) if(listj.num=d) for(k=j;listk.num!=0;k+) listk=listk+1; i+; if(i=0)
17、 printf(圖書銷售系統(tǒng)沒有你輸入的圖書序號(hào),請(qǐng)重新選擇輸入!n); else Count=Count-1; read(); printf(刪除成功n);修改圖書信息函數(shù)modify_bookinformation (struct book list),提供對(duì)圖書信息的修改功能。首先提示用戶輸入要修改的圖書序號(hào),利用for循環(huán)找到要修改的list,系統(tǒng)提示用戶依次輸入修改后的圖書序號(hào)、圖書名、作者、出版社、價(jià)格。如果輸入的序號(hào)a為0,那么提示“未發(fā)現(xiàn)您要找的書!。輸入圖書序號(hào)查看是否存在此序號(hào)存在輸出;翻開文件,重新寫入圖書信息t=0,不存在輸出失敗提示信息開始圖3. 修改函數(shù)流程圖程序代
18、碼:void modify_bookinformation (struct book list) int j,k=0,number; open(); printf(t請(qǐng)輸入您要修改的圖書的序號(hào):); scanf(%d,&number); for (j=0;listj.num!=0;j+) if (listj.num=number) printf(nt請(qǐng)輸入您修改后的圖書信息:nn); printf(t請(qǐng)輸入您要修改的圖書的序號(hào):); scanf(%d,&listj.num); printf(t請(qǐng)輸入您修改后的書名:); scanf(%s,); printf(t請(qǐng)輸入您修改后
19、的作者名:); scanf(%s,listj.author); printf(t請(qǐng)輸入您修改后的出版社:); scanf(%s,listj.publish); printf(t請(qǐng)輸入您修改后的書的價(jià)格:); scanf(%f,&listj.price); read(); printf(n修改成功!); k+; if (k=0) printf(nnt找不到需要修改的圖書!);圖書信息輸出函數(shù)show_bookinformation(struct book list),提供圖書信息輸出功能,瀏覽圖書信息。通過printf()語句將所有的圖書信息包括包括編號(hào)、書名、出版社、作者、價(jià)格等信息顯示在屏幕
20、上。運(yùn)用for語句加printf()實(shí)現(xiàn)圖書信息的循環(huán)輸出顯示。程序代碼:void show_bookinformation(struct book list)int i;open();printf(n*圖書信息顯示*n);printf(圖書序號(hào)t圖書名t作者名t出版社t圖書價(jià)格n); for(i=0;listi.num!=0;i+) printf( %dtt%st%st%st%6.2fn,listi.num,, listi.author,listi.publish,listi.price); 圖書信息查詢函數(shù)check_bookinformation (struct bo
21、ok list),提供用戶根據(jù)圖書書名或作者查詢圖書信息功能。通過printf()語句將所有的圖書信息包括包括編號(hào)、書名、出版社、作者、價(jià)格等信息顯示在屏幕上。運(yùn)用for語句加printf()實(shí)現(xiàn)圖書信息的循環(huán)輸出顯示。通過將switch語句與break語句聯(lián)合使用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。假設(shè)選“1”實(shí)現(xiàn)按書名查詢;假設(shè)選“2實(shí)現(xiàn)按作者查詢。兩者代碼類似,都利用字符串操作,最后依次顯示查詢后的結(jié)果。程序代碼:void check_bookinformation (struct book list) /*查詢圖書信息*/int j,i,t,k=0;char c20,d20;printf(請(qǐng)輸入查詢
22、方式:n 1.按書名查詢 2按作者查詢:n);scanf(%d,&t); if(t=1) open(); printf(請(qǐng)輸入要查詢的書名號(hào):n); scanf(%s,c); printf(n *你想要查詢的圖書信息按作者名* n); for(j=0;listj.num!=0;j+) if(strcmp(c,)=0) printf(圖書序號(hào)t圖書名t作者名t出版社t圖書價(jià)格n); printf( %dtt%st%st%st%6.2fn,listj.num,, listj.author,listj.publish,listj.price); k+; if(
23、k=0) printf(n不存在你要查詢的圖書信息!n); if(t=2) open(); printf(請(qǐng)輸入要查詢的作者名:n); scanf(%s,d); for(i=0;listi.num!=0;i+) if(strcmp(d,listi.author)=0) printf(圖書序號(hào)t圖書名t作者名t出版社t圖書價(jià)格n); printf( %dtt%st%st%st%6.2fn,listi.num,, listi.author,listi.publish,listi.price); k+; if(k=0) printf(n不存在你要查詢的圖書信息!n); 輸入圖書名
24、稱/作者查找圖書名稱/作者是否存在存在顯示該圖書信息 不存在在提示不存在開始圖4. 查詢函數(shù)示意圖圖書信息排序函數(shù)reorder_bookinformation(struct book list),提供對(duì)圖書信息按書名和價(jià)格排序功能。排序共有兩種可選擇的方式,按書名排序和按價(jià)格排序。利用switch和break實(shí)現(xiàn)功能的選擇。按書名排序:利用選擇排序法和strcmp、strcpy函數(shù)在for循環(huán)下依次重新循環(huán)賦值,按字母的先后順序依次排序。如果定義的指針fp指向NULL那么顯示“cant open the file!,再利用for循環(huán)向屏幕輸出排序后的全部圖書信息,最后要返回主界面。按價(jià)格排序
25、:價(jià)格按大小排序。利用冒泡排序法,在for循環(huán)下依次重新循環(huán)賦值,再利用for循環(huán)向屏幕輸出排序后的全部圖書信息,最后返回主界面。程序代碼:void reorder_bookinformation(struct book list)int i,j,a,k;struct book t;FILE *fp;char temp40;open();printf(n請(qǐng)選擇排序方式n1書名按字母順序n2價(jià)格按從高到低n);scanf(%d,&a);switch(a)case 1: for(i=0;iCount-1;i+) k=i; for(j=i+1;j0) k=j; if(k!=i) strcpy(tem
26、p,); strcpy(,);strcpy(,temp); if(fp=fopen(book.txt,w)=NULL) printf(cant open the file!n); exit(0); printf(新序列為:n); for(j=0;jCount;j+) printf(圖書序號(hào)t圖書名t作者名t出版社t圖書價(jià)格n); printf( %dtt%st%st%st%6.2fn,listj.num,, listj.author,listj.publish,listj.price); rea
27、d();break;case 2:for(k=0;listk.num!=0;k+) for(j=0;listj.num!=0;j+) if(listj.pricelistj+1.price) t=listj;listj=listj+1;listj+1=t; for(j=0;listj.num!=0;j+) printf(圖書序號(hào)t圖書名t作者名t出版社t圖書價(jià)格n); printf( %dtt%st%st%st%6.2fn,listj.num,, listj.author,listj.publish,listj.price); k+; read(); break; 圖書購置
28、清單函數(shù)buytotal(struct book list),提供統(tǒng)計(jì)選購圖書的總價(jià),給出清單的功能。用戶輸入所購圖書的序號(hào),輸入“0”時(shí)結(jié)束,系統(tǒng)利用for循環(huán),當(dāng)輸入序號(hào)與系統(tǒng)內(nèi)所存序號(hào)相同時(shí),價(jià)格相加賦新值,書本數(shù)同時(shí)計(jì)數(shù)。最后打印出想要的清單。程序代碼: void buytotal(struct book list) int k,m,n,q,r,t=0; float sum=0; char e50,f50,l50,o50,p50; printf(n *n); printf(n 人民郵電出版社樣書清單 n); printf(n *n); printf( 請(qǐng)輸入所購各圖書的序號(hào)輸入0 結(jié)束
29、:n); scanf(%d,&q); do for(r=0;rCount;r+) if(q=listr.num) sum=sum+listr.price; t+; scanf(%d,&q); while(q!=0); printf( 合計(jì)發(fā)書:%dn,r); printf( 收書單位:); scanf(%s,e); printf( 發(fā)書依據(jù):); scanf(%s,f); printf( 價(jià)格:%.2fn,sum); printf( 郵政編碼:); scanf(%d,&k); printf( 收貨地址:); scanf(%s,l); printf( 聯(lián)系 :); scanf(%d,&m); p
30、rintf( 制單日期:); scanf(%d,&n); printf( 貨運(yùn)公司:); scanf(%s,o); printf( 驗(yàn)書人:); scanf(%s,p);程序調(diào)試及整體實(shí)現(xiàn)主菜單運(yùn)行界面連接,檢錯(cuò)完畢后,運(yùn)行程序,開始進(jìn)入主菜單。結(jié)果顯示如下:圖5. 主菜單界面圖書信息錄入界面在主菜單上選擇“1,根據(jù)提示錄入圖書信息。屏幕顯示如下:圖6. 圖書信息錄入界面圖書信息瀏覽界面在主菜單上選擇“2,顯示以下全部圖書信息并回到主界面。圖7. 圖書信息瀏覽界面圖書查詢界面在主菜單上選擇“3,然后根據(jù)提示選擇查詢方式。選擇“1時(shí),假設(shè)圖書名存在,那么顯示以下全部圖書信息并回到主界面。圖8.
31、按書名圖書查詢界面選擇“2時(shí),假設(shè)圖書作者存在,那么顯示以下全部圖書信息并回到主界面。圖9. 按作者圖書查詢界面圖書信息修改界面在主界面上選擇“4, 假設(shè)圖書序號(hào)存在,根據(jù)提示輸入修改信息,顯示以下結(jié)果:圖10. 圖書信息修改界面在主菜單上選擇“2,顯示修改后的信息。圖書信息刪除界面 在主菜單上選擇“5,然后根據(jù)提示選擇刪除的圖書序號(hào)。假設(shè)圖書序號(hào)存在,那么刪除選擇結(jié)果如下:圖11. 圖書信息刪除界面在主菜單上選擇“2,顯示刪除后的信息。下列圖為刪除后的信息:圖12. 刪除后結(jié)果圖書信息排序主界面在主菜單上選擇“6,然后根據(jù)提示選擇排序方式。選擇“1時(shí),按書名排序根據(jù)英文字母排序。顯示結(jié)果為:
32、圖13. 按書名排序結(jié)果選擇“2,按價(jià)格排序價(jià)格由高到低。排序結(jié)果如下:圖14. 按價(jià)格排序結(jié)果購書清單界面在主菜單上選擇“7進(jìn)入購書界面,選擇想購書的序號(hào)最后輸入“0回車,即可顯示購書數(shù)量和總價(jià),根據(jù)提示輸入相關(guān)信息完成清單。購書清單如下:圖15. 購書清單例如體會(huì)總結(jié)通過這次課程設(shè)計(jì),使我對(duì)C語言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多缺乏之處,通過學(xué)習(xí)也有所改良;再有對(duì)C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)C語言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,所以后在學(xué)習(xí)過程中,我會(huì)更加注視實(shí)踐操作。 在課程設(shè)計(jì)過
33、程中,收獲知識(shí),提高能力的同時(shí),我也懂得怎么樣去制定、實(shí)現(xiàn)方案,課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)發(fā)現(xiàn)提出分析和解決實(shí)際問題鍛煉實(shí)踐能力的重要環(huán)節(jié)是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)開展的日新月異,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,可以學(xué)到很多很多的東西,同時(shí)不僅可以穩(wěn)固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的缺乏之處,對(duì)一些前面學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,在設(shè)計(jì)中我們遇到了很多編程問題,
34、運(yùn)用的函數(shù)也是非常的復(fù)雜,所以設(shè)計(jì)程序一定要仔細(xì),不容一點(diǎn)的馬虎。當(dāng)然也有大問題,關(guān)于文件的操作,是我們最大的問題。要有模塊化思維能力 ,就是編寫任何一個(gè)功能模塊或函數(shù)的時(shí)候,要多想一些,不要局限在完成當(dāng)前任務(wù)的簡(jiǎn)單思路上,想想看該模塊是否可以脫離這個(gè)系統(tǒng)存在,是否可以通過簡(jiǎn)單的修改參數(shù)的方式在其他系統(tǒng)和應(yīng)用環(huán)境下直接引用,這樣就能極大防止重復(fù)性的開發(fā)工作。同時(shí),我也認(rèn)識(shí)到團(tuán)隊(duì)合作的力量,編程中遇到很多問題,但是通過和同學(xué)的交流學(xué)習(xí),改正了自身的不少缺陷,獲益匪淺。附件/*定義結(jié)構(gòu)體*/#include stdafx.h#include string.h#include stdlib.h#de
35、fine N 100 /*定義圖書總?cè)萘繛?00*/int Count=0; /*定義全局變量,用來表示圖書的個(gè)數(shù)*/struct book /*定義結(jié)構(gòu)體類型*/ int num; /*序號(hào)為整型*/ char name40; /*書名為字符串*/ char author20; /*作者為字符串*/ char publish50; /*出版社為字符串*/ float price; /*價(jià)格為浮點(diǎn)型*/ ;struct book listN; /*定義struct book類型的變量 list N個(gè)*/void show_bookinformation(struct book list); /
36、*聲明圖書信息瀏覽函數(shù)*/void check_bookinformation (struct book list); /*聲明圖書信息查詢函數(shù)*/void modify_bookinformation (struct book list); /*聲明圖書信息修改函數(shù)*/void delete_bookinformation (struct book list); /*聲明圖書信息刪除函數(shù)*/void reorder_bookinformation(struct book list); /*聲明圖書信息排序函數(shù)*/void buytotal(struct book list); /*聲明圖書購
37、置信息函數(shù)*/void read(); /*聲明數(shù)據(jù)讀入函數(shù)*/ void input(); /*聲明圖書信息錄入函數(shù)*/ void open(); /*聲明數(shù)據(jù)信息翻開函數(shù)*/*主函數(shù)*/void main() int choice1; printf( *n); printf( * 歡送進(jìn)入圖書銷售管理系統(tǒng) *n); printf( *n); do printf(#); /*顯示菜單*/printf( 功能選項(xiàng): n);printf( 1 : 圖書信息錄入 n);printf( 2 : 圖書信息瀏覽 n);printf( 3 : 圖書信息查詢 n);printf( 4 : 圖書信息修改 n)
38、;printf( 5 : 圖書信息刪除 n); printf( 6 : 圖書信息排序 n); printf( 7 : 圖書的購置 n);printf( 0 : 退出系統(tǒng) n);printf(#);printf(t請(qǐng)選擇操作:); scanf(%d, &choice1); switch (choice1) /*菜單項(xiàng)選擇擇*/ case 1 : input();break; case 2 : show_bookinformation(list); break ; case 3 : check_bookinformation (list); break ; case 4 : modify_book
39、information (list); break ; case 5 : delete_bookinformation(list); break ; case 6 : reorder_bookinformation(list);break; case 7 : buytotal(list);break; case 0 : break ; while (choice1!=0); printf(謝謝! 歡送下次使用使用!n); /*翻開文件函數(shù)*/void open() int i; FILE *fp; if(fp=fopen(book.txt,rb)=NULL) printf(無法操作,無文件信息
40、!n); exit(0); for(i=0;iN;i+) if(fread(&listi,sizeof(struct book),1,fp)=0) printf(數(shù)據(jù)輸出失敗!n); exit(0); fclose(fp);/*錄入文件函數(shù)*/void read() int i; FILE *fp; if(fp=fopen(book.txt,wr)=NULL) printf(n不能翻開文件!n); exit(0); for(i=0;iN;i+) if(fwrite(&listi,sizeof(struct book),1,fp)!=1) printf(文件寫入錯(cuò)誤!n); fclose(fp)
41、;/*錄入函數(shù)*/void input() int i,k,j,t; for(j=0;listj.num!=0;j+) t=j+1; for(i=0;iN;i+) printf(t請(qǐng)輸入您的圖書序號(hào):); scanf(t%d,&listi.num); printf(t請(qǐng)輸入書名:); scanf(t%s,); printf(t請(qǐng)輸入作者:); scanf(t%s,listi.author); printf(t請(qǐng)輸入出版社:); scanf(t%s,listi.publish); printf(t請(qǐng)輸入價(jià)格:); scanf(t%f,&listi.price); fflush
42、(stdin); printf(tn是否繼續(xù)錄入?(1.是 2.否); scanf(%d,&k); if(k=2) break; Count=i+1; read();/*刪除函數(shù)*/void delete_bookinformation (struct book list) int j,k,d,i=0; open(); printf(請(qǐng)輸入要?jiǎng)h除的圖書的序號(hào):n); scanf(%d,&d); for(j=0;listj.num!=0;j+) if(listj.num=d) for(k=j;listk.num!=0;k+) listk=listk+1; i+; if(i=0) printf(圖
43、書銷售系統(tǒng)沒有你輸入的圖書序號(hào),請(qǐng)重新選擇輸入!n); else Count=Count-1; read(); printf(刪除成功n);/*修改函數(shù)*/void modify_bookinformation (struct book list) int j,k=0,number; open(); printf(t請(qǐng)輸入您要修改的圖書的序號(hào):); scanf(%d,&number); for (j=0;listj.num!=0;j+) if (listj.num=number) printf(nt請(qǐng)輸入您修改后的圖書信息!nn); printf(t請(qǐng)輸入您要修改的圖書的序號(hào):); scanf
44、(%d,&listj.num); printf(t請(qǐng)輸入您修改后的書名:); scanf(%s,); printf(t請(qǐng)輸入您修改后的作者名:); scanf(%s,listj.author); printf(t請(qǐng)輸入您修改后的出版社:); scanf(%s,listj.publish); printf(t請(qǐng)輸入您修改后的書的價(jià)格:); scanf(%f,&listj.price); read(); printf(n修改成功!n); k+; if (k=0) printf(nnt找不到需要修改的圖書!);/*輸出函數(shù)*/void show_bookinformation(s
45、truct book list)int i;open();printf(n*圖書信息顯示*n);printf(圖書序號(hào)t圖書名tt作者名tt出版社tt圖書價(jià)格n); for(i=0;listi.num!=0;i+) printf( %dtt%st%stt%st%6.2fn,listi.num,, listi.author,listi.publish,listi.price); /*查詢函數(shù)*/void check_bookinformation (struct book list) /*查詢圖書信息*/int j,i,t,k=0;char c20,d20;printf(請(qǐng)輸
46、入查詢方式:n 1.按書名查詢 2按作者查詢:n);scanf(%d,&t); if(t=1) open(); printf(請(qǐng)輸入要查詢的書名號(hào):n); scanf(%s,c); printf(n *你想要查詢的圖書信息按作者名* n); printf(圖書序號(hào)t圖書名tt作者名tt出版社tt圖書價(jià)格n); for(j=0;listj.num!=0;j+) if(strcmp(c,)=0) printf( %dtt%st%stt%st%6.2fn,listj.num,, listj.author,listj.publish,listj.price); k+; if(k=0) printf(n不存在你要查詢的圖書信息!n); if(t=2) open(); printf(請(qǐng)輸入要查詢的作者名:n); scanf(%s,d); printf(圖書序號(hào)t圖書名tt作者名tt出版社tt圖書價(jià)格n); for(i=0;listi.num!=0;i+) if(strc
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 業(yè)主租賃委托協(xié)議
- 投資管理協(xié)議書
- 2025年度個(gè)人二手房居住權(quán)買賣及售后服務(wù)保障合同
- 2025年全球及中國電子級(jí)二氧化硅微粉行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球固態(tài)開關(guān)繼電器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國紫外波段高光譜成像(HSI)設(shè)備行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球H級(jí)三相干式電力變壓器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 尾款協(xié)議書工程尾款承諾協(xié)議書
- 2025版智慧社區(qū)項(xiàng)目投資合同范本3篇
- 二零二五年度銀行存款賬戶凍結(jié)與解凍服務(wù)合同3篇
- 2025年春新人教版物理八年級(jí)下冊(cè)課件 第十章 浮力 第4節(jié) 跨學(xué)科實(shí)踐:制作微型密度計(jì)
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合試卷(含答案)
- 收養(yǎng)能力評(píng)分表
- 山東省桓臺(tái)第一中學(xué)2024-2025學(xué)年高一上學(xué)期期中考試物理試卷(拓展部)(無答案)
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 幼兒園公開課:大班健康《國王生病了》課件
- 小學(xué)六年級(jí)說明文閱讀題與答案大全
- 人教pep小學(xué)六年級(jí)上冊(cè)英語閱讀理解練習(xí)題大全含答案
- 國壽增員長廊講解學(xué)習(xí)及演練課件
- 同等學(xué)力申碩英語考試高頻詞匯速記匯總
- GB 11887-2012首飾貴金屬純度的規(guī)定及命名方法
評(píng)論
0/150
提交評(píng)論