時間和日期報告xym_第1頁
時間和日期報告xym_第2頁
時間和日期報告xym_第3頁
時間和日期報告xym_第4頁
時間和日期報告xym_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

VisualC++課程設計報告時間和日期電子工程與光電技術學院通訊工程(1)班Xxx0904220xxx2010年4月一、程序功能簡介:定義了日期類、時間類和日期時間綜合類,重載了+,-,++,--,=,>=,<=,==,!=等運算符,能夠設置時間、日期,比較時間和日期的大小,進行時間、日期對象的運算,并輸出多種格式的結果。二、課程設計說明:1、原程序日期類中輸出禮拜幾的函數有誤,不可以輸出禮拜五,現改正以下:int

cDate_t::GetDayOfWeek( )

//starting

point

:

1/1/1900

was

Monday(Saturday==0,Sunday==1,...)//1/1/1900是禮拜一,依據這個日期推測目前日期是禮拜幾{intweekday=2;//in1/1/1900//從1/1/1900開始計算for(intTheYear=1900;TheYear<Year;++TheYear)//looptoknowthedayin1/1/thisyear{if(IsLeapYear(TheYear))weekday=(weekday+366)%7;elseweekday=(weekday+365)%7;}//untilherewefoundthecorrectdayin1/1/thisyearfor(intTheMonth=1;TheMonth<Month;++TheMonth)//年份計算完后,計算月份天數weekday=(weekday+GetDaysInMonth(TheMonth,Year))%7;//untilherewefoundthecorrectdayin1/thismonthif((weekday+Day)%7==0)return6;elsereturn((weekday+Day)%7-1);//正確顯示禮拜幾//return(weekday+Day)%7-1;(改正前的,沒法正確顯示禮拜五)//thecorrectdayinTHISday...}2、依據要求在日期類中修他日期對象減去日期對象的重載運算符-,使得結果不是另一個日期,而是天數:intcDate_t::operator-(cDate_t&D)//

重載-運算符//{

改正為日期對象減去日期對象,結果不是另一個日期對象,而是天數intTemp1,Temp2,NewDays=0;Temp1=GetDayOfYear(Year,Month,Day);Temp2=D.GetDayOfYear(D.Year,D.Month,D.Day);if(Year==D.Year){NewDays=max(Temp1,Temp2)-min(Temp1,Temp2);}else{for(intTemp3=min(Year,D.Year);Temp3<max(Year,D.Year);Temp3++){NewDays+=((IsLeapYear(Temp3))?366:365);}if(Year>D.Year)NewDays=NewDays+Temp1-Temp2;elseNewDays=-(NewDays+Temp2-Temp1);}returnNewDays;}//------------------------------------/*constcDate_tcDate_t::operator-(constcDate_t&D)//operator-function

(修改前的函數,結果為另一個日期對象){intYearTemp,MonthTemp,DayTemp,NewDays,Temp1,Temp2;//variablestostoretonewdateobjectif(Error||D.Error)//ifnolessthen1objecthaveorrordata{Error4( );//printorrormessegereturn(cDate_t(-1,-1,-1));//returnerrorclass}YearTemp=Year-D.Year;//substractionofTHISandsecondyearif(YearTemp<1900)//error{Error1( );//printerrormessegereturn(cDate_t(-1,-1,-1));//returnerrorclass}Temp1=GetDayOfYear(Year,Month,Day);//getdaysofyearofTHISobjectif(Temp1<0)//error{Error5( );//printerrormessegereturn(cDate_t(-1,-1,-1));//returnerrorclass}Temp2=GetDayOfYear(D.Year,D.Month,D.Day);//getdaysofyearofsecondobjectif(Temp2<0)//error{Error5( );//printerrormessegereturn(cDate_t(-1,-1,-1));//returnerrorclass}NewDays=Temp1-Temp2;//ifthedataokgettheirsubstractionif(NewDays<0)//thesubstractionislessthenzero{NewDays=NewDays+((IsLeapYear(YearTemp))?366:365);//setdaysforpreviousyearYearTemp-=1;//sub1year}DayTemp=RetriveDay(NewDays,YearTemp);//retrivethecurrentspecificmonthMonthTemp=RetriveMonth(NewDays,YearTemp);//samewithmonthreturn(cDate_t(YearTemp,MonthTemp,DayTemp));//returnlocalclass

day

in

the}*/3、依據要求在時間類中改正時間對象減去時間對象的重載運算符

