2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩53頁(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>  日期和時(shí)間課程設(shè)計(jì)報(bào)告</p><p><b>  功能</b></p><p>  1.1課程設(shè)計(jì)題目功能:定義了日期類(lèi)、時(shí)間類(lèi)和日期時(shí)間綜合類(lèi),重載了+、-、++、--、=、>=、<=、==、!=等運(yùn)算符,可以設(shè)置時(shí)間、日期,比較時(shí)間和日期的大小,可以進(jìn)行時(shí)間、日期對(duì)象的運(yùn)算(加減),并按多種格式輸出結(jié)果。</p>

2、<p>  1.2思想和方法:通過(guò)重載運(yùn)算符使運(yùn)算符實(shí)現(xiàn)對(duì)對(duì)象的加減運(yùn)算,并在結(jié)果輸出時(shí)自動(dòng)載入閏年判斷程序,實(shí)現(xiàn)結(jié)果的智能化輸出;將菜單輸出和結(jié)果輸出隔開(kāi),防止混淆;日期類(lèi)中將星期五單獨(dú)定義,實(shí)現(xiàn)對(duì)錯(cuò)誤的處理;通過(guò)拷貝函數(shù)的運(yùn)用,實(shí)現(xiàn)“+”、“-”的重載。</p><p>  1.3增加的新功能:增加了對(duì)運(yùn)算起始日期時(shí)間的修改和各操作菜單的退出功能。</p><p><b

3、>  詳細(xì)設(shè)計(jì)</b></p><p>  2.1 c_Time類(lèi):重載了+、-、++、--、==、!=、<、>、<=、>=運(yùn)算符;將時(shí)間是否超過(guò)或少于當(dāng)天設(shè)置為靜態(tài)靜態(tài)成員函數(shù),設(shè)置了兩個(gè)輸出函數(shù);“-”中,優(yōu)化了結(jié)構(gòu),以四行將原程序代替,將少于一天的情況在后面列出;“+”中,將數(shù)值超過(guò)范圍的情況的處理在后面列出。</p><p>  2.2

4、 c_Date類(lèi):重載了+、-、++、--、==、!=、<、>、<=、>=運(yùn)算符;設(shè)置了兩個(gè)輸出函數(shù);簡(jiǎn)化了“+”運(yùn)算符,同時(shí)修正了錯(cuò)誤;“+”“-”中,將數(shù)值超過(guò)范圍的情況的處理在后面列出;在第一個(gè)函數(shù)中,對(duì)當(dāng)前時(shí)間日期進(jìn)行了賦值,是起始日期時(shí)間的設(shè)定函數(shù)。</p><p>  2.3 TDmanage類(lèi):重載了+、-、++、--、==、!=、<、>、<=、>=

5、運(yùn)算符;設(shè)置為c_Time和c_Date的派生類(lèi),可以實(shí)現(xiàn)對(duì)時(shí)間和日期的混合加減比較。</p><p>  2.4 TDglobal類(lèi):為輸入輸出的專(zhuān)門(mén)的類(lèi),重載了<<,>>運(yùn)算符。</p><p>  2.5 error類(lèi):為專(zhuān)門(mén)處理錯(cuò)誤的類(lèi),包括對(duì)原日期時(shí)間少于1900的處理,以及在“+”、“-”中結(jié)果少于1900的處理,以及輸出時(shí)日期時(shí)間少于1900的處理

6、。</p><p>  2.6 main類(lèi):以swith型進(jìn)行菜單的輸出,主要是對(duì)所有程序的綜合處理,對(duì)菜單項(xiàng)的編輯,是最后的運(yùn)行程序。</p><p><b>  調(diào)試過(guò)程</b></p><p>  3.1出現(xiàn)了編譯時(shí)無(wú)問(wèn)題,而調(diào)試時(shí)提示沒(méi)有相關(guān)函數(shù)的問(wèn)題,編譯結(jié)束后載入相關(guān)文件解決了問(wèn)題。</p><p>  3

7、.2無(wú)法有效退出,將函數(shù)改為swith型解決問(wèn)題。</p><p>  3.3出現(xiàn)了輸出結(jié)果與預(yù)期不符的狀況,更改了輸出變量名解決問(wèn)題。</p><p>  3.4最開(kāi)始時(shí)沒(méi)有設(shè)置對(duì)“+”的錯(cuò)誤類(lèi)進(jìn)行設(shè)置,由于不太可能遇到相關(guān)情況,沒(méi)有注意,后來(lái)看課本才發(fā)現(xiàn)。</p><p><b>  輸入輸出</b></p><p>

8、;<b>  開(kāi)始界面</b></p><p><b>  時(shí)間格式的更改與否</b></p><p><b>  主操作菜單</b></p><p>  時(shí)間類(lèi)操作,以“+”為例</p><p>  其后繼續(xù)為主操作菜單</p><p>  日期類(lèi)操作

9、,以“-”為例</p><p>  綜合類(lèi)操作,以比較為例</p><p><b>  總結(jié)</b></p><p>  本程序大量運(yùn)用了運(yùn)算符的重載,并且用到了多文件的處理,對(duì)以后處理或創(chuàng)建大程序很有幫助。而且運(yùn)算符重載實(shí)際上是有很多技巧的,最一般的“+”“-”重載,需要考慮輸入的數(shù)據(jù)的類(lèi)型及對(duì)輸出結(jié)果的要求。另外錯(cuò)誤處理也是個(gè)難關(guān),即“er

10、ror”類(lèi),不僅要考慮原日期時(shí)間的處理,還要考慮對(duì)運(yùn)算符錯(cuò)誤的處理,很有可能會(huì)落下某些情況,需要不斷調(diào)試以保證每種情況都考慮到了。這個(gè)程序?qū)€(gè)人對(duì)類(lèi)處理必須相當(dāng)熟悉,幾乎將所有可能的情況都涉及了,而且難度不算太大,對(duì)于剛接觸c++沒(méi)有太長(zhǎng)時(shí)間的我們是個(gè)很好的練習(xí)課程。</p><p><b>  附件</b></p><p><b>  源程序:</b

