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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  題目:高速公路計(jì)費(fèi)系統(tǒng)設(shè)計(jì)</p><p>  功能:在某高速公路出口收費(fèi)處,對(duì)三種類(lèi)型的車(chē)輛計(jì)費(fèi),大型車(chē)每公里0。5元,中型車(chē)每公里0。4元,小型車(chē)每公里0。3元,來(lái)車(chē)驗(yàn)條,乘公里數(shù)即得該收的款項(xiàng)。在交班時(shí)要統(tǒng)計(jì)出總數(shù)。</p><p><b>  分步實(shí)施:</b></p><p>  1、初步完成總體設(shè)計(jì),搭好框架,

2、確定人機(jī)對(duì)話的界面,確定函數(shù)個(gè)數(shù);</p><p>  2、完成最低要求:建立一個(gè)只有三個(gè)入口的計(jì)費(fèi)系統(tǒng),并能進(jìn)行統(tǒng)計(jì)計(jì)算,打印出報(bào)表;</p><p>  3、進(jìn)一步要求:完成任意多個(gè)入口的通用系統(tǒng)。</p><p><b>  要求:</b></p><p>  1、用C語(yǔ)言實(shí)現(xiàn)程序設(shè)計(jì);</p>&l

3、t;p>  2、利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);</p><p>  3、系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);</p><p>  4、界面友好(良好的人機(jī)交互),程序加必要的注釋。</p><p><b>  總體設(shè)計(jì)</b></p><p>  1.本程序涉及的知識(shí)點(diǎn)</p><p

4、>  變量的定義,輸入輸出函數(shù)、對(duì)文件的輸入和輸出和保存、for、switch、if等語(yǔ)句的使用,定義和使用結(jié)構(gòu)體數(shù)組等等。</p><p>  進(jìn)入系統(tǒng)首頁(yè)為主菜單,主菜單下分4個(gè)模塊:</p><p>  模塊1:錄入車(chē)輛信息</p><p>  進(jìn)入模塊1后按提示要求錄入車(chē)牌號(hào)碼、時(shí)間、型號(hào)大小(用a、b、c分別表示大型、中型、小型)和入站口(1、2、3

5、、4……表示不同入口站名稱(chēng)并分別對(duì)應(yīng)不同公里路程數(shù))。</p><p>  模塊2:查詢(xún)車(chē)輛信息</p><p>  進(jìn)入模塊2后按提示要求錄入所要查詢(xún)的車(chē)牌號(hào)碼,即可查詢(xún)其進(jìn)站入口,時(shí)間,及所需費(fèi)用等信息</p><p>  模塊3:車(chē)輛統(tǒng)計(jì)報(bào)表</p><p>  進(jìn)入模塊3后即可顯示操作員之前錄入的所有車(chē)輛的各個(gè)信息,并統(tǒng)計(jì)出車(chē)輛總數(shù)及

6、應(yīng)收總費(fèi)用。</p><p>  模塊4:保存關(guān)閉系統(tǒng)</p><p>  進(jìn)入模塊4后 系統(tǒng)自動(dòng)保存所有車(chē)輛信息,并按提示可推出本系統(tǒng)。</p><p><b>  流程圖</b></p><p><b>  主函數(shù):</b></p><p>  #include<s

7、tdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #include<conio.h></p><p>  #define N 100</p><p>  #define M 4

8、 //入口數(shù)量,可設(shè)置多個(gè)路口</p><p>  char a[]={20,30,40,50}; //路口1 :20公里,路口2 :30公里,路口3 :40公里, 路口4 :50公里</p><p>  char str[][3]={"k1","k2","k3",&qu

9、ot;k4"}; //入口名稱(chēng),分別對(duì)應(yīng)上面數(shù)組的公里數(shù)</p><p><b>  FILE*fp;</b></p><p>  int count;</p><p>  void input();</p><p>  void cheak();</p><p>  void tong

10、ji();</p><p>  void read();</p><p>  void menu();</p><p>  void writefile();</p><p>  struct vehicle //車(chē)輛信息</p><p><b>  {</b>&