-,使得結果不是另一個時間,而是分鐘數:intcTime_t::operator-(cTime_t&T)//

重載-運算符(結果不是另一個時間對象,而是分鐘數){intnewhour,newminute;newhour=Hours-T.Hours;newminute=Minutes-T.Minutes;returnnewhour*60+newminute;}//------------------------------------/*constcTime_tcTime_t::operator

-(constcTime_t&T)const//operaor

-function//重載-運算符//改正前的,結果為時間對象{intHourTemp,MinuteTemp,SecondTemp;//define3tempvariablestogettimedata//定義三個時間變量HourTemp=Hours-T.Hours;if(HourTemp<0)//TclasshourwasbiggerthanTHISclass{FlagLessDay=1;//tocut1dayformdateclass//小時相減為負數,將少于1天的標記置1HourTemp+=24;//add24hourstopreviousday//加24小時到前一天}MinuteTemp=Minutes-T.Minutes;if(MinuteTemp<0)//sameforminutes//分鐘相減為負{MinuteTemp+=60;--HourTemp;}SecondTemp=Seconds-T.Seconds;if(SecondTemp<0)//sameforseconds//秒數相減為負{SecondTemp+=60;--MinuteTemp;}return(cTime_t(HourTemp,MinuteTemp,SecondTemp));//returnlocalclass}*/4、改正綜合類cTDmanage的結構,從頭定義為日期類和時間類的派生類,并定義結構函數、各樣運算符重載函數,重載輸入輸出函數:#ifndefTDmanage_h#defineTDmanage_hclasscTDmanage:publiccTime_t,publiccDate_t{public:cTDmanage( ):cTime_t( ),cDate_t( )//結構函數{}cTDmanage(intyear,intmonth,intday,inthour,intminute,intsecond):cDate_t(year,month,day),cTime_t(hour,minute,second){}cTDmanage(inthour,intminute,intsecond):cTime_t(hour,minute,second){}voidoperator=(constcTDmanage&M);//OK//optiontoputallgetandsetfunctionofdateandtimeclassvoidprint( );//operator:booloperator<(constcTDmanage&M)const;booloperator<=(constcTDmanage&M)const;booloperator>(constcTDmanage&M)const;booloperator>=(constcTDmanage&M)const;booloperator==(constcTDmanage&M)const;booloperator!=(constcTDmanage&M)const;constcTDmanageoperator+(constcTDmanage&M);intoperator-(constcTDmanage&M);constcTDmanageoperator+(intMINUTE);constcTDmanageoperator-(intMINUTE);//usingDateandTime++operator:voidoperator++( ){AddDay( );AddSecond( );}voidAddDay( );voidAddSecond( );voidChangeDateFormat( ){cDate_t::ChangeFormat( );}voidChangeTimeFormat( ){cTime_t::ChangeFormat( );}friendostream&operator<<(ostream&out,cTDmanage&M);friendistream&operator>>(istream&in,cTDmanage&M);};#endif//TDmanage.hEnd5、改正main函數結構,采納菜單項選擇項的方式,逐一測試三個類中定義的高中函數和運算符:voidmanuselect(cTime_tT,cDate_tD,cTDmanageL){cout<<"\n***********************************

單***********************************"<<endl;cout<<endl;cout<<"

"<<"1.

時間類操作

\n"<<""<<"2.日期類操作\n"<<""<<"3.綜合類操作\n"<<""<<"4.intselect1,select2=0,select3=0,select4=0;cout<<"請選擇:\n";cin>>select1;switch(select1){case1:cout<<"\n---------------------------------------------------\n"

退出\n";<<"時間類操作\n";cout<<"1.時間加分鐘

\n"<<"2.

時間減分鐘

\n"<<"3.

時間減時間

\n"<<"4.

兩時間比較\n"<<"5.返回上一層\n";cout<<"請選擇:";cin>>select2;timeselect(select2,T,D,L);break;case2:cout<<"---------------------------------------------------\n"<<"

日期類操作\n";cout<<"1.日期加天數\n"<<"2.日期減天數\n"<<"3.日期減日期\n"<<"4.兩日期比較\n"<<"5.返回上一層\n";cout<<"請選擇:";cin>>select3;dateselect(select3,T,D,L);break;case3:cout<<"---------------------------------------------------\n"<<"

綜合類操作\n";cout<<"1.時間日期加分鐘\n"<<"2.時間日期減分鐘\n"<<"3.(結果為分鐘)\n"<<"4.兩時間日期比較\n"<<"5.返回上一層\n";

時間日期減時間日期cout<<"請選擇:";cin>>select4;manageselect(select4,T,D,L);break;case4:break;}}采納的菜單項選擇項以下:1、時間類操作2、日期類操作3、綜合類操作時間類操作的子菜單1、時間加分鐘2、時間減分鐘3、時間減時間4、兩時間比較日期類操作的子菜單1、日期加天數2、日期減天數3、日期減日期4、兩日期比較綜合類操作的子菜單1、日期時間加分鐘2、日期時間減分鐘3、日期時間減去日期時間(結果為分鐘)4、日期時間比較6、程序在各個類中均重載了

