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

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  C語言關(guān)鍵字中英翻譯機(jī)</p><p><b>  一、設(shè)計(jì)任務(wù)與目標(biāo)</b></p><p>  (1)輸入中文關(guān)鍵字可以翻譯成英語,如輸入“整型”則輸出關(guān)鍵字“int”;</p><p> ?。?)輸入英文關(guān)鍵字可以翻譯成中文,如輸入“int”則輸出關(guān)

2、鍵字“整型”;</p><p><b> ?。?)可多次查詢;</b></p><p> ?。?)輸入bye時退出。</p><p><b>  二、方案設(shè)計(jì)與論證</b></p><p> ?。?)定義兩個字符型數(shù)組分別存放中文關(guān)鍵字和英文關(guān)鍵字,中文和英文的順序要一一對應(yīng),即數(shù)組的下標(biāo)值要相同;

3、</p><p> ?。?)定義一個字符型數(shù)組用來存放輸入的字符串;</p><p>  (3)利用strcmp()函數(shù)和循環(huán)結(jié)構(gòu)實(shí)現(xiàn)輸入的英文或中文關(guān)鍵字和已定義的字符型數(shù)組中的英文或中文關(guān)鍵字逐一比較;</p><p>  (4)輸入的關(guān)鍵字和已有的關(guān)鍵字比較相同則利用中英相對應(yīng)的下標(biāo)值相同輸出對應(yīng)的英文或中文;</p><p> ?。?

4、)利用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)多次查詢的功能;</p><p> ?。?)利用exit()函數(shù)實(shí)現(xiàn)輸入“bye”時退出程序;</p><p>  三、程序框圖或流程圖,程序清單與調(diào)用關(guān)系</p><p><b>  四、全部源程序清單</b></p><p>  #include<iostream.h></p>

5、;<p>  #include<string.h></p><p>  #include<stdlib.h></p><p>  void main()</p><p><b>  {</b></p><p>  int i,x,k,time;</p><p>

6、;  char a[15];</p><p>  char *En[]={"int","float","double","for","return","auto","if","while","continue","break&

7、quot;};</p><p>  char *Ch[]={"整型","單精度","雙精度","循環(huán)","返回","自動","如果","當(dāng)","繼續(xù)","退出"};</p><p>  cou

8、t<<"中文翻譯成英文輸入1,英文翻譯成中文輸入0(要退出程序請?jiān)谳斎?、0后輸入bye):"<<endl;</p><p>  for(time=0;time<100;time++)</p><p><b>  {</b></p><p><b>  cin>>x;<

9、;/b></p><p><b>  if (x==1)</b></p><p><b>  {</b></p><p>  cout<<"請輸入中文:";</p><p><b>  cin>>a;</b></p>

10、<p>  if (strcmp(a,"bye")==0)</p><p><b>  exit(0);</b></p><p>  cout<<"翻譯后的英文:";</p><p>  for (i=0;i<10;i++)</p><p><

11、b>  {</b></p><p>  if (strcmp(a,Ch[i])==0)</p><p><b>  {</b></p><p>  cout<<En[i];</p><p><b>  }</b></p><p><b>

12、;  }</b></p><p>  cout<<endl<<endl;</p><p><b>  }</b></p><p><b>  if (x==0)</b></p><p><b>  {</b></p><p

13、>  cout<<"請輸入英文:";</p><p><b>  cin>>a;</b></p><p>  if (strcmp(a,"exit")==0)</p><p><b>  exit(0);</b></p><p>

14、  cout<<"翻譯后的中文:";</p><p>  for (i=0;i<10;i++)</p><p><b>  {</b></p><p>  if (strcmp(a,En[i])==0)</p><p><b>  {</b></p>

15、<p>  cout<<Ch[i];</p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<endl<<endl;</p><p><b>  }</b></p&g

16、t;<p><b>  }</b></p><p><b>  }</b></p><p>  五、程序運(yùn)行結(jié)果測試與分析</p><p> ?。?)輸入“1+回車”為中文翻譯成英文,輸入“0+回車”為英文翻譯成中文;</p><p> ?。?)輸入中文關(guān)鍵字翻譯成英文關(guān)鍵字;<

