2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀 繼續(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>  課程設(shè)計(jì)名稱:C++萬(wàn)年歷設(shè)計(jì)</p><p>  使用工具軟件:Microsoft visual C++</p><p><b>  課程設(shè)計(jì)內(nèi)容簡(jiǎn)介</b></p><p>  1、以開關(guān)語(yǔ)句進(jìn)行執(zhí)行功能的選擇,這些功能分別是:</p><p><b>  判斷閏年;</b>

2、;</p><p><b>  判斷某天是星期幾;</b></p><p>  判斷某年的隸屬生肖;</p><p><b>  輸出某年的日歷; </b></p><p><b>  輸出某月的日期;</b></p><p><b>  退出

3、系統(tǒng);</b></p><p>  2、 建立類wnl,定義類的成員函數(shù);</p><p>  void isleapyear(); //判斷閏年,用于輸出判斷結(jié)果,以流的形式</p><p>  bool isleap(int year); //判斷閏年,返回判斷結(jié)果,用于計(jì)算天數(shù)

4、 </p><p>  int getdays(int year,int month,int day); //獲取據(jù)第一天天數(shù)</p><p>  void weekdays(int year,int month,int day); //獲取星期幾 </p><p

5、>  void printyear(int year);//輸出年的日歷</p><p>  void printyearmonth(int year,int month); //輸出某年某月的日歷</p><p>  void animal(int year); //判斷某年的生肖</p><p>  int getyear

6、(){return Year;} //返回私有成員的值</p><p>  int getmonth(){return Month;}</p><p>  int getday(){return Day;}</p><p>  3、定義私有成員:int Year,Month,Day;</p><p>  4、定義類的對(duì)象:_

7、wnl;</p><p>  5、為類的成員函數(shù)填寫代碼,滿足功能實(shí)現(xiàn);</p><p>  6、運(yùn)行環(huán)境:控制臺(tái)應(yīng)用程序的源程序;</p><p><b>  得意之處:</b></p><p>  可以滿足多功能實(shí)現(xiàn),可以循環(huán)執(zhí)行功能;</p><p>  可以選擇每行輸出的月份數(shù);</

8、p><p><b>  有歡迎界面;</b></p><p>  客戶輸入錯(cuò)誤會(huì)有提示;</p><p>  使用了C語(yǔ)言的流的形式,判斷閏年,提高執(zhí)行速度;</p><p>  使用I/O流控制頭文件iomanip.h控制月份日歷的輸出,更加整齊;</p><p><b>  創(chuàng)意的技術(shù)實(shí)

9、現(xiàn)</b></p><p><b>  主函數(shù)流程</b></p><p><b>  判斷閏年</b></p><p><b>  獲取天數(shù)</b></p><p><b>  輸出年份</b></p><p>  課

10、程設(shè)計(jì)中目前存在的問題:</p><p>  無(wú)法在歡迎頁(yè)面插入字符畫;</p><p>  設(shè)計(jì)實(shí)踐過程中的自我感受</p><p>  這是我第一次編寫如此長(zhǎng)的代碼,從網(wǎng)上如同大海撈針?biāo)频膶ふ揖帉懛椒ǎ翠佁焐w地的長(zhǎng)代碼,還有的程序是錯(cuò)的。輸入的時(shí)候,沒有小工具。在看著自己熬通宵打出的代碼,一大串的錯(cuò)誤,真的有些泄氣。改對(duì)了執(zhí)行輸出結(jié)果還是錯(cuò)的,只好重新思考算法

11、。不過通過這次編程我真的學(xué)會(huì)了好多,比如其他的頭文件的功能;setfil(‘’)設(shè)置填充字符;setw()定義字段長(zhǎng)度……也讓我真正體會(huì)到了編程的作用,愛上了編程。</p><p><b>  參考文獻(xiàn):</b></p><p>  [1]呂鳳翥,《C++語(yǔ)言程序設(shè)計(jì)》,清華大學(xué)出版社。</p><p><b>  實(shí)驗(yàn)代碼:<

12、/b></p><p><b>  //萬(wàn)年歷</b></p><p>  #include<iostream.h></p><p>  #include<stdio.h></p><p>  #include<iomanip.h>

13、 </p><p>  int dayofmonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //整形數(shù)組用于儲(chǔ)存每月的天數(shù)</p><p>  char monthname[13][5]={"","Jan","Feb","Mar",&qu