11、></p><p>  //cTime_t.h Begin</p><p>  #include <iostream.h></p><p>  #include <time.h></p><p>  #ifndef cTime_t_h</p><p>  #define cTime_t_h

12、</p><p>  class cTime_t</p><p><b>  {</b></p><p>  static int FlagMoreDay;</p><p>  static int FlagLessDay;</p><p>  static int format;</p&g

13、t;<p>  int Seconds;</p><p>  int Minutes;</p><p>  int Hours;</p><p>  struct tm *CurrentTime;</p><p>  time_t time_date;</p><p><b>  public:

14、</b></p><p>  cTime_t();</p><p>  cTime_t(const cTime_t &T);</p><p>  cTime_t(int hour,int min=0,int sec=0):Seconds(sec),Minutes(min),Hours(hour) {};</p><p> 

15、 ~cTime_t(){};</p><p>  const cTime_t& operator = (const cTime_t& T);</p><p>  inline void SetSec (int sec) {Seconds=sec;}</p><p>  inline void SetMin (int min) {Minutes=min

16、;}</p><p>  inline void SetHour (int hour) {Hours=hour;}</p><p>  void print() const;</p><p>  void print1() const;</p><p>  inline int GetSec () const {return Seconds;

17、}</p><p>  inline int GetMin () const {return Minutes;}</p><p>  inline int GetHour () const {return Hours;}</p><p>  int getFlagMoreDay(){return FlagMoreDay;}</p><p> 

18、 int getFlagLessDay(){return FlagLessDay;}</p><p>  void resetFlagMoreDay(){FlagMoreDay=0;}</p><p>  void resetFlagLessDay(){FlagLessDay=0;}</p><p>  bool operator < (const cTime

19、_t& T)const;</p><p>  bool operator <= (const cTime_t& T)const;</p><p>  bool operator > (const cTime_t& T)const;</p><p>  bool operator >= (const cTime_t&

20、T)const;</p><p>  bool operator == (const cTime_t& T)const;</p><p>  bool operator != (const cTime_t& T)const;</p><p>  const cTime_t operator + (const cTime_t& T) const

21、;</p><p>  int operator - (cTime_t& T);</p><p>  const cTime_t operator + (int NewMinutes);</p><p>  const cTime_t operator - (int NewMinutes);</p><p>  int getform

22、at1(){return format;}</p><p>  void operator ++ ();</p><p>  void operator -- (); </p><p>  static void ChangeFormat() { format = (format==1)? 2 : 1 ; } //format can be only 1 or 2&

23、lt;/p><p>  friend ostream& operator << (ostream &out,const cTime_t &T) ;</p><p>  friend istream& operator >> (istream &in, cTime_t &T) ;</p><p>  

24、friend class cTDmanage;</p><p><b>  };</b></p><p><b>  #endif</b></p><p>  //cTime_t.h End</p><p>  //cTime_t.cpp</p><p>  //implem

