版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 圖書銷售管理系統(tǒng)設(shè)計(jì)2</p><p><b> 一、設(shè)計(jì)要求2</b></p><p> 二、總體設(shè)計(jì)思路2</p><p> 1.主要功能:系統(tǒng)主要包括八個(gè)功能模塊。2</p><p> 2.總體思路框圖3</p><p> 3.系統(tǒng)流程圖
2、3</p><p> 三、主要參數(shù)和函數(shù)4</p><p><b> 1.全局變量4</b></p><p><b> 2.主要函數(shù)4</b></p><p> 四、程序調(diào)試及整體實(shí)現(xiàn)13</p><p> 1.主菜單運(yùn)行界面13</p&g
3、t;<p> 2.圖書信息錄入界面13</p><p> 3.圖書信息瀏覽界面14</p><p> 4.圖書查詢界面14</p><p> 5.圖書信息修改界面15</p><p> 6.圖書信息刪除界面15</p><p> 7.圖書信息排序主界面16</p&
4、gt;<p> 8.購(gòu)書清單界面17</p><p> 五、體會(huì)總結(jié)17</p><p><b> 附件18</b></p><p> 圖書銷售管理系統(tǒng)設(shè)計(jì)</p><p><b> 設(shè)計(jì)要求</b></p><p> 圖書信息包括:序號(hào)、
5、書名、作者、出版單位、價(jià)格。</p><p> 系統(tǒng)以菜單方式工作。</p><p> 圖書信息錄入功能(圖書信息用文件保存)--輸入。</p><p> 圖書信息的刪除與修改功能。</p><p> 圖書信息瀏覽功能--輸出。</p><p> 查詢功能--算法:(按書名/作者查詢)。</p>
6、<p> 排序功能--算法:(按書名排序/按價(jià)格排序)。</p><p> 圖書購(gòu)買功能:統(tǒng)計(jì)選購(gòu)圖書的總價(jià),給出清單,屏幕輸出參考以下的實(shí)際購(gòu)書單。</p><p><b> 總體設(shè)計(jì)思路</b></p><p> 通過編譯一個(gè)C語言函數(shù),其中包含一個(gè)主函數(shù),多個(gè)子函數(shù),主函數(shù)調(diào)用余的子函數(shù)實(shí)現(xiàn)人們能夠簡(jiǎn)易、快捷的了解并找
7、到自己所學(xué)要的信息的功能。</p><p> 主要功能:系統(tǒng)主要包括八個(gè)功能模塊。</p><p> 圖書信息的錄入:將所要錄入的圖書信息包括序號(hào)、書名、作者、出版社、價(jià)格等錄入一個(gè)文本文件中。每錄入一本書,系統(tǒng)提示是否繼續(xù),若不繼續(xù),則返回主界面。</p><p> 圖書信息的查詢:將所有圖書信息包括序號(hào)、書名、出版社、作者、價(jià)格等顯示在屏幕上,最后返回主界
8、面。</p><p> 圖書信息的查詢:通過輸入圖書名稱或作者完成圖書信息的查找,并在屏幕上顯示,返回主界面。</p><p> 圖書信息的修改:通過輸入序號(hào),判斷此圖書是否存在,若不存在則提示用戶重新輸入圖書序號(hào),若存在則要求輸入要修改圖書的序號(hào),對(duì)該圖書重新錄入信息。錄入后,提示是否繼續(xù),如不繼續(xù),則返回主界面。 </p><p> 圖書信息的刪除:通過輸
9、入序號(hào),判斷此圖書是否存在,若存在, 則提示用戶是否顯示刪除后的信息,若不存在則提示用戶重新輸入圖書序號(hào),刪除完畢后,返回主界面。</p><p> 圖書信息的排序:通過輸入書名或價(jià)格,提示用戶輸入想要使用的排序方式,排序后的信息顯示在屏幕上,返回主界面。</p><p> 圖書的購(gòu)買:通過輸入要購(gòu)買的圖書序號(hào),計(jì)算出總本書和總價(jià)格并連同其他購(gòu)買信息一并顯示在屏幕上。</p>
10、;<p> 退出系統(tǒng):返回主頁面。</p><p><b> 總體思路框圖</b></p><p> 圖1. 總體思路框圖</p><p><b> 系統(tǒng)流程圖</b></p><p><b> 圖2. 系統(tǒng)流程圖</b></p><
11、p><b> 主要參數(shù)和函數(shù)</b></p><p><b> 全局變量</b></p><p> 定義一個(gè)存放圖書信息的結(jié)構(gòu)體struct book,并定義此類型的變量struct book list[N],用來表示圖書數(shù)組。</p><p> struct book /*定義結(jié)構(gòu)體類型*/<
12、;/p><p><b> {</b></p><p> int num; /*序號(hào)為整型*/</p><p> char name[40]; /*書名為字符串*/</p><p> char author[20]; /*作者為字符串*/</p><p> char pub
13、lish[50]; /*出版社為字符串*/</p><p> float price; /*價(jià)格為浮點(diǎn)型*/</p><p><b> };</b></p><p> struct book list[N]; /*定義struct book類型的變量 list N個(gè)*/</p><p> int
14、 Count=0,定義全局變量,用來表示圖書的個(gè)數(shù),初始值為0。</p><p><b> 主要函數(shù)</b></p><p> 主函數(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至cas
15、e7分別實(shí)現(xiàn)不同的功能,并能返回主界面;case0直接返回主界面。</p><p><b> 程序代碼:</b></p><p> void main() </p><p><b> { </b></p><p> int choice1;</p><p>
16、; printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");</p><p> printf(" * 歡迎進(jìn)入圖書銷售管理系統(tǒng) *\n");</p><p> printf(" *~~~~
17、~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");</p><p><b> do </b></p><p><b> { </b></p><p> printf("#################################################
18、#"); /*顯示菜單*/</p><p> printf("功能選項(xiàng): \n");</p><p> printf(" 1 : 圖書信息錄入 \n&q
19、uot;);</p><p> printf(" 2 : 圖書信息瀏覽 \n");</p><p> printf(" 3 : 圖書信息查詢 \n");</p>
20、<p> printf(" 4 : 圖書信息修改 \n");</p><p> printf(" 5 : 圖書信息刪除 \n");</p><p> pri
21、ntf(" 6 : 圖書信息排序 \n");</p><p> printf(" 7 : 圖書的購(gòu)買 \n");</p><p> printf(" 0 :
22、 退出系統(tǒng) \n");</p><p> printf("###############################################################");</p><p> printf("\t請(qǐng)選擇操作:");&l
23、t;/p><p> scanf("%d", &choice1); </p><p> switch (choice1) /*菜單選擇*/</p><p><b> {</b></p><p> case 1 : input();break;</p><p
24、> case 2 : show_bookinformation(list); break ;</p><p> case 3 : check_bookinformation (list); break ;</p><p> case 4 : modify_bookinformation (list); break ;</p><p> case 5
25、 :delete_bookinformation(list);break ;</p><p> case 6 :reorder_bookinformation(list);break;</p><p> case 7 :buytotal(list);break;</p><p> case 0 :break ;</p><p><
26、b> }</b></p><p> }while (choice1!=0);</p><p> printf("謝謝! 歡迎下次使用使用!\n");</p><p><b> }</b></p><p> 打開數(shù)據(jù)文件函數(shù)open(),把文件的信息打開到一個(gè)結(jié)構(gòu)體數(shù)組中。定
27、義指向文件的指針讀取數(shù)據(jù),若指針指向NULL,則顯示“無法操作,無文件信息?。?!”,要調(diào)用fopen、fclose和fread函數(shù)。</p><p><b> 程序代碼:</b></p><p> void open()</p><p><b> {</b></p><p><b>
28、 int i;</b></p><p><b> FILE *fp;</b></p><p> if((fp=fopen("book.txt","rb+"))==NULL)</p><p><b> {</b></p><p> prin
29、tf("無法操作,無文件信息!!!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> for(i=0;i<N;i++)</p><p><b> {</b></p>
30、<p> if(fread(&list[i],sizeof(struct book),1,fp)==0)</p><p><b> {</b></p><p> printf("數(shù)據(jù)輸出失敗!!!\n");</p><p><b> exit(0);</b></p&g
31、t;<p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> 信息錄入文件函數(shù)read(),函數(shù)類型為void。定義指向文件的指針讀取數(shù)據(jù),把輸入
32、的圖書信息保存到文件中,若指針指向NULL,則輸出無法操作。利用for循環(huán)保存信息到指定文件。</p><p><b> 程序代碼:</b></p><p> void read()</p><p><b> {</b></p><p><b> int i;</b>&
33、lt;/p><p><b> FILE *fp;</b></p><p> if((fp=fopen("book.txt","wr+"))==NULL)</p><p> { printf("\n不能打開文件!!!\n");</p><p> exit(
34、0); }</p><p> for(i=0;i<N;i++)</p><p> if(fwrite(&list[i],sizeof(struct book),1,fp)!=1)</p><p> printf("文件寫入錯(cuò)誤!!!\n");</p><p> fclose(fp);</p>
35、;<p><b> }</b></p><p> 信息錄入系統(tǒng)函數(shù)input(),提供錄入圖書信息功能。在for循環(huán)下,一次提示用戶輸入圖書序號(hào)、書名、作者、出版社以及價(jià)格。每循環(huán)一次,提示用戶是否繼續(xù),當(dāng)選“1”時(shí)繼續(xù)輸入圖書信息,選“2”時(shí)返回主界面;每循環(huán)一次Count自增1。</p><p><b> 程序代碼:</b>
36、;</p><p> void input()</p><p><b> { </b></p><p> int i,k,j,t;</p><p> for(j=0;list[j].num!=0;j++)</p><p><b> t=j+1;</b></p&
37、gt;<p> for(i=t;i<N;i++)</p><p><b> {</b></p><p> printf("\t請(qǐng)輸入您的圖書序號(hào):");</p><p> scanf("\t%d",&list[i].num);</p><p>
38、 printf("\t請(qǐng)輸入書名:");</p><p> scanf("\t%s",list[i].name);</p><p> printf("\t請(qǐng)輸入作者:");</p><p> scanf("\t%s",list[i].author);</p><
39、p> printf("\t請(qǐng)輸入出版社:");</p><p> scanf("\t%s",list[i].publish);</p><p> printf("\t請(qǐng)輸入價(jià)格:");</p><p> scanf("\t%f",&list[i].price);&l
40、t;/p><p> fflush(stdin);</p><p> printf("\t\n是否繼續(xù)錄入?(1.是 2.否)");</p><p> scanf("%d",&k);</p><p> if(k==2) break;</p><p><b>
41、 }</b></p><p> Count=i+1;</p><p><b> read();</b></p><p><b> }</b></p><p> 刪除圖書信息函數(shù)delete_bookinformation (struct book list[]),提供對(duì)圖書信息的
42、刪除功能。此函數(shù)運(yùn)行時(shí)利用open函數(shù)打開數(shù)據(jù)文件,讀取信息;利用for循環(huán),當(dāng)輸入序號(hào)與循環(huán)中的某一對(duì)應(yīng)數(shù)據(jù)相同時(shí),將后一個(gè)賦值給前一個(gè)從而把要?jiǎng)h除的圖書信息刪除掉。如果i=0,則直接輸出“圖書銷售系統(tǒng)沒有你要輸出的圖書信息?。?!”。刪除后會(huì)顯示“刪除成功”,同時(shí)Count自減1;最后還要執(zhí)行read函數(shù),重新記錄圖書信息。</p><p><b> 程序代碼:</b></p>
43、;<p> void delete_bookinformation (struct book list[])</p><p><b> {</b></p><p> int j,k,d,i=0;</p><p><b> open();</b></p><p> printf
44、("請(qǐng)輸入要?jiǎng)h除的圖書的序號(hào):\n");</p><p> scanf("%d",&d);</p><p> for(j=0;list[j].num!=0;j++)</p><p><b> {</b></p><p> if(list[j].num==d)<
45、/p><p><b> {</b></p><p> for(k=j;list[k].num!=0;k++)</p><p> list[k]=list[k+1];</p><p><b> i++;</b></p><p><b> }</b>&
46、lt;/p><p><b> }</b></p><p><b> if(i==0)</b></p><p> printf("圖書銷售系統(tǒng)沒有你輸入的圖書序號(hào),請(qǐng)重新選擇輸入!!!\n");</p><p><b> else </b></p&g
47、t;<p> Count=Count-1;</p><p><b> read();</b></p><p> printf("刪除成功\n");</p><p><b> }</b></p><p> 修改圖書信息函數(shù)modify_bookinforma
48、tion (struct book list[]),提供對(duì)圖書信息的修改功能。首先提示用戶輸入要修改的圖書序號(hào),利用for循環(huán)找到要修改的list[],系統(tǒng)提示用戶依次輸入修改后的圖書序號(hào)、圖書名、作者、出版社、價(jià)格。如果輸入的序號(hào)a為0,則提示“未發(fā)現(xiàn)您要找的書!”。</p><p> 圖3. 修改函數(shù)流程圖</p><p><b> 程序代碼:</b><
49、/p><p> void modify_bookinformation (struct book list[])</p><p><b> {</b></p><p> int j,k=0,number;</p><p><b> open();</b></p><p>
50、 printf("\t請(qǐng)輸入您要修改的圖書的序號(hào):");</p><p> scanf("%d",&number);</p><p> for (j=0;list[j].num!=0;j++)</p><p> if (list[j].num==number) </p><p><
51、b> {</b></p><p> printf("\n\t請(qǐng)輸入您修改后的圖書信息:\n\n");</p><p> printf("\t請(qǐng)輸入您要修改的圖書的序號(hào):");</p><p> scanf("%d",&list[j].num);</p><
52、;p> printf("\t請(qǐng)輸入您修改后的書名:");</p><p> scanf("%s",list[j].name);</p><p> printf("\t請(qǐng)輸入您修改后的作者名:");</p><p> scanf("%s",list[j].author);&l
53、t;/p><p> printf("\t請(qǐng)輸入您修改后的出版社:");</p><p> scanf("%s",list[j].publish);</p><p> printf("\t請(qǐng)輸入您修改后的書的價(jià)格:");</p><p> scanf("%f",
54、&list[j].price);</p><p><b> read();</b></p><p> printf("\n修改成功!");</p><p><b> k++;</b></p><p><b> }</b></p>
55、<p><b> if (k==0)</b></p><p> printf("\n\n\t找不到需要修改的圖書!!");}</p><p> 圖書信息輸出函數(shù)show_bookinformation(struct book list[]),提供圖書信息輸出功能,瀏覽圖書信息。通過printf()語句將所有的圖書信息包括包括編號(hào)、
56、書名、出版社、作者、價(jià)格等信息顯示在屏幕上。運(yùn)用for語句加printf()實(shí)現(xiàn)圖書信息的循環(huán)輸出顯示。</p><p><b> 程序代碼:</b></p><p> void show_bookinformation(struct book list[])</p><p><b> {</b></p>
57、<p><b> int i;</b></p><p><b> open();</b></p><p> printf("\n********************圖書信息顯示************************\n");</p><p> printf("
58、;圖書序號(hào)\t圖書名\t作者名\t出版社\t圖書價(jià)格\n");</p><p> for(i=0;list[i].num!=0;i++)</p><p><b> {</b></p><p> printf(" %d\t\t%s\t%s\t%s\t%6.2f\n",list[i].num,list[i].n
59、ame, list[i].author,list[i].publish,list[i].price);</p><p><b> }</b></p><p><b> }</b></p><p> 圖書信息查詢函數(shù)check_bookinformation (struct book list[]),提供用戶根據(jù)圖書書
60、名或作者查詢圖書信息功能。通過printf()語句將所有的圖書信息包括包括編號(hào)、書名、出版社、作者、價(jià)格等信息顯示在屏幕上。運(yùn)用for語句加printf()實(shí)現(xiàn)圖書信息的循環(huán)輸出顯示。</p><p> 通過將switch語句與break語句聯(lián)合使用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。若選“1”實(shí)現(xiàn)按書名查詢;若選“2”實(shí)現(xiàn)按作者查詢。兩者代碼類似,都利用字符串操作,最后依次顯示查詢后的結(jié)果。</p><
61、p><b> 程序代碼:</b></p><p> void check_bookinformation (struct book list[]) /*查詢圖書信息*/</p><p><b> {</b></p><p> int j,i,t,k=0;</p><p> cha
62、r c[20],d[20];</p><p> printf("請(qǐng)輸入查詢方式:\n 1.按書名查詢 2按作者查詢:\n");</p><p> scanf("%d",&t);</p><p><b> if(t==1)</b></p><p><b>
63、; {</b></p><p><b> open();</b></p><p> printf("請(qǐng)輸入要查詢的書名號(hào):\n");</p><p> scanf("%s",c);</p><p> printf("\n *******你想要查詢
64、的圖書信息(按作者名)********* \n");</p><p> for(j=0;list[j].num!=0;j++)</p><p> if(strcmp(c,list[j].name)==0)</p><p><b> { </b></p><p> printf("圖書序號(hào)
65、\t圖書名\t作者名\t出版社\t圖書價(jià)格\n");</p><p> printf(" %d\t\t%s\t%s\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);</p><p><b> k++;</b>&
66、lt;/p><p><b> }</b></p><p><b> if(k==0)</b></p><p> printf("\n不存在你要查詢的圖書信息!!!\n");</p><p><b> }</b></p><p>&
67、lt;b> if(t==2)</b></p><p><b> {</b></p><p><b> open();</b></p><p> printf("請(qǐng)輸入要查詢的作者名:\n");</p><p> scanf("%s"
68、,d);</p><p> for(i=0;list[i].num!=0;i++)</p><p> if(strcmp(d,list[i].author)==0)</p><p><b> { </b></p><p> printf("圖書序號(hào)\t圖書名\t作者名\t出版社\t圖書價(jià)格\n&quo
69、t;);</p><p> printf(" %d\t\t%s\t%s\t%s\t%6.2f\n",list[i].num,list[i].name, list[i].author,list[i].publish,list[i].price);</p><p><b> k++;</b></p><p><b&g
70、t; }</b></p><p><b> if(k==0)</b></p><p> printf("\n不存在你要查詢的圖書信息!!!\n");</p><p><b> }</b></p><p><b> }</b></p
71、><p> 圖4. 查詢函數(shù)示意圖</p><p> 圖書信息排序函數(shù)reorder_bookinformation(struct book list[]),提供對(duì)圖書信息按書名和價(jià)格排序功能。排序共有兩種可選擇的方式,按書名排序和按價(jià)格排序。利用switch和break實(shí)現(xiàn)功能的選擇。</p><p> 按書名排序:利用選擇排序法和strcmp、strcpy函數(shù)
72、在for循環(huán)下依次重新循環(huán)賦值,按字母的先后順序依次排序。如果定義的指針fp指向NULL則顯示“can’t open the file!”,再利用for循環(huán)向屏幕輸出排序后的全部圖書信息,最后要返回主界面。</p><p> 按價(jià)格排序:價(jià)格按大小排序。利用冒泡排序法,在for循環(huán)下依次重新循環(huán)賦值,再利用for循環(huán)向屏幕輸出排序后的全部圖書信息,最后返回主界面。</p><p><
73、;b> 程序代碼:</b></p><p> void reorder_bookinformation(struct book list[])</p><p><b> {</b></p><p> int i,j,a,k;</p><p> struct book t;</p>
74、<p><b> FILE *fp;</b></p><p> char temp[40];</p><p><b> open();</b></p><p> printf("\n請(qǐng)選擇排序方式\n1---書名(按字母順序)\n2---價(jià)格(按從高到低)\n");</p>
75、;<p> scanf("%d",&a);</p><p><b> switch(a)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> for(i=0;i&l
76、t;Count-1;i++)</p><p><b> {k=i;</b></p><p> for(j=i+1;j<Count;j++)</p><p> if(strcmp(list[k].name,list[j].name)>0) k=j;</p><p><b> if(k!=i)&
77、lt;/b></p><p> { strcpy(temp,list[i].name);</p><p> strcpy(list[i].name,list[k].name);</p><p> strcpy(list[k].name,temp);</p><p><b> }</b></p>
78、<p><b> }</b></p><p> if((fp=fopen("book.txt","w"))==NULL)</p><p><b> {</b></p><p> printf("can't open the file!\n&qu
79、ot;);</p><p><b> exit(0);</b></p><p><b> }</b></p><p> printf("新序列為:\n");</p><p> for(j=0;j<Count;j++)</p><p><
80、b> { </b></p><p> printf("圖書序號(hào)\t圖書名\t作者名\t出版社\t圖書價(jià)格\n");</p><p> printf(" %d\t\t%s\t%s\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,li
81、st[j].price);</p><p><b> }</b></p><p><b> read();</b></p><p><b> break;</b></p><p><b> case 2:</b></p><p&
82、gt; for(k=0;list[k].num!=0;k++)</p><p> for(j=0;list[j].num!=0;j++)</p><p> if(list[j].price<list[j+1].price)</p><p> {t=list[j];list[j]=list[j+1];list[j+1]=t;}</p>&l
83、t;p> for(j=0;list[j].num!=0;j++)</p><p><b> {</b></p><p> printf("圖書序號(hào)\t圖書名\t作者名\t出版社\t圖書價(jià)格\n");</p><p> printf(" %d\t\t%s\t%s\t%s\t%6.2f\n",
84、list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);</p><p><b> k++;</b></p><p><b> }</b></p><p><b> read();</b></p>
85、<p><b> break;</b></p><p><b> }</b></p><p> 圖書購(gòu)買清單函數(shù)buytotal(struct book list[]),提供統(tǒng)計(jì)選購(gòu)圖書的總價(jià),給出清單的功能。用戶輸入所購(gòu)圖書的序號(hào),輸入“0”時(shí)結(jié)束,系統(tǒng)利用for循環(huán),當(dāng)輸入序號(hào)與系統(tǒng)內(nèi)所存序號(hào)相同時(shí),價(jià)格相加賦新值,書本數(shù)
86、同時(shí)計(jì)數(shù)。最后打印出想要的清單。</p><p><b> 程序代碼:</b></p><p> void buytotal(struct book list[])</p><p><b> {</b></p><p> int k,m,n,q,r,t=0;</p><p
87、> float sum=0;</p><p> char e[50],f[50],l[50],o[50],p[50];</p><p> printf("\n ***************************************************\n");</p><p> printf(
88、"\n 人民郵電出版社樣書清單 \n"); </p><p> printf("\n ***************************************************\n");</p><p> printf(" 請(qǐng)
89、輸入所購(gòu)各圖書的序號(hào)(輸入0 結(jié)束):\n");</p><p> scanf("%d",&q);</p><p><b> do</b></p><p><b> {</b></p><p> for(r=0;r<Count;r++)</p
90、><p><b> {</b></p><p> if(q==list[r].num)</p><p><b> {</b></p><p> sum=sum+list[r].price;</p><p><b> t++;</b></p&g
91、t;<p><b> }</b></p><p><b> } </b></p><p> scanf("%d",&q); </p><p> } while(q!=0);</p><p> printf("
92、 合計(jì)發(fā)書:%d\n",r);</p><p> printf(" 收書單位:");</p><p> scanf("%s",e);</p><p> printf("
93、 發(fā)書依據(jù):");</p><p> scanf("%s",f);</p><p> printf(" 價(jià)格:%.2f\n",sum);</p><p> printf(" 郵政編碼:"
94、;);</p><p> scanf("%d",&k);</p><p> printf(" 收貨地址:");</p><p> scanf("%s",l);</p><p> printf("
95、 聯(lián)系電話:");</p><p> scanf("%d",&m);</p><p> printf(" 制單日期:");</p><p> scanf("%d",&n);<
96、;/p><p> printf(" 貨運(yùn)公司:");</p><p> scanf("%s",o);</p><p> printf(" 驗(yàn)書人:");</p><p>
97、scanf("%s",p);}</p><p><b> 程序調(diào)試及整體實(shí)現(xiàn)</b></p><p><b> 主菜單運(yùn)行界面</b></p><p> 連接,檢錯(cuò)完畢后,運(yùn)行程序,開始進(jìn)入主菜單。結(jié)果顯示如下:</p><p><b> 圖5. 主菜單界面&l
98、t;/b></p><p><b> 圖書信息錄入界面</b></p><p> 在主菜單上選擇“1”,根據(jù)提示錄入圖書信息。屏幕顯示如下:</p><p> 圖6. 圖書信息錄入界面</p><p><b> 圖書信息瀏覽界面</b></p><p> 在主
99、菜單上選擇“2”,顯示以下全部圖書信息并回到主界面。</p><p> 圖7. 圖書信息瀏覽界面</p><p><b> 圖書查詢界面</b></p><p> 在主菜單上選擇“3”,然后根據(jù)提示選擇查詢方式。</p><p> 選擇“1”時(shí),若圖書名存在,則顯示以下全部圖書信息并回到主界面。</p>
100、;<p> 圖8. 按書名圖書查詢界面</p><p> 選擇“2”時(shí),若圖書作者存在,則顯示以下全部圖書信息并回到主界面。</p><p> 圖9. 按作者圖書查詢界面</p><p><b> 圖書信息修改界面</b></p><p> 在主界面上選擇“4”, 若圖書序號(hào)存在,根據(jù)提示輸入修改
101、信息,顯示以下結(jié)果:</p><p> 圖10. 圖書信息修改界面</p><p> 在主菜單上選擇“2”,顯示修改后的信息。</p><p><b> 圖書信息刪除界面 </b></p><p> 在主菜單上選擇“5”,然后根據(jù)提示選擇刪除的圖書序號(hào)。若圖書序號(hào)存在,則刪除選擇結(jié)果如下:</p>
102、<p> 圖11. 圖書信息刪除界面</p><p> 在主菜單上選擇“2”,顯示刪除后的信息。</p><p> 下圖為刪除后的信息:</p><p> 圖12. 刪除后結(jié)果</p><p><b> 圖書信息排序主界面</b></p><p> 在主菜單上選擇“6”,然后
103、根據(jù)提示選擇排序方式。</p><p> 選擇“1”時(shí),按書名排序(根據(jù)英文字母排序)。</p><p><b> 顯示結(jié)果為:</b></p><p> 圖13. 按書名排序結(jié)果</p><p> 選擇“2”,按價(jià)格排序(價(jià)格由高到低)。</p><p><b> 排序結(jié)果如
104、下:</b></p><p> 圖14. 按價(jià)格排序結(jié)果</p><p><b> 購(gòu)書清單界面</b></p><p> 在主菜單上選擇“7”進(jìn)入購(gòu)書界面,選擇想購(gòu)書的序號(hào)最后輸入“0”回車,即可顯示購(gòu)書數(shù)量和總價(jià),根據(jù)提示輸入相關(guān)信息完成清單。</p><p><b> 購(gòu)書清單如下:&
105、lt;/b></p><p> 圖15. 購(gòu)書清單示例</p><p><b> 體會(huì)總結(jié)</b></p><p> 通過這次課程設(shè)計(jì),使我對(duì)C語言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,通過學(xué)習(xí)也有所改進(jìn);再有對(duì)C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的
106、正確使用不夠熟悉,還有對(duì)C語言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,所以后在學(xué)習(xí)過程中,我會(huì)更加注視實(shí)踐操作。</p><p> 在課程設(shè)計(jì)過程中,收獲知識(shí),提高能力的同時(shí),我也懂得怎么樣去制定、實(shí)現(xiàn)計(jì)劃,課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)發(fā)現(xiàn)提出分析和解決實(shí)際問題鍛煉實(shí)踐能力的重要環(huán)節(jié)是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,可以學(xué)到很多很多的東西,同
107、時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。</p><p> 通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)一些前面學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,在設(shè)計(jì)中我們遇到了很多編程問題,運(yùn)用的函數(shù)也是非常的復(fù)雜,所以設(shè)計(jì)程序一定要仔細(xì),不容一點(diǎn)的馬虎。當(dāng)然也有大問
108、題,關(guān)于文件的操作,是我們最大的問題。要有模塊化思維能力 ,就是編寫任何一個(gè)功能模塊或函數(shù)的時(shí)候,要多想一些,不要局限在完成當(dāng)前任務(wù)的簡(jiǎn)單思路上,想想看該模塊是否可以脫離這個(gè)系統(tǒng)存在,是否可以通過簡(jiǎn)單的修改參數(shù)的方式在其他系統(tǒng)和應(yīng)用環(huán)境下直接引用,這樣就能極大避免重復(fù)性的開發(fā)工作。</p><p> 同時(shí),我也認(rèn)識(shí)到團(tuán)隊(duì)合作的力量,編程中遇到很多問題,但是通過和同學(xué)的交流學(xué)習(xí),改正了自身的不少缺陷,獲益匪淺。&
109、lt;/p><p><b> 附件</b></p><p><b> /*定義結(jié)構(gòu)體*/</b></p><p> #include "stdafx.h"</p><p> #include "string.h"</p><p>
110、 #include "stdlib.h"</p><p> #define N 100 /*定義圖書總?cè)萘繛?00*/</p><p> int Count=0; /*定義全局變量,用來表示圖書的個(gè)數(shù)*/</p><p> struct book /*定義結(jié)構(gòu)體類型*/</p><p><b
111、> {</b></p><p> int num; /*序號(hào)為整型*/</p><p> char name[40]; /*書名為字符串*/</p><p> char author[20]; /*作者為字符串*/</p><p> char publish[50]; /*出版社為字符串*/&
112、lt;/p><p> float price; /*價(jià)格為浮點(diǎn)型*/</p><p><b> };</b></p><p> struct book list[N]; /*定義struct book類型的變量 list N個(gè)*/</p><p> void show_bookinformation(
113、struct book list[]); /*聲明圖書信息瀏覽函數(shù)*/</p><p> void check_bookinformation (struct book list[]); /*聲明圖書信息查詢函數(shù)*/</p><p> void modify_bookinformation (struct book list[]); /*聲明圖書信息修改函數(shù)*/</
114、p><p> void delete_bookinformation (struct book list[]); /*聲明圖書信息刪除函數(shù)*/</p><p> void reorder_bookinformation(struct book list[]); /*聲明圖書信息排序函數(shù)*/</p><p> void buytotal(struct book
115、list[]); /*聲明圖書購(gòu)買信息函數(shù)*/</p><p> void read(); /*聲明數(shù)據(jù)讀入函數(shù)*/ </p><p> void input(); /*聲明圖書信息錄入函數(shù)*/ </p><p> void open(); /*聲明數(shù)據(jù)信息打開函數(shù)*/</p&
116、gt;<p><b> /*主函數(shù)*/</b></p><p> void main() </p><p><b> { </b></p><p> int choice1;</p><p> printf(" *~~~~~~~~
117、~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");</p><p> printf(" * 歡迎進(jìn)入圖書銷售管理系統(tǒng) *\n");</p><p> printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n&
118、quot;);</p><p><b> do </b></p><p><b> { </b></p><p> printf("################################################################################")
119、; /*顯示菜單*/</p><p> printf(" 功能選項(xiàng): \n");</p><p> printf(" 1 : 圖書信息錄入
120、 \n");</p><p> printf(" 2 : 圖書信息瀏覽 \n");</p><p> printf(" 3 : 圖書信息查詢
121、 \n");</p><p> printf(" 4 : 圖書信息修改 \n");</p><p> printf("
122、 5 : 圖書信息刪除 \n");</p><p> printf(" 6 : 圖書信息排序 \n");</p><p> printf("
123、 7 : 圖書的購(gòu)買 \n");</p><p> printf(" 0 : 退出系統(tǒng) \n");</p><p>
124、 printf("################################################################################");</p><p> printf("\t請(qǐng)選擇操作:");</p><p> scanf("%d", &choice1); &l
125、t;/p><p> switch (choice1) /*菜單選擇*/</p><p><b> {</b></p><p><b> case 1 : </b></p><p><b> input();</b></p><p><
126、b> break;</b></p><p> case 2 : </p><p> show_bookinformation(list); </p><p><b> break ;</b></p><p><b> case 3 :</b></p>&
127、lt;p> check_bookinformation (list);</p><p><b> break ;</b></p><p><b> case 4 : </b></p><p> modify_bookinformation (list);</p><p><b&g
128、t; break ;</b></p><p><b> case 5 :</b></p><p> delete_bookinformation(list);</p><p><b> break ;</b></p><p><b> case 6 :</b&g
129、t;</p><p> reorder_bookinformation(list);</p><p><b> break;</b></p><p><b> case 7 :</b></p><p> buytotal(list);</p><p><b>
130、; break;</b></p><p><b> case 0 :</b></p><p><b> break ;</b></p><p><b> }</b></p><p> }while (choice1!=0);</p><
131、p> printf("謝謝! 歡迎下次使用使用!\n");</p><p><b> }</b></p><p> /*打開文件函數(shù)*/</p><p> void open()</p><p><b> {</b></p><p><
132、;b> int i;</b></p><p><b> FILE *fp;</b></p><p> if((fp=fopen("book.txt","rb"))==NULL)</p><p><b> {</b></p><p>
133、 printf("無法操作,無文件信息!!!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> for(i=0;i<N;i++)</p><p><b> {</b></
134、p><p> if(fread(&list[i],sizeof(struct book),1,fp)==0)</p><p><b> {</b></p><p> printf("數(shù)據(jù)輸出失敗!!!\n");</p><p><b> exit(0);</b><
135、;/p><p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> /*錄入文件函數(shù)*/</p><p> void
136、 read()</p><p><b> {</b></p><p><b> int i;</b></p><p><b> FILE *fp;</b></p><p> if((fp=fopen("book.txt","wr"
137、))==NULL)</p><p><b> {</b></p><p> printf("\n不能打開文件!!!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)報(bào)告---銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告~圖書管理系統(tǒng)
- c語言圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書管理系統(tǒng)-c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)銷售管理系統(tǒng)報(bào)告
- c語言課程設(shè)計(jì)銷售管理系統(tǒng)報(bào)告
- c語言課程設(shè)計(jì)銷售管理系統(tǒng)報(bào)告
- 圖書信息管理系統(tǒng)-《c語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- 圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告--c語言程序設(shè)計(jì)
- c語言課程設(shè)計(jì)--銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)----銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)-銷售管理系統(tǒng)
- 小型圖書管理系統(tǒng)c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)報(bào)告---圖書館管理系統(tǒng)
- c++課程設(shè)計(jì)---圖書銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告—服裝銷售系統(tǒng)
- c語言課程設(shè)計(jì)--圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)--圖書管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論