14、ot;Apr","May","June","July","Aug","Seb","Oct","Nov","Dec"}; //字符型數(shù)組用于儲(chǔ)存月份名 第一個(gè)數(shù)字用于表示字符串?dāng)?shù)(相當(dāng)于行) 第二個(gè)用于表示字符串長(zhǎng)度(相當(dāng)于列)</p><p>

15、<b>  class wnl</b></p><p><b>  {</b></p><p><b>  public:</b></p><p>  void isleapyear(int year);

16、//判斷閏年,用于輸出判斷結(jié)果,以流的形式</p><p>  bool isleap(int year); //判斷閏年,返回判斷結(jié)果,用于計(jì)算天數(shù) </p><p>  int getdays(int year,int month,

17、int day); //獲取據(jù)第一天天數(shù)</p><p>  void weekdays(int year,int month,int day); //獲取星期幾 </p><p>  void printyear(int year); //輸出年的日歷</p><p>

18、;  void printyearmonth(int year,int month); //輸出某年某月的日歷</p><p>  void animal(int year); //判斷某年的生肖</p><p>  int getyear(){return Year;}

19、 //返回私有成員的值</p><p>  int getmonth(){return Month;}</p><p>  int getday(){return Day;}</p><p><b>  private:</b></p><p>  int Year,Month,Day;</p><p

20、><b>  }_wnl;</b></p><p>  void main()</p><p><b>  {</b></p><p>  int choice,year,month,day;</p><p>  cout<<" ~~歡迎來(lái)到萬(wàn)年歷查詢系統(tǒng)~~&quo

21、t;<<endl<<endl;</p><p>  cout<<"設(shè)計(jì)人:"<<endl;</p><p>  cout<<" 天津職業(yè)技術(shù)師范大學(xué)\n\t\t\t設(shè)計(jì)人:張錦琪\n\n";</p><p><b>  loop:&

22、lt;/b></p><p>  cout<<" ╱請(qǐng)按序號(hào)輸入您要做的工作:╲"<<endl;</p><p>  cout<<" ▏ 判斷閏年請(qǐng)按1; ▕"<<endl;</p><p>  cout<<" ▏ 判斷某天是星

23、期幾請(qǐng)按2; ▕"<<endl;</p><p>  cout<<" ▏判斷某年的隸屬生肖請(qǐng)按3; ▕"<<endl;</p><p>  cout<<" ▏ 輸出某年的日歷請(qǐng)按4; ▕"<<endl;</p><p>  cout<<

24、;" ▏ 輸出某月的日期請(qǐng)按5; ▕"<<endl;</p><p>  cout<<" ╲ 如果您要退出系統(tǒng)請(qǐng)按0; ╱"<<endl;</p><p>  cin>>choice;</p><p>  switch(choice)</p><p

25、><b>  {</b></p><p>  case 0:return;</p><p><b>  case 1:</b></p><p>  cout<<"輸入一個(gè)年份格式如:xxxx"; </p><p

26、>  cin>>year;</p><p>  _wnl.isleapyear(year);break;</p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入您要查詢的天數(shù) 格式如

27、xxxx xx xx";</p><p>  cin>>year>>month>>day;</p><p>  _wnl.weekdays(year,month,day);</p><p><b>  }break;</b></p><p><b>  case 3

28、:</b></p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入您要查詢的年份 格式如xxxx:";</p><p>  cin>>year;</p><p>  _wnl.animal (year);</p><p&

29、gt;<b>  }break;</b></p><p><b>  case 4:</b></p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入你要輸出的年份xxxx:";</p><p>  cin>>

30、year;</p><p>  _wnl.printyear(year);</p><p><b>  }break;</b></p><p><b>  case 5:</b></p><p><b>  {</b></p><p>  cout<

31、;<"請(qǐng)輸入您要輸出的年月,形如xxxx xx:";</p><p>  cin>>year>>month;</p><p>  _wnl.printyearmonth(year,month);</p><p><b>  }break;</b></p><p>  de

32、fault:cout<<"輸入錯(cuò)誤"<<endl;</p><p><b>  }</b></p><p>  cout<<"繼續(xù)查詢請(qǐng)輸 1 "<<endl<<"退出查詢請(qǐng)輸入字符"<<endl;</p><p>

33、;<b>  int x;</b></p><p><b>  cin>>x;</b></p><p><b>  if(x==1)</b></p><p>  goto loop;</p><p><b>  }</b></p>