25、entation of cTime_t</p><p>  #include "cTime_t.h"</p><p>  int cTime_t::format=1;</p><p>  int cTime_t::FlagMoreDay=0; // default values for static data members</p>

26、<p>  int cTime_t::FlagLessDay=0;</p><p>  //------------------------------------</p><p>  cTime_t::cTime_t() //empty c'tor</p><p><b>  {</b></p><p&

27、gt;  time_date=time(0);</p><p>  CurrentTime=localtime(&time_date);</p><p>  Seconds=CurrentTime->tm_sec;</p><p>  Minutes=CurrentTime->tm_min;</p><p>  Hours

28、=CurrentTime->tm_hour;</p><p><b>  }</b></p><p>  //------------------------------------</p><p>  cTime_t::cTime_t(const cTime_t &T) //copy c'tor</p>&

29、lt;p><b>  {</b></p><p>  Seconds=T.Seconds;</p><p>  Minutes=T.Minutes;</p><p>  Hours=T.Hours;</p><p><b>  }</b></p><p>  //---

30、---------------------------------</p><p>  const cTime_t& cTime_t::operator = (const cTime_t& T) //operator = function</p><p><b>  {</b></p><p>  Seconds=T.Secon

31、ds;</p><p>  Minutes=T.Minutes; // copy relevent fields</p><p>  Hours=T.Hours;</p><p>  return *this;</p><p><b>  }</b></p><p>  //-----------

32、-------------------------</p><p>  void cTime_t::print() const //print function</p><p><b>  {</b></p><p>  switch(format)</p><p><b>  {</b></

33、p><p><b>  case 1:</b></p><p>  if(Seconds<10 && Minutes<10)</p><p>  cout<<"The time is: "<< Hours<<":0"<<Minute

34、s<<":0"<<Seconds<<"."<<endl;</p><p>  else if(Seconds<10)</p><p>  cout<<"The time is: "<< Hours<<":"<<

35、;Minutes<<":0"<<Seconds<<"."<<endl;</p><p>  else if(Minutes<10)</p><p>  cout<<"The time is: "<< Hours<<":0"

36、;<<Minutes<<":"<<Seconds<<"."<<endl;</p><p><b>  else</b></p><p>  cout<<"The time is: "<< Hours<<"

37、;:"<<Minutes<<":"<<Seconds<<"."<<endl;</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  if(Hour