+,-

,++,

--

,=

,>=

,<=,

==

,!=

等運算符

,使時間,日期對象能夠進行運算和比較,下以綜合類中各重載函數為例:constcTDmanagecTDmanage::operator+(constcTDmanage&M)//{

重載+運算符intHourTemp,MinuteTemp,SecondTemp;//define3tempvariablestogettimedataSecondTemp=GetSec( )+M.GetSec( );if(SecondTemp>=60)//morethan1minute{SecondTemp-=60;MinuteTemp=GetMin( )+M.GetMin( )+1;//soaddtominute}elseMinuteTemp=GetMin( )+M.GetMin( );if(MinuteTemp>=60)//morethan1hour{MinuteTemp-=60;HourTemp=GetHour( )+M.GetHour( )+1;//addtohour}elseHourTemp=GetHour( )+M.GetHour( );if(HourTemp>=24){FlagMoreDay=1;//toadddaytodateclassHourTemp-=24;}intYearTemp,MonthTemp,DayTemp,NewDays;YearTemp=GetYear( )+M.GetYear( );NewDays=GetDayOfYear(GetYear( ),GetMonth( ),GetDayOfMonth( ))+GetDayOfYear(M.GetYear( ),M.GetMonth( ),M.GetDayOfMonth( ));if(NewDays>((IsLeapYear(YearTemp))?366:365))//ifthesumismorethaninyear{NewDays=NewDays-((IsLeapYear(YearTemp))?366:365);//cut1yeardaysYearTemp+=1;//andaddayear}MonthTemp=RetriveMonth(NewDays,YearTemp);//samewithmonthDayTemp=RetriveDay(NewDays,YearTemp);//retrivethecurrentdayinthespecificmonthDayTemp+=(cTime_t::FlagMoreDay);DayTemp=RetriveDay(NewDays,YearTemp);//retrivethecurrentdayinthespecificmonthreturncTDmanage(YearTemp,MonthTemp,DayTemp,HourTemp,MinuteTemp,SecondTemp);}intcTDmanage::operator-(constcTDmanage&M)//重載-運算符(比較兩個綜合類時間對象,結果獲得相差的分鐘數){intNewDays,Temp1,Temp2;Temp1=GetDayOfYear(GetYear( ),GetMonth( ),GetDayOfMonth( ));Temp2=GetDayOfYear(M.GetYear( ),M.GetMonth( ),M.GetDayOfMonth( ));if(GetYear( )==M.GetYear( )){NewDays=max(Temp1,Temp2)-min(Temp1,Temp2);}else{for(intTemp3=min(GetYear( ),M.GetYear( ));Temp3<max(GetYear( ),M.GetYear( ));Temp3++){NewDays+=((IsLeapYear(Temp3))?366:365);}if(GetYear( )>M.GetYear( ))NewDays=NewDays+Temp1-Temp2;elseNewDays=-(NewDays+Temp2-Temp1);}intnewhour,newminute;newhour=GetHour( )-M.GetHour( );newminute=GetMin( )-M.GetMin( );newminute=newminute+60*newhour+24*60*NewDays;returnnewminute;}voidcTDmanage::operator=(constcTDmanage&M)//重載運算符={SetSec(M.GetSec( ));SetMin(M.GetMin( ));SetHour(M.GetHour( ));SetDay(M.GetDayOfMonth( ));SetMon(M.GetMonth( ));SetYear(M.GetYear( ));}boolcTDmanage::operator<

(constcTDmanage&M)const//

