2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論