38、s<=12)</p><p><b>  {</b></p><p>  if(Seconds<10 && Minutes<10)</p><p>  cout<<"The time is: "<<Hours<<":0"<<

39、;Minutes<<":0"<<Seconds<< " AM."<<endl;</p><p>  else if(Minutes<10)</p><p>  cout<<"The time is: "<<Hours<<":0&q

40、uot;<<Minutes<<":"<<Seconds<< " AM."<<endl;</p><p>  else if(Seconds<10)</p><p>  cout<<"The time is: "<<Hours<<

41、":"<<Minutes<<":0"<<Seconds<< " AM."<<endl;</p><p><b>  else </b></p><p>  cout<<"The time is: "<<H

42、ours<<":"<<Minutes<<":"<<Seconds<< " AM."<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p

43、><b>  {</b></p><p>  if (Seconds<10 && Minutes<10)</p><p>  cout<<"The time is: "<<Hours-12<<":0"<<Minutes<<"

44、:0"<<Seconds<< " PM."<<endl;</p><p>  else if (Minutes<10)</p><p>  cout<<"The time is: "<<Hours-12<<":0"<<Minute

45、s<<":"<<Seconds<< " PM."<<endl;</p><p>  else if (Seconds<10)</p><p>  cout<<"The time is: "<<Hours-12<<":"&

46、lt;<Minutes<<":0"<<Seconds<< " PM."<<endl;</p><p><b>  else</b></p><p>  cout<<"The time is: "<<Hours-12<<

47、":"<<Minutes<<":"<<Seconds<< " PM."<<endl;</p><p><b>  }</b></p><p><b>  break;</b></p><p><b&

48、gt;  default:</b></p><p>  cout<<"The format is not ok"<<endl; //error (if format value wasn't one of the above</p><p><b>  }</b></p><p>

49、<b>  }</b></p><p>  //------------------------------------</p><p>  void cTime_t::print1() const //print function</p><p><b>  {</b></p><p>  swi

50、tch(format)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  if(Seconds<10 && Minutes<10)</p><p>  cout<< Hours<<&qu

51、ot;:0"<<Minutes<<":0"<<Seconds<<"."<<endl;</p><p>  else if(Seconds<10)</p><p>  cout<< Hours<<":"<<Minutes&

52、lt;<":0"<<Seconds<<"."<<endl;</p><p>  else if(Minutes<10)</p><p>  cout<< Hours<<":0"<<Minutes<<":"<&l

53、t;Seconds<<"."<<endl;</p><p><b>  else</b></p><p>  cout<< Hours<<":"<<Minutes<<":"<<Seconds<<".&qu

54、ot;<<endl;</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  if(Hours<=12)</p><p><b>  {</b></p><p>  if

55、(Seconds<10 && Minutes<10)</p><p>  cout<<Hours<<":0"<<Minutes<<":0"<<Seconds<< " AM."<<endl;</p><p>  else

56、if(Minutes<10)</p><p>  cout<<Hours<<":0"<<Minutes<<":"<<Seconds<< " AM."<<endl;</p><p>  else if(Seconds<10)</p&

57、gt;<p>  cout<<Hours<<":"<<Minutes<<":0"<<Seconds<< " AM."<<endl;</p><p><b>  else </b></p><p>  cout&l

58、t;<Hours<<":"<<Minutes<<":"<<Seconds<< " AM."<<endl;</p><p><b>  }</b></p><p><b>  else</b></p>

59、<p><b>  {</b></p><p>  if (Seconds<10 && Minutes<10)</p><p>  cout<<Hours-12<<":0"<<Minutes<<":0"<<Seconds<

60、< " PM."<<endl;</p><p>  else if (Minutes<10)</p><p>  cout<<Hours-12<<":0"<<Minutes<<":"<<Seconds<< " PM."

61、;<<endl;</p><p>  else if (Seconds<10)</p><p>  cout<<Hours-12<<":"<<Minutes<<":0"<<Seconds<< " PM."<<endl;</p

62、><p><b>  else</b></p><p>  cout<<Hours-12<<":"<<Minutes<<":"<<Seconds<< " PM."<<endl;</p><p><b&

63、gt;  }</b></p><p><b>  break;</b></p><p><b>  default:</b></p><p>  cout<<"The format is not ok"<<endl; //error (if format value

