2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(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>  《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告</p><p><b>  萬年歷</b></p><p>  完 成 時(shí) 間: </p><p>  指 導(dǎo) 老 師 : </p><p>  目

2、 錄</p><p><b>  一、需求分析3</b></p><p>  二、系統(tǒng)總框架圖3</p><p>  三、每個(gè)模塊的設(shè)計(jì)分析4</p><p>  四、所定義的函數(shù)及其說明4</p><p>  五、例舉特色算法5</p><p>  六、存在問題

3、與不足及對(duì)策6</p><p><b>  七、使用說明6</b></p><p>  八、程序運(yùn)行結(jié)果6</p><p><b>  九、程序源代碼9</b></p><p><b>  需求分析</b></p><p>  現(xiàn)代化社會(huì)中,人們

4、的日期和時(shí)間觀念日益加強(qiáng);制作一個(gè)小巧而精確的萬年歷,有助于幫助人們對(duì)于日程管理的安排。這個(gè)萬年歷系統(tǒng)就是為此而為各類人群而誕生的。</p><p><b>  系統(tǒng)總框架圖</b></p><p><b>  圖1</b></p><p><b>  每個(gè)模塊的設(shè)計(jì)分析</b></p>

5、<p>  輸入年并查看該年的每個(gè)月份的日歷</p><p>  系統(tǒng)提示用戶進(jìn)行數(shù)字功能選擇和輸入所要查看的年份,并顯示該年份12個(gè)月的日歷,且是否是閏年。</p><p>  輸入年月并查看該月份的日歷</p><p>  系統(tǒng)提示用戶進(jìn)行數(shù)字功能選擇和輸入所要查看的年份中的月份,并顯示該月的日歷,且2月有無29日。</p><p

6、>  輸入年月日并查看該日是星期幾</p><p>  系統(tǒng)提示用戶進(jìn)行數(shù)字功能選擇和輸入所要查看的年份中的具體日期,并顯示該日期是星期幾。</p><p><b>  所定義的函數(shù)及說明</b></p><p>  using namespace std;</p><p>  int daysOfMonth[13

7、]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //定義全局變量</p><p>  //類PerpetualCalendar開始</p><p>  class PerpetualCalendar</p><p><b>  {</b></p><p>  void printM

8、onth(); //按月打印萬年歷</p><p>  void printYear(); //按年打印萬年歷</p><p>  void printDay(); //打印日期對(duì)應(yīng)的星期</p><p>  void operate(); //執(zhí)行各種操作的演示</p><p>  PerpetualCalend

9、ar();//構(gòu)造函數(shù)</p><p>  PerpetualCalendar(int y,int m,int d); //構(gòu)造函數(shù)重載</p><p><b>  private:</b></p><p><b>  int year;</b></p><p>  int month;</p

10、><p><b>  int day;</b></p><p>  bool isLeap(int y); //判斷是否為閏年</p><p>  int getDays(); //計(jì)算從0年以來有多少天</p><p>  }//end main</p><p>  //類

11、PerpetualCalendar的成員函數(shù)</p><p>  void PerpetualCalendar::setDate() //改變?nèi)掌?lt;/p><p>  int PerpetualCalendar::getWeek() //用于計(jì)算所輸入的年月日的星期數(shù),返回0到6中的一個(gè)數(shù)字</p><p>  else

12、 leapYear="(非閏年)";</p><p>  cout<<endl<<" "<<"公元"<<year<<"年"<<month<<"月"<<leapYear<<endl; //輸出標(biāo)

13、題</p><p>  PerpetualCalendar::PerpetualCalendar()//默認(rèn)構(gòu)造函數(shù)</p><p><b>  {</b></p><p><b>  year=0;</b></p><p><b>  month=1;</b></p&g

14、t;<p><b>  day=1;</b></p><p><b>  }</b></p><p>  PerpetualCalendar::PerpetualCalendar(int y,int m,int d)//重載構(gòu)造函數(shù)</p><p><b>  {</b></p&g

15、t;<p><b>  year=y;</b></p><p><b>  month=m;</b></p><p><b>  day=d;</b></p><p><b>  }</b></p><p>  bool PerpetualC