17、/p><p> ?。?)輸入英文關(guān)鍵字翻譯成中文關(guān)鍵字;</p><p> ?。?)輸入“1或0+回車”后輸入“bye”則退出程序。</p><p><b>  六、結(jié)論與心得</b></p><p>  在做這個程序的時候首先遇到的問題就是如何實(shí)現(xiàn)中英互譯,一開始感覺很難。后來通過仔細(xì)的思考和研究,就想到通過兩個一維數(shù)組分

18、別來保存中文和英文,并且通過使對應(yīng)英文和中文數(shù)組下標(biāo)保持一致,來實(shí)現(xiàn)通過輸入的英文或中文跟數(shù)組已有的來比較,比較相同,則通過下標(biāo)值來查找對應(yīng)的中文或英文,然后輸出即可。但是這個程序還是有不足的地方,因?yàn)楸4娴脑~比較少,所以只是通過一位數(shù)組來保存,而且是沒有規(guī)律的,如果要像輸入法那樣保存大量的詞匯,這樣的方法使用起來很不方便。所以需要想一種更高效的方法來解決這個問題。比如通過二維數(shù)組來保存詞匯,詞匯按字母順序之類的方法來保存,這樣就能實(shí)現(xiàn)

19、更加高效的查詢。但是實(shí)現(xiàn)過程還需要一定的研究。所以目前所做的程序雖然達(dá)到要求,卻還是存在很大的不足。以后需要花多一點(diǎn)時間來考慮并完善該程序。</p><p>  通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合的重要性,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。這畢竟是自己獨(dú)立做的,難免會遇到各種各樣的問題,同時在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻

20、,掌握得不夠牢固。通過這次課程設(shè)計(jì)之后,一定要把以前所學(xué)過的知識重新溫習(xí)一下。</p><p><b>  七、參考資料</b></p><p>  [1] 余江等編著,C語言程序設(shè)計(jì),天津科學(xué)技術(shù)出版社,94-104頁</p><p><b>  八、致謝</b></p><p>  衷心感謝許杰

21、輝同學(xué)對我的幫助。</p><p><b>  年歷顯示</b></p><p><b>  設(shè)計(jì)任務(wù)與目標(biāo)</b></p><p> ?。?)輸入一個年份,輸出是在屏幕上顯示該年的日歷;</p><p> ?。?)輸入年月,輸出該月的日歷;</p><p> ?。?)

22、輸入年月日,輸出距今天還有多少天,星期幾,是否是公歷節(jié)日;</p><p> ?。?)某人自1990年1月1日開始,"三天打魚兩天曬網(wǎng)",輸入一個1990年以后的日期,輸出他這一天是打魚還是曬網(wǎng)。</p><p><b>  二、方案設(shè)計(jì)與論證</b></p><p>  (1)定義2個全局?jǐn)?shù)組,一個數(shù)組用來保存閏年和平年

23、的天數(shù),另外的數(shù)組用來保存閏年和平年每月的天數(shù)。</p><p> ?。?)leapyear函數(shù)判斷是否是閏年。能被4整除不能被100整除的年份是閏年,能被100整除又能被400整除的年份也是閏年;</p><p> ?。?)alldays函數(shù)用來計(jì)算從公元1年1月1號開始計(jì)算到某年某月某日的總天數(shù);</p><p> ?。?)festival函數(shù)用來保存一年中公歷

24、的節(jié)日;</p><p> ?。?)outputtoscreen函數(shù)用來顯示輸出界面的格式;</p><p> ?。?)oneyear函數(shù)通過輸入年份,再調(diào)用alldays函數(shù)和outputtoscreen函數(shù)來顯示該年份的日歷;</p><p> ?。?)onemonth函數(shù)是通過輸入年月,通過調(diào)用alldays函數(shù)和outputtoscreen漢化來顯示查詢的某

25、年某月的日歷;</p><p>  (8)howlong函數(shù)通過輸入現(xiàn)在的年月日和要查詢的年月日,通過相減得出相差多少天,再通過調(diào)用alldays函數(shù)計(jì)算要查詢的日期的總天數(shù)除以7取模來顯示查詢的日期是星期幾。由于會出現(xiàn)除以7整除的情況,所以要另外寫一個輸出語句使得整除的時候輸出為“星期日”。然后再調(diào)用festival函數(shù)得出是否是公歷節(jié)日。</p><p>  (9)fishornet函