重載<運算符{if(Year<M.GetYear( ))if(Year==M.GetYear( )){

returntrue;if(GetMonth( )<M.GetMonth( ))returntrue;if(GetMonth( )==M.GetMonth( )){if(GetDayOfMonth( )<M.GetDayOfMonth( ))returntrue;if(GetDayOfMonth( )==M.GetDayOfMonth( )){if(GetHour( )<M.GetHour( ))if(GetHour( )==M.GetHour( )){

returntrue;if(GetMin( )<M.GetMin( ))returntrue;if(GetMin( )==M.GetMin( )){return(GetSec( )<M.GetSec( ));}returnfalse;}returnfalse;}returnfalse;}returnfalse;}returnfalse;}boolcTDmanage::operator<=(constcTDmanage&M)const//重載<=運算符{if(Year<M.GetYear( ))if(Year==M.GetYear( )){

returntrue;if(GetMonth( )<M.GetMonth( ))returntrue;if(GetMonth( )==M.GetMonth( )){if(GetDayOfMonth( )<M.GetDayOfMonth( ))returntrue;if(GetDayOfMonth( )==M.GetDayOfMonth( )){if(GetHour( )<M.GetHour( ))if(GetHour( )==M.GetHour( )){

returntrue;if(GetMin( )<M.GetMin( ))returntrue;if(GetMin( )==M.GetMin( )){return(GetSec( )<=M.GetSec( ));}returnfalse;}returnfalse;}returnfalse;}returnfalse;}returnfalse;}boolcTDmanage::operator>

(constcTDmanage&M)const//

重載>運算符{if(Year>M.GetYear( ))if(Year==M.GetYear( )){

returntrue;if(GetMonth( )>M.GetMonth( ))returntrue;if(GetMonth( )==M.GetMonth( )){if(GetDayOfMonth( )>M.GetDayOfMonth( ))returntrue;if(GetDayOfMonth( )==M.GetDayOfMonth( )){if(GetHour( )>M.GetHour( ))if(GetHour( )==M.GetHour( )){

returntrue;if(GetMin( )>M.GetMin( ))returntrue;if(GetMin( )==M.GetMin( )){return(GetSec( )>M.GetSec( ));}returnfalse;}returnfalse;}returnfalse;}returnfalse;}returnfalse;}boolcTDmanage::operator>=(constcTDmanage&M)const//重載>=運算符{if(Year>M.GetYear( ))if(Year==M.GetYear( )){

returntrue;if(GetMonth( )>M.GetMonth( ))returntrue;if(GetMonth( )==M.GetMonth( )){if(GetDayOfMonth( )>M.GetDayOfMonth( ))returntrue;if(GetDayOfMonth( )==M.GetDayOfMonth( )){if(GetHour( )>M.GetHour( ))if(GetHour( )==M.GetHour( )){

returntrue;if(GetMin( )>M.GetMin( ))returntrue;if(GetMin( )==M.GetMin( )){return(GetSec( )>=M.GetSec( ));}returnfalse;}returnfalse;}returnfalse;}returnfalse;}returnfalse;}boolcTDmanage::operator==(constcTDmanage&M)const//

重載==運算符{return((GetSec( )==M.GetSec( ))&&(GetMin( )==M.GetMin( ))&&(GetHour( )==M.GetHour( ))&&(GetDayOfMonth( )==M.GetDayOfMonth( ))&&(GetMonth( )==M.GetMonth( ))&&(GetYear( )==M.GetYear( )));}boolcTDmanage::operator!=(constcTDmanage&M)const{return((GetSec( )==M.GetSec( ))||(GetMin( )==M.GetHour( ))||(GetDayOfMonth( )==M.GetDayOfMonth( ))||(GetMonth( )==M.GetYear( )));}constcTDmanagecTDmanage::operator+(intMINUTE)