64、wasn't one of the above</p><p><b>  }</b></p><p><b>  }</b></p><p>  //------------------------------------</p><p>  bool cTime_t::operator

65、< (const cTime_t& T)const //operator < function</p><p><b>  {</b></p><p>  if (Hours<T.Hours)return true;</p><p>  if(Hours==T.Hours)</p><p>

66、<b>  {</b></p><p>  if(Minutes<T.Minutes)return true;</p><p>  if(Minutes==T.Minutes)return (Seconds<T.Seconds);</p><p><b>  }</b></p><p

67、>  return false;</p><p><b>  }</b></p><p>  //------------------------------------</p><p>  bool cTime_t::operator <= (const cTime_t &T)const //operator <=

68、function</p><p><b>  {</b></p><p>  if (Hours<T.Hours)return true;</p><p>  if(Hours==T.Hours)</p><p><b>  {</b></p><p>  if(M

69、inutes<T.Minutes)return true;</p><p>  if(Minutes==T.Minutes)return (Seconds<=T.Seconds);</p><p><b>  }</b></p><p>  return false;</p><p><b>

70、;  }</b></p><p>  //------------------------------------</p><p>  bool cTime_t::operator > (const cTime_t& T)const //operator > function</p><p><b>  {</b>

71、;</p><p>  if (Hours>T.Hours)return true;</p><p>  if(Hours==T.Hours)</p><p><b>  {</b></p><p>  if(Minutes>T.Minutes)return true;</p><

72、;p>  if(Minutes==T.Minutes)</p><p>  return (Seconds>T.Seconds);</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><

73、;p>  //------------------------------------</p><p>  bool cTime_t::operator >= (const cTime_t& T)const //operator >= function</p><p><b>  {</b></p><p>  if

74、 (Hours>T.Hours)</p><p>  return true;</p><p>  if(Hours==T.Hours)</p><p><b>  {</b></p><p>  if(Minutes>T.Minutes)</p><p>  return true;

75、</p><p>  if(Minutes==T.Minutes)</p><p>  return (Seconds>=T.Seconds);</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b>

76、;</p><p>  //------------------------------------</p><p>  bool cTime_t::operator == (const cTime_t &T)const //operator == function</p><p><b>  {</b></p><

77、p>  return ( (Hours==T.Hours) && (Minutes==T.Minutes) && (Seconds==T.Seconds) );</p><p><b>  }</b></p><p>  //------------------------------------</p><p

78、>  bool cTime_t::operator != (const cTime_t &T)const//operator != function</p><p><b>  {</b></p><p>  return !( (Hours==T.Hours) && (Minutes==T.Minutes) && (Se

79、conds==T.Seconds) );</p><p><b>  }</b></p><p>  //------------------------------------</p><p>  const cTime_t cTime_t::operator + (const cTime_t &T) const //operator

80、 + function</p><p><b>  {</b></p><p>  int HourTemp,MinuteTemp,SecondTemp;//define 3 temp variables to get time data</p><p>  SecondTemp=Seconds+T.Seconds;</p>&l

81、t;p>  if(SecondTemp>=60)//more thrn 1 minute</p><p><b>  {</b></p><p>  SecondTemp-=60;</p><p>  MinuteTemp=Minutes+T.Minutes+1;//so add to minute</p><p

82、><b>  }</b></p><p><b>  else</b></p><p>  MinuteTemp=Minutes+T.Minutes;</p><p>  if(MinuteTemp>=60)//more then 1 hour</p><p><b>  {&

83、lt;/b></p><p>  MinuteTemp-=60;</p><p>  HourTemp=Hours+T.Hours+1;//add to hour</p><p><b>  }</b></p><p><b>  else</b></p><p>  

84、HourTemp=Hours+T.Hours;</p><p>  if(HourTemp>=24)</p><p><b>  {</b></p><p>  FlagMoreDay=1; //to add day to date class</p><p>  HourTemp-=24;</p>

85、<p><b>  }</b></p><p>  return (cTime_t (HourTemp,MinuteTemp,SecondTemp) ); //return local time class </p><p><b>  }</b></p><p>  //--------------------