16、alendar::isLeap(int y) //判斷是否為閏年的成員函數(shù)</p><p><b>  {</b></p><p>  if((y%4==0&&y%100!=0)||(y%400==0)) return true;</p><p>  else ret

17、urn false;</p><p><b>  }</b></p><p>  int PerpetualCalendar::getDays() //用于計(jì)算所輸入的年月日從0年以來的總天數(shù)</p><p><b>  五、舉例特色算法</b></p><p>  Perpet

18、ualCalendar();//構(gòu)造函數(shù)</p><p>  PerpetualCalendar(int y,int m,int d); //構(gòu)造函數(shù)重載</p><p><b>  private:</b></p><p><b>  int year;</b></p><p>  int mon

19、th;</p><p><b>  int day;</b></p><p>  bool isLeap(int y); //判斷是否為閏年</p><p>  int getDays(); //計(jì)算從0年以來有多少天</p><p><b>  };</b></p&

20、gt;<p>  int PerpetualCalendar::getWeek() //用于計(jì)算所輸入的年月日的星期數(shù),返回0到6中的一個(gè)數(shù)字</p><p><b>  {</b></p><p>  int week=getDays()%7;</p><p><b>  week+=5;</b&g

21、t;</p><p><b>  week%=7;</b></p><p>  return week</p><p>  int PerpetualCalendar::getDays() //用于計(jì)算所輸入的年月日從0年以來的總天數(shù)</p><p><b>  {</b><

22、;/p><p>  int i,sumDays=0;</p><p>  for(i=0;i<year;i++)</p><p><b>  {</b></p><p>  if(isLeap(i)) sumDays+=366;</p><p>  else sumDays+=

23、365;</p><p>  六、存在問題與不足及對(duì)策</p><p>  由于設(shè)計(jì)者水平有限及時(shí)間等方面的原因,該系統(tǒng)的功能比較簡(jiǎn)單,查錯(cuò)能力也不強(qiáng),對(duì)于一些不正確的輸入可能會(huì)造成一些難以預(yù)料的結(jié)果,因此,請(qǐng)不要故意輸入錯(cuò)誤信息。這些不足請(qǐng)老師多多諒解。今后設(shè)計(jì)者會(huì)更多的學(xué)習(xí)編程技巧,不斷的提高程序設(shè)計(jì)水平。</p><p>  而且大家都是中國人,在編寫萬年歷的

24、同時(shí)本應(yīng)該也將傳統(tǒng)的農(nóng)歷信息和節(jié)氣節(jié)日編寫進(jìn)去,可由于對(duì)于傳統(tǒng)文化了解不深,以至無法編寫,今后設(shè)計(jì)者會(huì)更多了解此方面內(nèi)容,以彌補(bǔ)此次編程所造成的遺憾。</p><p><b>  七、使用說明</b></p><p>  在c++的vc 6.0編譯環(huán)境中進(jìn)行</p><p><b>  程序運(yùn)行結(jié)果</b></p&g

25、t;<p><b>  運(yùn)行操作1:</b></p><p><b>  圖2</b></p><p><b>  圖3</b></p><p><b>  圖4</b></p><p><b>  圖5</b><

26、/p><p><b>  圖6</b></p><p><b>  運(yùn)行操作2</b></p><p><b>  圖7</b></p><p><b>  圖8</b></p><p><b>  運(yùn)行操作3</b&g

27、t;</p><p><b>  圖9</b></p><p><b>  圖10</b></p><p><b>  運(yùn)行操作4</b></p><p><b>  圖11</b></p><p><b>  九、程序源

28、代碼</b></p><p>  #include<iostream></p><p>  #include<iomanip></p><p>  #include<string></p><p>  using namespace std;</p><p>  int

29、daysOfMonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //定義全局變量</p><p>  //類PerpetualCalendar開始</p><p>  class PerpetualCalendar</p><p><b>  {</b></p><p>

30、;<b>  public:</b></p><p>  int getYear();</p><p>  int getMonth();</p><p>  int getDay();</p><p>  void setYear();</p><p>  void setMonth();<

31、;/p><p>  void setDate();</p><p>  int getWeek();</p><p>  void printMonth(); //按月打印萬年歷</p><p>  void printYear(); //按年打印萬年歷</p><p>  void printDay();

32、 //打印日期對(duì)應(yīng)的星期</p><p>  void operate(); //執(zhí)行各種操作的演示</p><p>  PerpetualCalendar();//構(gòu)造函數(shù)</p><p>  PerpetualCalendar(int y,int m,int d); //構(gòu)造函數(shù)重載</p><p><b>  pr

33、ivate:</b></p><p><b>  int year;</b></p><p>  int month;</p><p><b>  int day;</b></p><p>  bool isLeap(int y); //判斷是否為閏年</p>&l

34、t;p>  int getDays(); //計(jì)算從0年以來有多少天</p><p><b>  };</b></p><p>  int main()</p><p><b>  {</b></p><p>  PerpetualCalendar test;</p&g

35、t;<p>  test.operate();</p><p><b>  return 0;</b></p><p>  }//end main</p><p>  //類PerpetualCalendar的成員函數(shù)</p><p>  int PerpetualCalendar::getYear()&l