34、<p>  void wnl::isleapyear(int year)</p><p><b>  {</b></p><p>  if(year>=1000&&year<=9999)</p><p>  printf("%s\n",year%(year%100?4:400)?&qu

35、ot;no":"yes"); //以C語(yǔ)言流的形式判斷會(huì)更快一些,節(jié)省內(nèi)存</p><p><b>  else </b></p><p>  printf("%s\n","沒有按格式輸入");</p><p><b&g

36、t;  }</b></p><p>  bool wnl::isleap(int year)</p><p><b>  {</b></p><p>  if(year%400==0||(year%100!=0&&year%4==0))</p><p><b>  return 1;

37、</b></p><p><b>  else </b></p><p>  return 0;</p><p><b>  }</b></p><p>  void wnl::weekdays(int year,int month,int day)</p><p

38、><b>  {</b></p><p>  if(year>=1000&&year<=9999)</p><p><b>  {</b></p><p>  if(month<=12&&month>=1)</p><p><b&g

39、t;  {</b></p><p>  int max=dayofmonth[month];</p><p>  if(day>0&&day<max)</p><p><b>  {</b></p><p>  int s=getdays(year,month,day)%7;<

40、;/p><p><b>  switch(s)</b></p><p><b>  {</b></p><p>  case 0:cout<<"Sunday"<<endl;break;</p><p>  case 1:cout<<"Mo

41、nday"<<endl;break;</p><p>  case 2:cout<<"Tuesday"<<endl;break;</p><p>  case 3:cout<<"Wednesday"<<endl;break;</p><p>  case 4

42、:cout<<"Thursday"<<endl;break;</p><p>  case 5:cout<<"Friday"<<endl;break;</p><p>  case 6:cout<<"Saturday"<<endl;</p>&l

43、t;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><

44、p>  cout<<"沒有按格式輸入"<<endl;</p><p><b>  }</b></p><p>  int wnl::getdays(int year,int month,int day)</p><p><b>  {</b></p><

45、p>  int i,sum=0;</p><p>  for(i=1;i<year;i++)</p><p><b>  {</b></p><p>  if(isleap(i)) sum+=366;</p><p>  else sum+=365;</p><p><b&g

46、t;  }</b></p><p>  if(isleap(year)) dayofmonth[2]=29;</p><p>  for(i=1;i<month;i++) sum+=dayofmonth[i];</p><p><b>  sum+=day;</b></p><p>  return

47、 sum;</p><p><b>  }</b></p><p>  void wnl::animal(int year)</p><p><b>  {</b></p><p>  if(year>=1000&&year<=9999)</p><p

48、><b>  {</b></p><p>  int n=year%12;</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 0: cout<<"該年是猴年"<

49、;<endl; break;</p><p>  case 1: cout<<"該年是雞年"<<endl; break;</p><p>  case 2: cout<<"該年是狗年"<<endl; break;</p><p>  case 3: cout<<

50、"該年是豬年"<<endl; break;</p><p>  case 4: cout<<"該年是鼠年"<<endl; break;</p><p>  case 5: cout<<"該年是牛年"<<endl; break;</p><p>  

51、case 6: cout<<"該年是虎年"<<endl; break;</p><p>  case 7: cout<<"該年是兔年"<<endl; break;</p><p>  case 8: cout<<"該年是龍年"<<endl; break;<

52、;/p><p>  case 9: cout<<"該年是蛇年"<<endl; break;</p><p>  case 10: cout<<"該年是馬年"<<endl; break;</p><p>  case 11: cout<<"該年是羊年"&

53、lt;<endl; break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"沒有按格式輸入"<<endl;&l

54、t;/p><p><b>  }</b></p><p>  void wnl::printyear(int year)</p><p><b>  {</b></p><p>  if(year>=1000&&year<=9999)</p><p>

55、<b>  {</b></p><p>  cout<<"輸入一行輸出的月份數(shù):";</p><p>  int choice;</p><p>  cin>>choice;</p><p><b>  int s;</b></p><

56、p>  int a[3],b[3]; //b數(shù)組用來(lái)儲(chǔ)存每月的天數(shù) a數(shù)組用來(lái)臨時(shí)儲(chǔ)存那一月輸出到的日期</p><p>  cout<<" year: "<<year<<endl;</p>

57、<p><b>  int i=1;</b></p><p>  for(i=1;i<=12/choice;i++) //計(jì)算縱向輸出幾個(gè)月</p><p><b>  {</b></p><p>  for(

58、int h=1;h<=choice;h++) //該循環(huán)用于輸出橫向月份名</p><p><b>  {</b></p><p>  int m=choice*(i-1)+h; //計(jì)

59、算月份</p><p>  cout<<" "<<monthname[m]<<" ";</p><p><b>  }</b></p><p>  cout<<endl;</p><p>  fo

60、r(h=1;h<=choice;h++)</p><p>  cout<<"--------------------- ";</p><p>  cout<<endl;</p><p>  for(int j=0;j<choice;j++)</p><p><b>  {&

61、lt;/b></p><p>  cout<<"Su "<<"Mo "<<"Tu "<<"We "<<"Th "<<"Fr "<<"Sa "<<" "

62、;</p><p><b>  }</b></p><p>  cout<<endl;</p><p>  for(j=0;j<choice;j++) //這個(gè)循環(huán)是為了輸出第一行,第一行都是單數(shù),所以提出來(lái)輸</p>

63、<p><b>  {</b></p><p>  int month;</p><p>  month=choice*(i-1)+j+1; //計(jì)算月份</p><p>  s=getdays(year,month,1);</p>&

64、lt;p>  s=s%7; //獲取每月第一天</p><p>  for(int m=0;m<s;m++)</p><p>  cout<<" ";

65、 //輸出月前的空</p><p>  if(isleap(year)) dayofmonth[2]=29;</p><p>  b[j]=dayofmonth[month]; //月份天數(shù) b數(shù)組儲(chǔ)存一個(gè)月的天數(shù)</p><p>  for(int i=

66、1;i<8-s;i++) //從一號(hào)開始輸出</p><p>  cout<<setw(2)<<i<<" "; //最后那個(gè)空是為了讓一位數(shù)和兩位數(shù)對(duì)齊</p><p&g

67、t;  a[j]=i; //a數(shù)組用來(lái)儲(chǔ)存每一行的日期素材</p><p>  cout<<" "; //兩個(gè)月份之間的空隙</p><p

68、><b>  } </b></p><p>  cout<<endl;</p><p>  for(int w=1;w<=5;w++) //一個(gè)月最多會(huì)在五個(gè)星期出現(xiàn)</p><p><b>  {</b>

69、;</p><p>  for(j=0;j<choice;j++) //輸出要求個(gè)數(shù)的月份</p><p><b>  {</b></p><p><b>  int w=1;</b></p><p>  

70、for(w=1;w<=7;w++,a[j]++) //依次輸出日期</p><p><b>  {</b></p><p>  if(a[j]>b[j]) //如果那一行的日期數(shù)大于該月最大日期則

71、跳出</p><p><b>  break;</b></p><p>  cout<<setw(2)<<a[j]<<" ";</p><p><b>  if(w==7)</b></p><p>  cout<<"

72、"; //輸出每?jī)蓚€(gè)月之間日期間的空隙</p><p><b>  }</b></p><p>  for(int n=1;a[j]>b[j],n<=8-w;n++) //月份</p><p

73、>  cout<<" ";</p><p>  if(a[j]>b[j]&&w!=8) //輸出月份結(jié)束后的空</p><p>  cout<<" ";</p><p><b&g

74、t;  }</b></p><p>  cout<<endl; //為了美觀 空一行</p><p><b>  }</b></p><p><b>  }</b></p>&l

75、t;p><b>  }</b></p><p><b>  }</b></p><p>  void wnl::printyearmonth(int year,int month)</p><p><b>  {</b></p><p>  if(year>=100

76、0&&year<=9999)</p><p><b>  {</b></p><p>  if(month<=12&&month>=1)</p><p><b>  {</b></p><p>  cout<<"

77、 "<<monthname[month]<<endl;</p><p>  cout<<" ----------------------------------------"<<endl;</p><p>  cout<<setw(6)<<"Sun&qu

78、ot;<<setw(6)<<"Mon"<<setw(6)<<"Two"<<setw(6)</p><p>  <<"Wed"<<setw(6)<<"Thur"<<setw(6)<<"Fri"<

79、;<setw(6)<<"Sat"<<endl; //我覺得輸出這個(gè)可以定義一個(gè)數(shù)組,用循環(huán)來(lái)做,但這樣可能會(huì)使執(zhí)行速度變慢 </p><p>  int number=getdays(year,month,1)%7; //第一天就一就相當(dāng)于有一天了</p><p>  for(int k=0;k<number;k

80、++)</p><p>  {cout<<setw(6)<<" ";}</p><p>  int max=dayofmonth[month];</p><p>  for(int j=1;j<=max;j++)</p><p><b>  {</b></p>

81、<p>  cout<<setw(6)<<j;</p><p>  if((number+j)%7==0) //周六換行</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  cout<<

82、;endl<<endl<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"沒有按格式輸入"<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論