86、----------------</p><p>  int cTime_t::operator - (cTime_t &T)</p><p><b>  {</b></p><p>  int newhour,newminute;</p><p>  newhour=Hours-T.Hours;</p&g

87、t;<p>  newminute=Minutes-T.Minutes;</p><p>  return newhour*60+newminute;</p><p><b>  }</b></p><p>  /*const cTime_t cTime_t::operator - (const cTime_t &T) c

88、onst //operaor - function</p><p><b>  {</b></p><p>  int HourTemp,MinuteTemp,SecondTemp;//define 3 temp variables to get time data</p><p>  HourTemp = Hours-T.Hours;<

89、/p><p>  if(HourTemp<0)//T class hour was bigger then THIS class</p><p><b>  {</b></p><p>  FlagLessDay=1; //to cut 1 day form date class</p><p>  HourTemp+

90、=24;// add 24 hours to previous day</p><p><b>  }</b></p><p>  MinuteTemp=Minutes-T.Minutes;</p><p>  if(MinuteTemp<0)//same for minutes</p><p><b>

91、  {</b></p><p>  MinuteTemp+=60;</p><p>  --HourTemp;</p><p><b>  }</b></p><p>  SecondTemp=Seconds-T.Seconds;</p><p>  if(SecondTemp<

92、0)//same for seconds</p><p><b>  {</b></p><p>  SecondTemp+=60;</p><p>  --MinuteTemp;</p><p><b>  }</b></p><p>  return ( cTime_t

93、( HourTemp,MinuteTemp,SecondTemp) );//return local class </p><p><b>  }*/</b></p><p>  //------------------------------------</p><p>  void cTime_t::operator ++ () //ope

94、rator ++ function</p><p><b>  {</b></p><p>  if ( (Seconds==59) && (Minutes==59) && (Hours==23) ) // end of a day</p><p><b>  {</b></p>

95、<p>  FlagMoreDay=1;//to add day to day class</p><p>  Seconds=0;</p><p>  Minutes=0;</p><p><b>  Hours=0;</b></p><p><b>  }</b></p>

96、;<p>  else if( (Seconds==59) && (Minutes==59) )//end of hour</p><p><b>  {</b></p><p>  Seconds=0;</p><p>  Minutes=0;</p><p><b>  ++H

97、ours;</b></p><p><b>  }</b></p><p>  else if( Seconds==59 )//end of minute</p><p><b>  {</b></p><p>  Seconds=0;</p><p>  ++M

98、inutes;</p><p><b>  }</b></p><p><b>  else</b></p><p>  ++Seconds;</p><p><b>  }</b></p><p>  //-----------------------

99、-------------</p><p>  void cTime_t::operator -- () //operator -- function</p><p><b>  {</b></p><p>  if ( (Seconds==0) && (Minutes==0) && (Hours==0) )//

100、start of day</p><p><b>  {</b></p><p>  FlagLessDay=1;//to substruct 1 day from day class</p><p>  Seconds=59;</p><p>  Minutes=59;</p><p><

101、b>  Hours=23;</b></p><p><b>  }</b></p><p>  else if( (Seconds==0) && (Minutes==0) )//start of hour</p><p><b>  {</b></p><p>  

102、Seconds=59;</p><p>  Minutes=59;</p><p><b>  --Hours;</b></p><p><b>  }</b></p><p>  else if( Seconds==0 )//start of minute</p><p>

103、<b>  {</b></p><p>  Seconds=59;</p><p>  --Minutes;</p><p><b>  }</b></p><p><b>  else</b></p><p>  --Seconds;</p>