11、lt;/p><p>  char num[15];</p><p>  char time[6];</p><p>  char size[2];</p><p>  char road[3];</p><p>  float cost;</p><p><b>  }ve[N];<

12、/b></p><p>  void main()</p><p><b>  {</b></p><p><b>  read();</b></p><p><b>  while(1)</b></p><p><b>  {</

13、b></p><p><b>  menu();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void read() //導(dǎo)入文件</p><p>

14、;<b>  {</b></p><p>  char filename[20];</p><p>  if((fp=fopen("tql.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("

15、;無(wú)此文件,新建一個(gè)文件\n");</p><p>  printf("輸入文件名,回車(chē)鍵結(jié)束:");</p><p>  scanf("%s",filename);</p><p>  if((fp=fopen(filename,"w"))==NULL)</p><p>

16、<b>  {</b></p><p>  printf("新建失敗");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p>

17、<p><b>  {</b></p><p>  printf("新建文件成功,按任意鍵返回主菜單");</p><p>  getchar(); </p><p><b>  return;</b></p><p><b>  }&

18、lt;/b></p><p><b>  } </b></p><p>  fseek(fp,0,2); // 文件內(nèi)部指針退回到離文件結(jié)尾0位置,即指針指向文件內(nèi)部末尾處</p><p>  if(ftell(fp)>0) // 使用fseek函數(shù)后再調(diào)用函數(shù)ftell()就能非常

19、容易地確定文件的當(dāng)前位置。</p><p><b>  {</b></p><p>  fseek(fp,0,0);</p><p>  for(count=0;!feof(fp)&&fread(&ve[count],sizeof(struct vehicle),1,fp);count++);</p>&l

20、t;p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void menu()</p><p><b>  { </b></p><p>

21、;  system("cls");</p><p><b>  char i;</b></p><p>  printf("\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n\t****************歡迎來(lái)到公路計(jì)費(fèi)系統(tǒng)*************\n\n\t\t\t 主菜單\n\n");</p>

22、<p>  printf("\t********\t錄入車(chē)輛信息 請(qǐng)按 1\t ********\n\n");</p><p>  printf("\t********\t查詢(xún)車(chē)輛信息 請(qǐng)按 2\t ********\n\n");</p><p>  printf("\t********\t車(chē)輛統(tǒng)計(jì)報(bào)表 請(qǐng)按 3\t *

23、*******\n\n");</p><p>  printf("\t********\t保存關(guān)閉系統(tǒng) 請(qǐng)按 4\t ********\n\n\t*************************************************\n");</p><p>  i=getch();</p><p><b>  

24、switch(i)</b></p><p><b>  {</b></p><p>  case '1': input(); break;</p><p>  case '2': cheak(); break;</p><p>  case '3': t

25、ongji(); break;</p><p>  case '4': writefile();</p><p>  default : break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  v

26、oid input() //錄入車(chē)輛信息函數(shù)</p><p><b>  {</b></p><p><b>  char i,j;</b></p><p>  system("cls");</p><p

27、>  printf("\n 請(qǐng)錄入車(chē)輛信息:");</p><p>  printf("\n車(chē)牌號(hào)碼(5位字符)\n");</p><p>  scanf("%s",&ve[count].num);</p><p>  printf("\n進(jìn)站時(shí)

28、間(輸入格式**:**)\n"); </p><p>  scanf("%s",&ve[count].time);</p><p>  printf("\n車(chē)輛型號(hào)(a,b,c分別代表大中小)\n"); // 大車(chē) 0.5元/每公里;中型車(chē) 0.4元/每公里;小車(chē) 0.3元/每公里</p><p> 

29、 scanf("%s",&ve[count].size);</p><p>  printf("\n入口通道(輸入k1,k2,k3....)\n");</p><p>  scanf("%s",&ve[count].road);</p><p>  i=count;

30、 //計(jì)算該車(chē)路費(fèi)</p><p>  if(strcmp(ve[i].size,"a")==0)</p><p><b>  {</b></p><p>  for(j=0;j<M;j++)</p><p><b>  {&l

31、t;/b></p><p>  if(strcmp(ve[i].road,str[j])==0)</p><p><b>  {</b></p><p>  ve[i].cost=a[j]*0.5;</p><p><b>  break;</b></p><p>&l

32、t;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(strcmp(ve[i].size,"b")==0)</p><p><b>  {</b><

33、/p><p>  for(j=0;j<M;j++)</p><p><b>  {</b></p><p>  if(strcmp(ve[i].road,str[j])==0)</p><p><b>  {</b></p><p>  ve[i].cost=a[j]*0.

34、4;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(strcm

35、p(ve[i].size,"c")==0)</p><p><b>  {</b></p><p>  for(j=0;j<M;j++)</p><p><b>  {</b></p><p>  if(strcmp(ve[i].road,str[j])==0)</p

36、><p><b>  {</b></p><p>  ve[i].cost=a[j]*0.3;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p

37、><p><b>  }</b></p><p>  else ve[i].cost=00.00;</p><p><b>  count++;</b></p><p>  printf("\n\n是否繼續(xù)錄入車(chē)輛信息?\n按 1 繼續(xù)錄入 按任意鍵返回\n");</p&

38、gt;<p>  switch(getch())</p><p><b>  {</b></p><p>  case '1' : input();</p><p>  default : return;</p><p><b>  } </b></p>

39、;<p><b>  }</b></p><p>  void cheak() //查詢(xún)車(chē)輛信息函數(shù)</p><p><b>  { </b></p><p>  char ch,num[10],i,k=0;</p><p> 

40、 system("cls");</p><p>  printf(" 查詢(xún)車(chē)輛信息\n\n");</p><p>  printf("請(qǐng)輸入車(chē)牌號(hào)碼\n");</p><p>  scanf("%s",num);</p><p>  for(i=count

41、-1;i>=0;i--) //需顯示車(chē)輛最新進(jìn)站信息</p><p><b>  { </b></p><p>  if(strcmp(ve[i].num,num)==0)</p><p>  { k=1;break;}</p><p><b>  }</b>&

42、lt;/p><p><b>  if(k==1)</b></p><p><b>  { </b></p><p>  printf("車(chē)牌號(hào)碼 進(jìn)站時(shí)間 車(chē)型大小 進(jìn)站入口 應(yīng)收費(fèi)用\n"); </p><p>  printf("%s\t &q

43、uot;,ve[i].num); </p><p>  printf("%s ",ve[i].time); </p><p>  printf("%s\t",ve[i].size);</p><p>  printf(" %s\t",ve[i].road);</p><

44、;p>  printf(" %.2f元",ve[i].cost);</p><p>  printf("\n\n\n按 1繼續(xù)查詢(xún) 按任意鍵返回主菜單");</p><p>  ch=getchar(); //用來(lái)接收前面指令的最后一個(gè)回車(chē)鍵</p><p>  ch=getch()

45、; //接收選擇鍵</p><p>  switch(ch)</p><p><b>  {</b></p><p>  case '1' : cheak();</p><p>  default : return;</p><p><b>

46、  } </b></p><p><b>  } </b></p><p><b>  else </b></p><p>  { </p><p>  printf("\n無(wú)可顯示內(nèi)容\n\n按 1繼續(xù)查詢(xún) 按任意鍵返回主菜單\n&q

47、uot;);</p><p>  ch=getch();</p><p>  switch(ch)</p><p><b>  {</b></p><p>  case '1' : cheak();</p><p>  default : return;</p>&l

48、t;p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  void tongji() //匯總報(bào)表</p><p><b>  {

49、 </b></p><p><b>  int i,j;</b></p><p>  float sum=0.00;</p><p>  system("cls");</p><p>  printf("\n\n\t\t報(bào)表匯總\n\n");</p>

50、<p>  printf("車(chē)牌號(hào)碼 進(jìn)站時(shí)間 車(chē)型大小 進(jìn)站入口 應(yīng)收費(fèi)用");</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  printf("\n\n%s ",ve[i].num);</p&g

51、t;<p>  printf(" %s",ve[i].time); </p><p>  printf(" %s ",ve[i].size);</p><p>  printf(" %s ",ve[i].road);</p><p>  printf(&quo

52、t; %.2f",ve[i].cost);</p><p><b>  }</b></p><p>  for(j=0;j<count;j++)</p><p><b>  {</b></p><p>  sum=sum+ve[j].cost;</p><p

53、><b>  }</b></p><p>  printf("\n\n\n\t\t\t\t 車(chē)輛總數(shù):%d 輛",count);</p><p>  printf("\n\n\t\t\t\t 收費(fèi)總額:%.2f元",sum);</p><p>  printf("\n\n\n\

54、n按任意鍵返回\n");</p><p>  getch();</p><p><b>  }</b></p><p>  void writefile() //文件保存函數(shù)</p><p><b>  { </b></p>

55、<p>  system("cls");</p><p><b>  int i,ch;</b></p><p>  if((fp=fopen("tql.txt","w"))==NULL)</p><p><b>  {</b></p>

56、<p>  printf("打開(kāi)文件失敗");</p><p><b>  }</b></p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  if(fwrite(&ve[i],sizeo

57、f(struct vehicle),1,fp)!=1)</p><p>  printf("無(wú)法讀入文件");</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("\n\n\n\n\n\t\t\t文件保存成功\n\n\n\t

58、\t按 1 退出程序\t按任意鍵返回\n");</p><p>  ch=getch();</p><p>  switch(ch)</p><p><b>  {</b></p><p>  case '1' : exit(0);</p><p>  default :

59、 return;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  部分截圖:</b></p><p><b>  主菜單:</b></p><p>  模塊1:錄入車(chē)輛信息

60、截圖</p><p>  模塊2:查詢(xún)車(chē)輛信息截圖</p><p>  模塊3:匯總報(bào)表截圖</p><p>  模塊4:保存退出系統(tǒng)截圖</p><p><b>  C程序設(shè)計(jì)總結(jié)</b></p><p>  本程序在剛開(kāi)始調(diào)試時(shí)有許多錯(cuò)誤,但在我的努力及同學(xué)的幫助下都被一一克服,現(xiàn)在在操作本程

61、序時(shí)可根據(jù)提示進(jìn)行相關(guān)操作,能正確輸出結(jié)果。</p><p>  在剛開(kāi)始的幾次調(diào)試中曾經(jīng)出現(xiàn)過(guò)不能運(yùn)行,彈出提示警告框令到調(diào)試終止。其中,為力求界面簡(jiǎn)潔美觀,需要多次調(diào)試輸出數(shù)據(jù),圖形符號(hào)的位置,使其整齊劃一,這花了相當(dāng)一部分時(shí)間。</p><p>  在調(diào)試check()函數(shù)時(shí),當(dāng)輸入完車(chē)牌號(hào)碼并顯示出該車(chē)輛信息后,當(dāng)按任意鍵后屏幕馬上跳回菜單頁(yè)面而無(wú)法按設(shè)計(jì)要求輸出選擇項(xiàng),經(jīng)過(guò)查找書(shū)

62、本得知要在switch語(yǔ)句前再加上一句getchar()語(yǔ)句用來(lái)接收前面指令的最后一個(gè)回車(chē)鍵,之后經(jīng)修改功能得到實(shí)現(xiàn)。</p><p>  完成題目要求的基本功能后</p><p><b>  收獲:</b></p><p>  在這次設(shè)計(jì)過(guò)程中,不僅復(fù)習(xí)課本上所學(xué)知識(shí),還通過(guò)上網(wǎng)查資料、問(wèn)同學(xué)學(xué)到了課本上沒(méi)有的知識(shí)。從而啟發(fā)我,要想寫(xiě)好程序,

63、在寫(xiě)好課本知識(shí)的同時(shí)還需要多讀和專(zhuān)業(yè)有關(guān)的一些書(shū)籍,同時(shí)還需要多動(dòng)腦子,勤于實(shí)踐,盡量把所學(xué)的知識(shí)綜合起來(lái)應(yīng)用,力爭(zhēng)寫(xiě)出完美的程序。除此之外,我還得到了一些有用的教訓(xùn):寫(xiě)程序時(shí)必須要細(xì)心,不能輸錯(cuò)一個(gè)字符標(biāo)點(diǎn),就連全角半角也得注意。在修改時(shí)要有耐心,編譯出錯(cuò)后必須逐個(gè)錯(cuò)誤去改正,絕不能心急浮躁,否則修改之后還會(huì)有新的錯(cuò)誤。</p><p><b>  參考文獻(xiàn)</b></p>

64、<p>  [1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).北京:清華大學(xué)出版社,2007</p><p>  [2] 張長(zhǎng)海.C語(yǔ)言程設(shè)計(jì)[M].北京:高等教育出版社,2006</p><p>  [3] 陳建新,李志敏.數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)與課程設(shè)計(jì)教程.北京:科學(xué)出版社,2010</p><p>  [4] 吳玉蓉,李勁.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).北京:中國(guó)水

65、利水電出版社,2008</p><p>  [5]《C程序設(shè)計(jì)》(第四版),主編:譚浩強(qiáng),清華大學(xué)出版社</p><p><b>  課程設(shè)計(jì)總結(jié):</b></p><p>  我的課程設(shè)計(jì)題目是高速公路收費(fèi)系統(tǒng),這個(gè)程序題目相對(duì)來(lái)說(shuō)不是很難,但由于我的c語(yǔ)言基礎(chǔ)較差,編寫(xiě)程序代碼的練習(xí)也做的較少,與同學(xué)們的水平也有不小的差距,所以在編寫(xiě)過(guò)程中

66、,我也遇到了不小的難題。</p><p>  在最初的時(shí)候,我很是厭煩,對(duì)程序編寫(xiě)有些抵觸情緒,完全談不上喜歡。但是,漸漸地,通過(guò)不斷地查詢(xún)、了解、學(xué)習(xí),我發(fā)現(xiàn)我的興趣漸漸上來(lái)了,因?yàn)樵趯W(xué)習(xí)了解的同時(shí),我覺(jué)得編寫(xiě)程序不再像以前那樣枯燥乏味、難得一塌糊涂,只不過(guò)是以前從內(nèi)心上就沒(méi)有接受它,這也造成了我的基礎(chǔ)較差。</p><p>  本次課程設(shè)計(jì),我基本是從頭學(xué)起,從最基本的#include

67、<stdio.h>是什么意思,再到很好地運(yùn)用判斷語(yǔ)句和循環(huán)語(yǔ)句,還有在學(xué)習(xí)過(guò)程中我還了解到c語(yǔ)言還有很多的庫(kù)函數(shù)。</p><p>  本程序在剛開(kāi)始調(diào)試時(shí)有許多錯(cuò)誤,但在我的努力及同學(xué)的幫助下都被一一克服,現(xiàn)在在操作本程序時(shí)可根據(jù)提示進(jìn)行相關(guān)操作,能正確輸出結(jié)果。在剛開(kāi)始的幾次調(diào)試中曾經(jīng)出現(xiàn)過(guò)不能運(yùn)行、不能產(chǎn)生十以?xún)?nèi)隨機(jī)數(shù)字、不能隨機(jī)出現(xiàn)加減、不會(huì)正確輸出結(jié)果、不能進(jìn)行循環(huán)練習(xí)等等問(wèn)題。經(jīng)過(guò)我的努力

68、及同學(xué)的幫助,這些問(wèn)題得到克服,并且使程序的功能也得到了一定的完善。現(xiàn)在它能對(duì)出錯(cuò)的題目發(fā)出報(bào)警聲,并且給出正確答案。最后還能分別輸出對(duì)錯(cuò)的題數(shù)及所得分?jǐn)?shù)。</p><p>  在這次設(shè)計(jì)過(guò)程中,不僅復(fù)習(xí)課本上所學(xué)知識(shí),還通過(guò)查資料、問(wèn)同學(xué)學(xué)到了課本上沒(méi)有的知識(shí)。從而啟發(fā)我,要想寫(xiě)好程序,在寫(xiě)好課本知識(shí)的同時(shí)還需要多讀和專(zhuān)業(yè)有關(guān)的一些書(shū)籍,這也讓我買(mǎi)了一本c語(yǔ)言c++函數(shù)查詢(xún)手冊(cè)去進(jìn)行深一步的學(xué)習(xí)與了解,以便能更

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論