36、t;/p><p><b>  {</b></p><p>  return year;</p><p><b>  }</b></p><p>  int PerpetualCalendar::getMonth()</p><p><b>  {</b>&l

37、t;/p><p>  return month;</p><p><b>  }</b></p><p>  int PerpetualCalendar::getDay()</p><p><b>  {</b></p><p>  return day;</p>

38、<p><b>  }</b></p><p>  void PerpetualCalendar::setYear()</p><p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b><

39、;/p><p>  cout<<"Input year:";</p><p>  cin>>year;</p><p>  if(year<0||year>9999) cout<<"Input Error!"<<endl;</p><p>  }w

40、hile(year<0||year>9999);</p><p><b>  month=1;</b></p><p><b>  day=1;</b></p><p><b>  }</b></p><p>  void PerpetualCalendar::se

41、tMonth()</p><p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  cout<<"Input year,month:";</p><p

42、>  cin>>year>>month;</p><p>  if(year<0||year>9999||month<=0||month>12) cout<<"Input Error!"<<endl;</p><p>  }while(year<0||year>9999||mont

43、h<=0||month>12);</p><p><b>  day=1;</b></p><p><b>  }</b></p><p>  void PerpetualCalendar::setDate() //改變?nèi)掌?lt;/p><p><b>  {</b&

44、gt;</p><p><b>  do</b></p><p><b>  {</b></p><p>  cout<<"Input year,month,day:";</p><p>  cin>>year>>month>>da

45、y;</p><p>  if(year<0||year>9999||month<=0||month>12||day<=0||day>31)</p><p>  cout<<"Input Error!"<<endl;</p><p>  }while(year<0||year>

46、;9999||month<=0||month>12||day<=0||day>31);</p><p><b>  }</b></p><p>  int PerpetualCalendar::getWeek() //用于計(jì)算所輸入的年月日的星期數(shù),返回0到6中的一個(gè)數(shù)字</p><p><b>

47、  {</b></p><p>  int week=getDays()%7;</p><p><b>  week+=5;</b></p><p><b>  week%=7;</b></p><p>  return week;</p><p><b&g

48、t;  }</b></p><p>  void PerpetualCalendar::printMonth()</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  int xx;</b></p

49、><p>  int tempDay=day;</p><p><b>  day=1;</b></p><p>  int week=getWeek();</p><p>  day=tempDay;</p><p>  int setLine=week;</p><p> 

50、 string leapYear;</p><p>  if(isLeap(year)) leapYear="(閏年)";</p><p>  else leapYear="(非閏年)";</p><p>  cout<<endl<<" "<

51、;<"公元"<<year<<"年"<<month<<"月"<<leapYear<<endl; //輸出標(biāo)題</p><p><b>  //XX年XX月</b></p><p>  cout<<" SU

52、N MON TUE WED THU FRI SAT"<<endl;</p><p>  switch(week)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  for(i=1;i<=daysOfMonth[