26、數(shù)是通過輸入某年某月某日,再調(diào)用alldays函數(shù)來實(shí)現(xiàn)某年某月某日的總天數(shù)減去1990年1月1日的總天數(shù),然后除以5取模來得出某年某月某日是在打魚還是在曬網(wǎng);</p><p> ?。?0)list函數(shù)顯示出選項(xiàng)并輸入要使用的功能選項(xiàng)序列號;</p><p> ?。?1)choose函數(shù)通過調(diào)用list函數(shù)返回一個序列所代表的數(shù)值,再通過數(shù)值調(diào)用所需的功能函數(shù)。</p>&l

27、t;p>  三、程序框圖或流程圖,程序清單與調(diào)用關(guān)系</p><p>  調(diào)用alldays(int y,int m)函數(shù)</p><p><b>  四、全部源程序清單</b></p><p>  #include<iostream.h></p><p>  #include<string.h&

28、gt;</p><p>  #include<stdlib.h></p><p>  #include<stdio.h></p><p>  int dayofyear[2]={365,366};</p><p>  int dayofmonth[2][12]={{31,28,31,30,31,30,31,31,30,

29、31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};</p><p>  int leapyear(int year) //判斷是否是閏年</p><p><b>  {</b></p><p>  if(year%4==0 && year%100!=0 || year%100=

30、=0 && year%400==0)</p><p>  return 1; //閏年</p><p><b>  else</b></p><p>  return 0; //平年</p><p><b>  }</b></p><p>  int al

31、ldays(int y,int m) //公元1月1號到某年某月的總天數(shù)</p><p><b>  {</b></p><p>  int a,b,days=1; //因?yàn)槿諝v是日一二三四五六的順序排的,所以要加1避免第一天排在日的位置</p><p>  for(a=m;a>1;a--)</p><p&g

32、t;  days=days+dayofmonth[leapyear(y)][a-2]; //根據(jù)上個月的剩余天數(shù)來確定下個月的起始位置,所以要減2</p><p>  for(b=1;b<y;b++)</p><p>  days=days+dayofyear[leapyear(b)];</p><p>  return days;</p>&