( )==M.GetMin( ))||(GetHour( )==M.GetMonth( ))||(GetYear//綜合類和分鐘加運算符的重載{intHourTemp,MinuteTemp,SecondTemp;SecondTemp=GetSec( );HourTemp=GetHour( );MinuteTemp=GetMin( )+MINUTE;while(MinuteTemp>=60){MinuteTemp-=60;HourTemp+=1;}while(HourTemp>=24){HourTemp-=24;FlagMoreDay+=1;}intYearTemp,DayTemp,MonthTemp,NewDays;YearTemp=GetYear( );MonthTemp=GetMonth( );NewDays=GetDayOfYear(GetYear( ),GetMonth( ),GetDayOfMonth( ))+FlagMoreDay;while(NewDays>((IsLeapYear(YearTemp))?366:365)){NewDays=NewDays-((IsLeapYear(YearTemp))?366:365);YearTemp+=1;}DayTemp=RetriveDay(NewDays,YearTemp);MonthTemp=RetriveMonth(NewDays,YearTemp);FlagMoreDay=0;returncTDmanage(YearTemp,MonthTemp,DayTemp,HourTemp,MinuteTemp,SecondTemp);}constcTDmanagecTDmanage::operator-(intMINUTE)

//綜合類和分鐘減運算符的重載{intHourTemp,MinuteTemp,SecondTemp;SecondTemp=GetSec( );HourTemp=GetHour( );MinuteTemp=GetMin( )-MINUTE;while(MinuteTemp<0){MinuteTemp+=60;HourTemp-=1;while(HourTemp<0){HourTemp+=24;FlagLessDay+=1;}}intYearTemp,DayTemp,MonthTemp,NewDays;intTemp=GetDayOfYear(GetYear( ),GetMonth( ),GetDayOfMonth( ));YearTemp=GetYear( );NewDays=Temp-FlagLessDay;while(NewDays<0){NewDays=NewDays+((IsLeapYear(YearTemp))?366:365);}DayTemp=RetriveDay(NewDays,YearTemp)+1;MonthTemp=RetriveMonth(NewDays,YearTemp);FlagLessDay=0;returncTDmanage(YearTemp,MonthTemp,DayTemp,HourTemp,MinuteTemp,SecondTemp);}voidcTDmanage::AddDay( ){if((GetDayOfMonth( )==GetDaysInMonth(GetMonth( ),GetYear( )))&&(GetMonth( )==12))ifreachedtheendoftheyear{SetDay(1);SetMon(1);SetYear(GetYear( )+1);}elseif((GetDayOfMonth( )==GetDaysInMonth(GetMonth( ),GetYear( ))))ifreachedtheendofthemonth(butnotyear){SetDay(1);SetMon(GetMonth( )+1);}elseSetDay(GetDayOfMonth( )+1);//add1day}voidcTDmanage::AddSecond( ){if((GetSec( )==59)&&(GetMin( )==59)&&(GetHour( )==23))//endofaday{FlagMoreDay=1;//toadddaytodayclassSetSec(0);SetMin(0);SetHour(0);}elseif((GetSec( )==59)&&(GetMin( )==59))//endofhour{SetSec(0);SetMin(0);SetHour(GetHour( )+1);}elseif(GetSec( )==59)//endofminute{SetSec(0);SetMin(GetMin( )+1);}elseSetSec(GetSec( )+1);}三、課程設計中碰到的困難及心得:這個課題的程序比較長,需要好多的時間,這關于平常學業(yè)較沉重,社團活動也許多的我來說,更合理的安排時間,更有效利用本就有限的課余時間,成了個不小的挑戰(zhàn)。于是,把程序分紅好多塊,零落的思慮研究,就成為我常用的方式。在這個過程中,我發(fā)現,程序中有許多同樣結構的內容,而各運算符重載函數也存有好多相像之處,加上原程序中類中的成員函數的功能很全面,這些都讓我省下許多時間和精力。經過c++課程設計這個比較漫長的過程,我不錯的掌握了運算符的重載,學習了輸入輸出流函數的重載,同時對類間函數調用的關系以及怎樣實現類間復雜的有關調用也有了更深的理解。經過閱讀本課題的程序,我掌握了一些閱讀程序的技巧,養(yǎng)成了仔細閱讀程序的好習慣,并能從較長的程序中找到程序的核心實現部分。在不停思慮和調試的過程中,我的意志也獲得必定的磨煉,并且在時間的合理安排和有效利用方面也有的很大的提升。四、重點原代碼說明:cDate_t( );//缺省結構函數,初始化為目前時間cDate_t(constcDate_t&D);//拷貝的結構函數cDate_t(intyear,intmonth,intday);//結構函數~cDate_t( ){}//析構函數constcDate_t&operator=(constcDate_t&D);//重載=運算符inlinevoidSetDay(intday){Day=day;}//設置日期inlinevoidSetMon(intmon){Month=mon;}//設置月份inlinevoidSetYear(intyear){Year=year;}//設置年份voidprint( );voidprint1( );inlineintGetDayOfMonth( )const{returnDay;}//返回月份中的日期inlineintGetMonth( )const{returnMonth;}//返回月份inlineintGetYear( )const{returnYear;}//返回年份intGetDayOfYear(intyear,intmonth,intday);//返回從元旦到所給日期的總天數intGetDaysInMonth(intmonth,intyear);//返回所給日期那月的總天數intGetDayOfWeek( );//返回禮拜boolIsLeapYear(intyear);//判斷能否閏年char*GetDayOfWeekName( );//返回禮拜的英文char*GetNameOfMonth( );//返回月份的英文intRetriveDay(intDays,intyear);//將距year年元旦的總天數變換為詳細月份中的天數intRetriveMonth(intDays,intyear);//將距year年元旦的總天數變換為詳細月份booloperator<(constcDate_t&D)const;//重載<運算符booloperator<=(constcDate_t&D)const;//重載<=運算符booloperator>(constcDate_t&D)const;//重載>運算符booloperator>=(constcDate_t&D)const;//重載>=運算符booloperator==(constcDate_t&D)const;//重載==運算符booloperator!=(constcDate_t&D)const;//重載!=運算符constcDate_toperator+(constcDate_t&D);//重載+運算符intoperator-(cDate_t&D);//重載-運算符(結果不是另一個日期對象,而是天數)constcDate_toperator+(intDays);//重載+運算符(一個日期對象加上天數獲得一個新的日期)constcDate_toperator-(intDays);//重載-運算符(一個日期對象減去天數獲得一個新的日期)intgetformat2( ){returnformat;}//返回格式voidoperator++( );//重載++運算符voidoperator--( );//重載--運算符staticvoidcDate_t::ChangeFormat( )//implementationofstaticfunctionmustbeinheader//設置日期格式{switch(format){case1:format=2;break;case2:format=3;break;case3:format=1;}}friendostream&operator<<(ostream&out,constcDate_t&D);//重載輸出流friendistream&operator>>(istream&in,cDate_t&D);//重載輸入流voidSetError( ){Error=false;}//設置犯錯標記friendclasscTDmanage;//說明綜合類是日期類的友元類staticintFlagMoreDay;//時間能否超出一天標記staticintFlagLessDay;//時間能否不到一天標記staticintformat;//格式cTime_t(constcTime_t&T);//拷貝結構函數cTime_t(inthour,intmin=0,intsec=0):Seconds(sec),Minutes(min),Hours(hour){};~cTime_t( ){};//析構函數constcTime_t&operator=(constcTime_t&T);//重載=運算符inlinevoidSetSec(intsec){Seconds=sec;}//設置秒數(內聯函數)inlinevoidSetMin(intmin){Minutes=min;}//設置分數inlinevoidSetHour(inthour){Hours=hour;}//設置小時數voidprint( )const;//輸出voidprint1( )const;//輸出inlineintGetSec( )const{returnSeconds;}//返回秒數inlineintGetMin( )const{returnMinutes;}//返回分鐘inlineintGetHour( )const{returnHours;}//返回小時intgetFlagMoreDay( ){returnFlagMoreDay;}//返回時間能否超出一天intgetFlagLessDay( ){returnFlagLessDay;}//返回時間能否不到一天voidresetFlagMoreDay( ){FlagMoreDay=0;}//重設時間能否超出一天voidresetFlagLessDay( ){FlagLessDay=0;}//重設時間能否不到一天booloperator<(constcTime_t&T)const;//重載<運算符booloperator<=(constcTime_t&T)const;//重載<=運算符booloperator>(constcTime_t&T)const;//重載>運算符booloperator>=(constcTime_t&T)const;//重載>=運算符booloperator==(constcTime_t&T)const;//重載==運算符booloperator!=(constcTime_t&T)const;//重載!=運算符constcTime_toperator+(constcTime_t&T)const;//重載+運算符intoperator-(cTime_t&T);//重載-運算符(結果不是另一個時間對象,而是分鐘數)constcTime_toperator+(intNewMinutes);//重載+運算符(一個時間對象加上分鐘獲得一個新的時間)constcTime_toperator-(intNewMinutes);//重載-運算符(一個時間對象減去分鐘獲得一個新的時間)intgetformat1( ){returnformat;}//返回格式voidoperator++( );//重載++運算符voidoperator--( );//重載--運算符staticvoidChangeFormat( ){format=(format==1)?2:1;}//formatcanbeonly1or2//改變時間格式friendostream&operator<<(ostream&out,constcTime_t&T);//重載輸出流friendistream&operator>>(istream&in,cTime_t&T);//重載輸入流friendclasscTDmanage;//說明綜合類是時間類的友元類voidcTime_t::print( )const//printfunction//輸出{switch(format){case1://小時數為0--23(24)的格式if(Seconds<10&&Minutes<10)cout<<"Thetimeis:"<<Hours<

溫馨提示

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

評論

0/150

提交評論