53、month];i++,setLine++)</p><p><b>  {</b></p><p>  if(setLine%7==0&&setLine!=0) cout<<endl<<" ";</p><p>  if(i==1) cout<<" &

54、quot;<<setw(4)<<setiosflags(ios::left)<<i;</p><p>  else cout<<setw(4)<<setiosflags(ios::left)<<i;</p><p><b>  }</b></p><p>  cout<

55、;<endl;</p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  for(i=1;i<=daysOfMonth[month];i++,setLine++)</p><p><b>  {</b>

56、</p><p>  if(setLine%7==0) cout<<endl<<" ";</p><p>  if(i==1) cout<<" "<<setw(4)<<setiosflags(ios::left)<<i;</p><p>

57、;  else cout<<setw(4)<<setiosflags(ios::left)<<i;</p><p><b>  }</b></p><p>  cout<<endl;</p><p><b>  break;</b></p><p>&

58、lt;b>  case 2:</b></p><p>  for(i=1;i<=daysOfMonth[month];i++,setLine++)</p><p><b>  {</b></p><p>  if(setLine%7==0) cout<<endl<<" "

59、;</p><p>  if(i==1) cout<<" "<<setw(4)<<setiosflags(ios::left)<<i;</p><p>  else cout<<setw(4)<<setiosflags(ios::left)<<i;</p>

60、;<p><b>  }</b></p><p>  cout<<endl;</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  for(i=1;i<=daysOfMonth[

61、month];i++,setLine++)</p><p><b>  {</b></p><p>  if(setLine%7==0) cout<<endl<<" ";</p><p>  if(i==1) cout<<" "<

62、;<setw(4)<<setiosflags(ios::left)</p><p><b>  <<i;</b></p><p>  else cout<<setw(4)<<setiosflags(ios::left)<<i;</p><p><b>  }</b

63、></p><p>  cout<<endl;</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  for(i=1;i<=daysOfMonth[month];i++,setLine++)</p>

64、;<p><b>  {</b></p><p>  if(setLine%7==0) cout<<endl<<" ";</p><p>  if(i==1) cout<<" "<<setw(4)<<setios

65、flags</p><p>  (ios::left)<<i;</p><p>  else cout<<setw(4)<<setiosflags(ios::left)<<i;</p><p><b>  }</b></p><p>  cout<<endl;&

66、lt;/p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  for(i=1;i<=daysOfMonth[month];i++,setLine++)</p><p><b>  {</b></p>

67、<p>  if(setLine%7==0) cout<<endl<<" ";</p><p>  if(i==1) cout<<" "<<setw(4)<<setiosflags</p><p>  (ios::left)&l

68、t;<i;</p><p>  else cout<<setw(4)<<setiosflags(ios::left)<<i;</p><p><b>  }</b></p><p>  cout<<endl;</p><p><b>  break;<

69、/b></p><p><b>  case 6:</b></p><p>  for(i=1;i<=daysOfMonth[month];i++,setLine++)</p><p><b>  {</b></p><p>  if(setLine%7==0) cout<<

70、endl<<" ";</p><p>  if(i==1) cout<<" "<<setw(4)<<setiosflags</p><p>  (ios::left)<<i;</p><p>  else c

71、out<<setw(4)<<setiosflags(ios::left)<<i;</p><p><b>  }</b></p><p>  cout<<endl;</p><p><b>  break;</b></p><p>  default:

72、cout<<"ERROR!"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void PerpetualCalendar::printYear()</p><p><b>  {

73、</b></p><p>  int tempMonth=month;</p><p>  for(int i=1;i<=12;i++)</p><p><b>  {</b></p><p><b>  month=i;</b></p><p>  pri

74、ntMonth();</p><p><b>  }</b></p><p>  month=tempMonth;</p><p><b>  }</b></p><p>  void PerpetualCalendar::printDay()</p><p><b&g