33、lt;p><b>  }</b></p><p>  int festival(int month,int day)</p><p><b>  {</b></p><p>  int fes[12][31];</p><p>  fes[0][0]=fes[1][13]=fes[2][7]=

34、fes[3][0]=fes[4][0]=fes[5][0]=1;</p><p>  fes[6][0]=fes[7][0]=fes[8][9]=fes[9][0]=fes[11][24]=1;</p><p>  if(fes[month-1][day-1]==1)</p><p><b>  return 1;</b></p>

35、<p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void outputtoscreen(int year,int month,int l) //輸出屏幕的日期</p>

36、<p><b>  {</b></p><p><b>  int j,k;</b></p><p>  cout<<"\t"<<"\t"<<"\t"<<"****"<<year<<&

37、quot;年***"<<month<<"月****"<<endl;</p><p>  cout<<"\t"<<"日"<<"\t"<<"一"<<"\t"<<"二&quo

38、t;<<"\t"<<"三"<<"\t"<<"四"<<"\t"<<"五"<<"\t"<<"六"<<endl;</p><p><b>  i

39、f(l==0)</b></p><p><b>  {</b></p><p>  for(k=1;k<=dayofmonth[leapyear(year)][month-1];k++)</p><p><b>  {</b></p><p>  cout<<"

40、;\t"<<k;</p><p>  if((l+k)%7==0)</p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else&l

41、t;/b></p><p><b>  {</b></p><p>  for(j=0;j<l;j++)</p><p>  cout<<"\t";</p><p>  for(k=1;k<=dayofmonth[leapyear(year)][month-1];k++)

42、</p><p><b>  {</b></p><p>  cout<<"\t"<<k;</p><p>  if((l+k)%7==0)</p><p>  cout<<endl;</p><p><b>  }</b&g

43、t;</p><p><b>  }</b></p><p>  cout<<endl<<endl;</p><p><b>  }</b></p><p>  void oneyear() //查詢一年的日期</p><p><b> 

44、 {</b></p><p>  int i,l,year,month;</p><p>  system("cls");</p><p>  cout<<"請輸入要查詢的年份:";</p><p>  cin>>year;</p><p> 

45、 for(month=1;month<13;month++)</p><p><b>  {</b></p><p>  i=alldays(year,month);</p><p><b>  l=i%7;</b></p><p>  outputtoscreen(year,month,l)

46、;</p><p><b>  }</b></p><p>  getchar();</p><p><b>  }</b></p><p>  void onemonth() //查詢一個月的日期</p><p><b>  {</b></p&

47、gt;<p>  int i,l,year,month;</p><p>  system("cls");</p><p>  cout<<"請輸入要查詢的年月份:";</p><p>  cin>>year>>month;</p><p>  i=al

48、ldays(year,month);</p><p><b>  l=i%7;</b></p><p>  outputtoscreen(year,month,l);</p><p>  getchar();</p><p><b>  }</b></p><p>  voi

49、d howlong()</p><p><b>  {</b></p><p>  int year1,year2,month1,month2,day1,day2,one,two,result,date;</p><p>  system("cls");</p><p>  cout<<&

50、quot;請輸入要查詢的年月日: ";</p><p>  cin>>year1>>month1>>day1;</p><p>  cout<<endl<<endl<<"請輸入現(xiàn)在的時間年月日: ";</p><p>  cin>>year2>

51、>month2>>day2;</p><p>  one=alldays(year1,month1)+day1;</p><p>  two=alldays(year2,month2)+day2;</p><p>  if(one>two)</p><p>  result=one-two-1;</p>

52、<p><b>  else</b></p><p>  result=two-one-1;</p><p>  date=(alldays(year1,month1)+day1-1)%7; //函數(shù)alldays中day=1,所以要在這里減1</p><p>  if(result==-1)</p><p&g

53、t;  cout<<endl<<endl<<"查詢的時間和今天是同一天"<<endl<<endl<<endl;</p><p><b>  else</b></p><p>  cout<<endl<<endl<<"所查詢的日期距離

54、今天的天數(shù): "<<result<<"天"<<endl<<endl<<endl;</p><p>  if(date==0)</p><p>  cout<<"查詢的日期具體是星期幾: 星期日"<<endl<<endl<<endl

55、;</p><p><b>  else</b></p><p>  cout<<"查詢的日期具體是星期幾: 星期"<<date<<endl<<endl<<endl;</p><p>  cout<<"查詢的日期是否是公歷節(jié)日: &quo

56、t;;</p><p>  if(festival(month1,day1)==1)</p><p>  cout<<"是"<<endl<<endl<<endl;</p><p><b>  else</b></p><p>  cout<<

57、"不是"<<endl<<endl<<endl;</p><p>  getchar();</p><p><b>  }</b></p><p>  void fishornet()</p><p><b>  {</b></p>

58、<p>  int year,month,day,time,i;</p><p>  system("cls");</p><p>  cout<<"某人自1990年1月1日開始,三天打魚兩天曬網(wǎng),"<<endl;</p><p>  cout<<"如果你想知道某年某月

59、某日是在打魚還是曬網(wǎng)。"<<endl<<endl<<endl;</p><p>  cout<<"請輸入要查詢的具體年月日: ";</p><p>  cin>>year>>month>>day;</p><p>  time=(alldays(yea

60、r,month)+day)-((alldays(1990,1)+1));</p><p><b>  i=time%5;</b></p><p>  if(i>=0 && i<=2)</p><p>  cout<<endl<<endl<<"查詢結(jié)果:"<

61、<year<<"年"<<month<<"月"<<day<<"日正在打魚"<<endl<<endl<<endl;</p><p><b>  else</b></p><p>  cout<<end

62、l<<endl<<"查詢結(jié)果:"<<year<<"年"<<month<<"月"<<day<<"日正在曬網(wǎng)"<<endl<<endl<<endl;</p><p>  getchar();</p>

63、;<p><b>  }</b></p><p>  int list()</p><p><b>  {</b></p><p>  int choice;</p><p>  system("cls");</p><p>  cout&l

64、t;<"應(yīng)用功能:"<<endl;</p><p>  cout<<"1: 輸入一個年份,輸出是在屏幕上顯示該年的日歷。"<<endl<<endl;</p><p>  cout<<"2: 輸入年月,輸出該月的日歷。"<<endl<<en

65、dl;</p><p>  cout<<"3: 輸入年月日,輸出距今天還有多少天,星期幾,是否是公歷節(jié)日。"<<endl<<endl;</p><p>  cout<<"4: 某人自1990年1月1日開始,三天打魚兩天曬網(wǎng),輸入一個1990年以后的日期,輸出他這一天是打魚還是曬網(wǎng)。"<<

66、endl<<endl;</p><p>  cout<<"0: 退出";</p><p>  cout<<endl<<endl<<endl<<endl<<endl<<"請選擇所需要功能所代表的選項(xiàng): ";</p><p>  c

67、in>>choice;</p><p>  return choice;</p><p><b>  }</b></p><p>  void choose()</p><p><b>  {</b></p><p>  int sign=0;</p>

68、<p>  system("cls");</p><p>  switch(list())</p><p><b>  {</b></p><p>  case 1:oneyear();</p><p><b>  break;</b></p><

69、;p>  case 2:onemonth();</p><p><b>  break;</b></p><p>  case 3: howlong();</p><p><b>  break;</b></p><p>  case 4:fishornet();</p><

70、;p><b>  break;</b></p><p>  case 0:exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b&g

71、t;  {</b></p><p><b>  int i;</b></p><p>  cout<<endl<<endl<<endl<<endl<<endl;</p><p>  cout<<"\t"<<"\t&quo

72、t;<<"\t"<<"\t"<<"********************"<<endl<<endl<<endl;</p><p>  cout<<"\t"<<"\t"<<"\t"<

73、<"\t"<<"歡迎使用萬年歷查詢器"<<endl<<endl<<endl;</p><p>  cout<<"\t"<<"\t"<<"\t"<<"\t"<<"******

74、**************"<<endl<<endl<<endl;</p><p>  cout<<"\t"<<"\t"<<"\t"<<"\t"<<" "<<"請按回車鍵繼續(xù)&quo

75、t;<<endl;</p><p>  getchar();</p><p>  for(i=0;i<100;i++)</p><p><b>  {</b></p><p><b>  choose();</b></p><p><b>  }&

76、lt;/b></p><p><b>  }</b></p><p>  五、程序運(yùn)行結(jié)果測試與分析</p><p>  (1)程序歡迎界面:能輸出理想結(jié)果</p><p> ?。?)功能選項(xiàng)界面:能輸出理想結(jié)果</p><p> ?。?)功能1:查詢某年</p><

