版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編課程設(shè)計(jì)---顯示系統(tǒng)日期時(shí)間程序設(shè)計(jì)
- c++課程設(shè)計(jì)——日期類(lèi)設(shè)計(jì)報(bào)告
- 匯編課程設(shè)計(jì)---顯示系統(tǒng)日期時(shí)間程序設(shè)計(jì)1
- 匯編課程設(shè)計(jì)---顯示系統(tǒng)日期時(shí)間程序設(shè)計(jì)1
- 匯編語(yǔ)言課程設(shè)計(jì)顯示系統(tǒng)當(dāng)前時(shí)間與日期
- 匯編語(yǔ)言課程設(shè)計(jì)----顯示系統(tǒng)當(dāng)前時(shí)間與日期
- c語(yǔ)言課程設(shè)計(jì)--日期工具
- 由日期得星期幾~課程設(shè)計(jì)報(bào)告書(shū)
- 匯編課程設(shè)計(jì)報(bào)告---顯示系統(tǒng)時(shí)間
- 匯編課程設(shè)計(jì)報(bào)告-系統(tǒng)時(shí)間顯示
- 作息時(shí)間控制課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--系統(tǒng)時(shí)間程序設(shè)計(jì)
- php日期和時(shí)間的管理
- 時(shí)間序列課程設(shè)計(jì)
- 課程設(shè)計(jì)--時(shí)間編程
- 微機(jī)原理課程設(shè)計(jì)----鍵盤(pán)接收日期并顯示
- 機(jī)械表如何調(diào)時(shí)間和日期
- 單片機(jī)最小時(shí)鐘日期顯示課程設(shè)計(jì)
- 匯編語(yǔ)言課程設(shè)計(jì)報(bào)告---顯示系統(tǒng)時(shí)間
- 《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間
評(píng)論
0/150
提交評(píng)論