104、;<p><b>  }</b></p><p>  const cTime_t cTime_t::operator + (int NewMinutes)</p><p><b>  {</b></p><p>  int HourTemp,MinuteTemp,SecondTemp;</p>

105、<p>  SecondTemp=Seconds;</p><p>  HourTemp=Hours;</p><p>  MinuteTemp=Minutes+NewMinutes;</p><p>  while(MinuteTemp>=60)</p><p><b>  {</b></p>

106、;<p>  MinuteTemp-=60;</p><p>  HourTemp+=1;</p><p>  while(HourTemp>=24)</p><p><b>  {</b></p><p>  HourTemp-=24;</p><p>  FlagMoreD

107、ay+=1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return (cTime_t (HourTemp,MinuteTemp,SecondTemp) );</p><p><b>  }</b></p>

108、<p>  const cTime_t cTime_t::operator - (int NewMinutes)</p><p><b>  {</b></p><p>  int HourTemp,MinuteTemp,SecondTemp;</p><p>  SecondTemp=Seconds;</p><

109、;p>  HourTemp=Hours;</p><p>  MinuteTemp=Minutes-NewMinutes;</p><p>  while(MinuteTemp<0)</p><p><b>  {</b></p><p>  MinuteTemp+=60;</p><p&

110、gt;  HourTemp-=1;</p><p>  while(HourTemp<0)</p><p><b>  {</b></p><p>  HourTemp+=24;</p><p>  FlagLessDay=1;</p><p><b>  }</b>&

111、lt;/p><p><b>  }</b></p><p>  return (cTime_t (HourTemp,MinuteTemp,SecondTemp) );</p><p><b>  }</b></p><p>  //cTime_t.cpp end</p><p>

112、;  //cDate_t.h Begin</p><p>  #include <iostream.h></p><p>  #include <time.h></p><p>  #ifndef cDate_t_h</p><p>  #define cDate_t_h</p><p>  #

113、define N 3</p><p>  class cDate_t</p><p><b>  {</b></p><p>  enum Days {Saturday,Sunday,Monday,Tuesday,Wensday,Thursday,Friday };</p><p>  enum Months {None

114、,January,February,Mars,April,May,June,July,August,</p><p>  September,October,November,December };</p><p>  static int format;</p><p>  static char Mon[][10];</p><p>  

115、static char DDays[][10];</p><p><b>  int Day;</b></p><p>  int Month;</p><p><b>  int Year;</b></p><p>  struct tm *CurrentTime;</p><

116、p>  time_t time_date;</p><p><b>  public: </b></p><p>  bool Error;</p><p>  cDate_t();</p><p>  cDate_t(const cDate_t &D);</p><p>  cD

117、ate_t(int year,int month,int day);</p><p>  ~cDate_t(){}</p><p>  const cDate_t& operator = (const cDate_t& D);</p><p>  inline void SetDay (int day) {Day=day;}</p>&

118、lt;p>  inline void SetMon (int mon) {Month=mon;}</p><p>  inline void SetYear (int year) {Year=year;}</p><p>  void print();</p><p>  void print1();</p><p>  inline

119、int GetDayOfMonth () const {return Day;}</p><p>  inline int GetMonth () const {return Month;}</p><p>  inline int GetYear () const {return Year;}</p><p>  int GetDayOfYear(int year

120、,int month,int day);</p><p>  int GetDaysInMonth(int month,int year);</p><p>  int GetDayOfWeek();</p><p>  bool IsLeapYear(int year);</p><p>  char* GetDayOfWeekName()

121、;</p><p>  char* GetNameOfMonth();</p><p>  int RetriveDay(int Days,int year);</p><p>  int RetriveMonth(int Days,int year);</p><p>  bool operator < (const cDate_t&

122、amp; D)const;</p><p>  bool operator <= (const cDate_t& D)const;</p><p>  bool operator > (const cDate_t& D)const;</p><p>  bool operator >= (const cDate_t& D)c

123、onst;</p><p>  bool operator == (const cDate_t& D)const;</p><p>  bool operator != (const cDate_t& D)const;</p><p>  const cDate_t operator + (const cDate_t& D) ;</p&

124、gt;<p>  int operator - (cDate_t& D) ;</p><p>  const cDate_t operator + (int Days) ;</p><p>  const cDate_t operator - (int Days) ;</p><p>  int getformat2(){return form

125、at;}</p><p>  void operator ++ ();</p><p>  void operator -- ();</p><p>  static void cDate_t::ChangeFormat() //implementation of static function must be in header</p><p&

126、gt;<b>  {</b></p><p>  switch(format)</p><p><b>  {</b></p><p>  case 1: format=2; break;</p><p>  case 2: format=3; break;</p><

127、p>  case 3: format=1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  friend ostream& operator << (ostream &out,const cDate_t &D) ;</p

128、><p>  friend istream& operator >> (istream &in, cDate_t &D) ;</p><p>  void SetError() {Error=false;}</p><p>  friend class cTDmanage;</p><p><b> 

129、 };</b></p><p><b>  #endif</b></p><p>  //cDate_t.h End</p><p>  //cDate_t.cpp Begin</p><p>  //implementation of cDate_t.h</p><p>  #i

130、nclude "cDate_t.h"</p><p>  #include "error.h"</p><p>  #include <math.h></p><p>  #define max(a, b) (((a) > (b)) ? (a) : (b))</p><p>  #d

131、efine min(a, b) (((a) < (b)) ? (a) : (b))</p><p>  int cDate_t::format=1;//靜態(tài)成員變量</p><p>  char cDate_t::Mon[][10] = {"Janaury","February","Mars","April&qu

132、ot;,"May",</p><p>  "Juny","July","August","September","October","November","December" };</p><p>  char cDate_t::D

133、Days[][10] = {"Saturday","Sunday","Monday","Tuesday",</p><p>  "Wensday","Thursday","Friday" };</p><p>  //-----------------

134、-------------------</p><p>  cDate_t::cDate_t() //構(gòu)造函數(shù),賦值當(dāng)前時(shí)間</p><p><b>  {</b></p><p>  SetError();</p><p>  time_date=time(0);</p><p>  Curre

135、ntTime=localtime(&time_date); </p><p>  Day=CurrentTime->tm_mday;</p><p>  Month=CurrentTime->tm_mon+1;</p><p>  Year=CurrentTime->tm_year+1900;</p><p><

136、;b>  }</b></p><p>  //------------------------------------</p><p>  cDate_t::cDate_t(int year,int month,int day):Year(year),Month(month),Day(day) //c'tor</p><p><b&g

137、t;  {</b></p><p>  SetError();</p><p>  if (Year<1900) //錯(cuò)誤的數(shù)字 </p><p><b>  {</b></p><p><b>  Error1();</b></p><p>  Error

138、=true;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //------------------------------------</p><p>  cDate_t::cDate_t(const cDate_t &D) //拷貝的

139、構(gòu)造函數(shù)</p><p><b>  {</b></p><p>  SetError();</p><p>  Day=D.Day;</p><p>  Month=D.Month;</p><p>  Year=D.Year;</p><p>  if (Year<

140、;1900)//錯(cuò)誤的數(shù)字</p><p><b>  {</b></p><p><b>  Error1();</b></p><p>  Error=true;</p><p><b>  }</b></p><p><b>  }<

141、;/b></p><p>  //------------------------------------</p><p>  const cDate_t& cDate_t::operator = (const cDate_t& D) //重載=運(yùn)算符</p><p><b>  {</b></p><

142、p>  Day=D.Day;</p><p>  Month=D.Month;</p><p>  Year=D.Year;</p><p>  if (Year<1900)//bad data from the other object</p><p><b>  {</b></p><

143、p><b>  Error1();</b></p><p>  Error=true;//置錯(cuò)誤標(biāo)志</p><p><b>  }</b></p><p><b>  else</b></p><p>  SetError();//正確</p><p

溫馨提示

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