77、;p>  A.輸入界面:能輸出理想結(jié)果</p><p>  B.輸出界面:能輸出理想結(jié)果</p><p> ?。?)功能2:查詢某年某月</p><p>  A.輸入界面:能輸出理想結(jié)果</p><p>  B.輸出界面:能輸出理想結(jié)果</p><p>  (5)功能3:輸入年月日,輸出距今天還有多少天

78、,星期幾,是否是公歷節(jié)日。</p><p>  A.輸入界面:能輸出理想結(jié)果</p><p>  B.輸出界面:能輸出理想結(jié)果</p><p>  (6)功能4:某年某月某日是在打魚還是在曬網(wǎng)</p><p>  A.輸入界面:能輸出理想結(jié)果</p><p>  B.輸出界面:能輸出理想結(jié)果</p>

79、<p> ?。?)功能5:輸入0退出程序,能夠成功運(yùn)行。</p><p><b>  六、結(jié)論與心得</b></p><p>  本次課程設(shè)計(jì)是我通過自己的實(shí)踐對書本上的知識進(jìn)行了與生活相關(guān)的運(yùn)用。在這個程序中,主要應(yīng)用了所學(xué)過的循環(huán),條件語句,數(shù)組以及調(diào)用函數(shù)。這些知識的應(yīng)用使我對課本所學(xué)過的內(nèi)容的認(rèn)識得到了更深刻的理解。</p><

80、;p>  在編寫程序的過程中,也出現(xiàn)了很多錯誤。比如函數(shù)語句的編寫錯誤導(dǎo)致輸出結(jié)果并沒有出現(xiàn)符合實(shí)際的結(jié)果。出現(xiàn)這些情況后,通過研究分析,才慢慢找到錯誤,想出解決錯誤的辦法。最后才得到了正確的結(jié)果。</p><p><b>  七、參考資料</b></p><p>  [1] 余江等編著,C語言程序設(shè)計(jì),天津科學(xué)技術(shù)出版社,132-149頁</p>

溫馨提示

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

評論

0/150

提交評論