75、t;  {</b></p><p>  switch(getWeek())</p><p><b>  {</b></p><p>  case 0: cout<<year<<"年"<<month<<"月"<<day<<&

76、quot;日 星期日"<<endl; break;</p><p>  case 1: cout<<year<<"年"<<month<<"月"<<day<<"日 星期一"<<endl; break;</p><p>  c

77、ase 2: cout<<year<<"年"<<month<<"月"<<day<<"日 星期二"<<endl; break;</p><p>  case 3: cout<<year<<"年"<<month<

78、<"月"<<day<<"日 星期三"<<endl; break;</p><p>  case 4: cout<<year<<"年"<<month<<"月"<<day<<"日 星期四"<<

79、;endl; break;</p><p>  case 5: cout<<year<<"年"<<month<<"月"<<day<<"日 星期五"<<endl; break;</p><p>  case 6: cout<<year&

80、lt;<"年"<<month<<"月"<<day<<"日 星期六"<<endl; break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  

81、void PerpetualCalendar::operate()</p><p><b>  {</b></p><p>  int i,choose;</p><p>  bool chooseFlag=false;</p><p>  while(1)//while開始</p><p>&l

82、t;b>  {</b></p><p>  while(!chooseFlag)</p><p>  {cout<<"……………………歡迎使用萬年歷……………………\n"<<endl;</p><p>  cout<<"1.輸入年,顯示該年萬年歷"<<endl&

83、lt;/p><p>  <<"2.輸入年,月,顯示該月萬年歷"<<endl</p><p>  <<"3.輸入年月日,查詢?cè)撊諡樾瞧趲?quot;<<endl</p><p>  <<"4.退出"<<endl;</p><p>

84、;  cout<<endl<<"請(qǐng)輸入數(shù)字選擇你要的操作:";</p><p>  cin>>choose;</p><p>  for(i=1;i<=4;i++)</p><p><b>  {</b></p><p>  if(choose==i) { c

85、hooseFlag=true; break;}</p><p>  else chooseFlag=false;</p><p><b>  }</b></p><p>  if(!chooseFlag) cout<<"Error Input!"<<endl;</p><p>

86、  } //end while(!chooseFlag)</p><p>  if(choose==1) //if 開始</p><p><b>  {</b></p><p>  setYear();</p><p>  printYear();</p><p><b>  }<

87、;/b></p><p>  else if(choose==2)</p><p><b>  {</b></p><p>  setMonth();</p><p>  printMonth();</p><p><b>  }</b></p><

88、p>  else if(choose==3)</p><p><b>  {</b></p><p>  setDate();</p><p>  printDay();</p><p><b>  }</b></p><p>  else if(choose==4)&

89、lt;/p><p><b>  {</b></p><p>  cout<<"程序結(jié)束"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>&l

90、t;b>  else</b></p><p><b>  {</b></p><p>  cout<<"錯(cuò)誤!"<<endl;</p><p><b>  }//end if</b></p><p>  chooseFlag=0;<

91、/p><p>  }//end while(1)</p><p><b>  }</b></p><p>  PerpetualCalendar::PerpetualCalendar()//默認(rèn)構(gòu)造函數(shù)</p><p><b>  {</b></p><p><b> 

92、 year=0;</b></p><p><b>  month=1;</b></p><p><b>  day=1;</b></p><p><b>  }</b></p><p>  PerpetualCalendar::PerpetualCalendar(i

93、nt y,int m,int d)//重載構(gòu)造函數(shù)</p><p><b>  {</b></p><p><b>  year=y;</b></p><p><b>  month=m;</b></p><p><b>  day=d;</b></

94、p><p><b>  }</b></p><p>  bool PerpetualCalendar::isLeap(int y) //判斷是否為閏年的成員函數(shù)</p><p><b>  {</b></p><p>  if((y%4==0&&y%100!=0)||(y%400==0

95、)) return true;</p><p>  else return false;</p><p><b>  }</b></p><p>  int PerpetualCalendar::getDays() //用于計(jì)算所輸入的年月日從0年以來的總天數(shù)<

96、;/p><p><b>  {</b></p><p>  int i,sumDays=0;</p><p>  for(i=0;i<year;i++)</p><p><b>  {</b></p><p>  if(isLeap(i)) sumDays+=366;<

97、;/p><p>  else sumDays+=365;</p><p><b>  }</b></p><p>  if(isLeap(year)) daysOfMonth[2]=29;</p><p>  for(i=1;i<month;i++)</p><p>  sum

溫馨提示

  • 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)論