




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual C+课程设计报告 时间和日期电子工程程与光电电技术学学院通信工程程(1)班Xxx090442200 xxxx20100年4月月程序功能能简介:定义了日日期类、时间类类和日期期时间综综合类,重载了了+,-,+,- -,= ,=,=,= =,!=等运运算符,可以设设置时间间、日期期,比较较时间和和日期的的大小,进行时时间、日日期对象象的运算算,并输输出多种种格式的的结果。课程设计计说明:原程序日日期类中中输出星星期几的的函数有有误,不不能输出出星期五五,现修修改如下下:int cDaate_t:GettDayyOfWWeekk() /sstarrtinng ppoinnt : 1/1
2、/119000 waas MMondday (Saaturrdayy=00,Suundaay=1,.)/1/1/119000是星期期一,根根据这个个日期推推断当前前日期是是星期几几intt weeekdday=2 ; /in 1/11/19900/从11/1/19000开始始计算forr(innt TTheYYearr=19900;TheeYeaarYYearr;+TheeYeaar) /lloopp too knnow thee daay iin 11/1/thiis yyearriff(IssLeaapYeear(TheeYeaar)wweekkdayy=(wweekkdayy+3666)
3、%7;ellsewweekkdayy=(wweekkdayy+3665)%7;/uuntiil hheree wee fooundd thhe ccorrrectt daay iin 11/1/thiis yyearrforr(innt TTheMMontth=11;ThheMoonthhMoonthh;+TheeMonnth)/年年份计算算完后,计算月月份天数数weeekdday=(weeekdday+GettDayysInnMonnth(TheeMonnth,Yeaar)%7;/uuntiil hheree wee fooundd thhe ccorrrectt daay iin 11/t
4、hhis monnthif(weeekdday+Dayy)%77=00)reeturrn 66;elssereeturrn(weeekdaay+DDay)%7-1);/正正确显示示星期几几/rretuurn (weeekdday+Dayy)%77-1;(修改改前的,无法正正确显示示星期五五) /thhe ccorrrectt daay iin TTHISS daay.2、根据据要求在在日期类类中修改改日期对对象减去去日期对对象的重重载运算算符-,使得结结果不是是另一个个日期,而是天天数:int cDaate_t:opeerattor - (cDaate_t &D)/重载载-运算算符/修改改为日
5、期期对象减减去日期期对象,结果不不是另一一个日期期对象,而是天天数intt Teemp11,Teemp22,NeewDaays=0;Temmp1=GettDayyOfYYearr(Yeear,Monnth,Dayy);Temmp2=D.GGetDDayOOfYeear(D.YYearr,D.Monnth,D.DDay);if(Yeaar=D.YYearr)NeewDaays=maxx(Teemp11,Teemp22)-mmin(Temmp1,Temmp2);elssefoor(iint Temmp3=minn(Yeear,D.YYearr);TTempp3D.YYearr)NNewDDayss
6、=NeewDaays+Temmp1-Temmp2;ellseNNewDDayss=-(NewwDayys+TTempp2-TTempp1);retturnn NeewDaays;/-/*coonstt cDDatee_t cDaate_t:opeerattor - (connst cDaate_t &D) /ooperratoor - fuuncttionn(修改改前的函函数,结结果为另另一个日日期对象象)intt YeearTTempp,MoonthhTemmp,DDayTTempp,NeewDaays,Temmp1,Temmp2; /vvariiablles to stoore to ne
7、ww daate objjectt if(Errror | D.EErroor)/ iif nno llesss thhen 1 oobjeect havve oorroor ddataaErrrorr4();/ prrintt orrrorr meesseegereeturrn (cDaate_t (-1,-1,-1) ); /retturnn errrorr cllasssYeaarTeemp=Yeaar-DD.Yeear;/ssubsstraactiion of THIIS aand seccondd yeearif(YeaarTeemp19000) / errrorErrrorr1()
8、;/priint errror messseggereeturrn (cDaate_t (-1,-1,-1) ); /retturnn errrorr cllasssTemmp1=GettDayyOfYYearr(Yeear,Monnth,Dayy); / gett daays of yeaar oof TTHISS obbjecctif(Temmp10) /eerroorErrrorr5();/priint errror messseggereeturrn (cDaate_t (-1,-1,-1) );/rretuurn errror claassTemmp2=GettDayyOfYYear
9、r(D.Yeaar,DD.Moonthh,D.Dayy);/ gget dayys oof yyearr off seeconnd oobjeectif(Temmp20)/errrorrErrrorr5();/priint errror messseggereeturrn (cDaate_t (-1,-1,-1) );/rretuurn errror claassNewwDayys= Temmp1 - TTempp2; /iif tthe datta ook gget theeir subbstrracttionnif(NewwDayys00) / tthe subbstrracttionn
10、iss leess theen zzerooNeewDaays = NNewDDayss + (IIsLeeapYYearr(YeearTTempp)? 3666 : 3665); / sset dayys ffor preevioous yeaarYeearTTempp-=11; /suub 11 yeearDayyTemmp=RRetrriveeDayy(NeewDaays,YeaarTeemp); /reetriive thee cuurreent dayy inn thhe sspeccifiic mmontthMonnthTTempp=ReetriiveMMontth(NNewDDa
11、yss,YeearTTempp);/saame witth mmontthretturnn (ccDatte_tt (YYearrTemmp,MMontthTeemp,DayyTemmp) );/reeturrn llocaal cclasss */3、根据据要求在在时间类类中修改改时间对对象减去去时间对对象的重重载运算算符-,使得结结果不是是另一个个时间,而是分分钟数:int cTiime_t:opeerattor - (cTiime_t &T)/重载载-运算算符(结结果不是是另一个个时间对对象,而而是分钟钟数)intt neewhoour,newwminnutee;newwhouur=HH
12、ourrs-TT.Hoourss;newwminnutee=Miinuttes-T.MMinuutess;retturnn neewhoour*60+newwminnutee;/-/*coonstt cTTimee_t cTiime_t:opeerattor - (connst cTiime_t &T) connst /ooperraorr - funnctiion/重载载-运算算符/修改前前的,结结果为时时间对象象intt HoourTTempp,MiinutteTeemp,SecconddTemmp;/deefinne 33 teemp varriabbless too geet ttim
13、ee daata/定义义三个时时间变量量HouurTeemp = HHourrs-TT.Hoourss;if(HouurTeemp0)/T claass houur wwas bigggerr thhan THIIS cclasssFllagLLesssDayy=1; /to cutt 1 dayy foorm datte cclasss/小时相相减为负负数,将将少于11天的标标志置11HoourTTempp+=224;/ aadd 24 houurs to preevioous dayy/加加24小小时到前前一天MinnuteeTemmp=MMinuutess-T.Minnutees;if(
14、MinnuteeTemmp00)/samme ffor minnutees/分钟相相减为负负MiinutteTeemp+=600;-HouurTeemp;SecconddTemmp=SSecoondss-T.Seccondds;if(SecconddTemmp00)/samme ffor seccondds/秒数相相减为负负SeeconndTeemp+=600;-MinnuteeTemmp;retturnn ( cTiime_t ( HoourTTempp,MiinutteTeemp,SecconddTemmp) );/reeturrn llocaal cclasss */4、修改改综合类类c
15、TDDmannagee的结构构,重新新定义为为日期类类和时间间类的派派生类,并定义义构造函函数、各各种运算算符重载载函数,重载输输入输出出函数:#ifnndeff TDDmannagee_h#deffinee TDDmannagee_hclasss ccTDmmanaage:pubblicc cTTimee_t,pubblicc cDDatee_tpubllic:cTDDmannagee ():cTTimee_t(),ccDatte_tt()/构造造函数cTDDmannagee (iint yeaar,iint monnth,intt daay,iint houur,iint minnutee
16、,innt ssecoond):cDDatee_t(yeaar,mmontth,dday),cTTimee_t(houur,mminuute,seccondd)cTDDmannagee (iint houur,iint minnutee,innt ssecoond):cTTimee_t(houur,mminuute,seccondd) voiid ooperratoor = (cconsst ccTDmmanaage& M);/OK/ooptiion to putt alll gget andd seet ffuncctioon oof ddatee annd ttimee cllasss v
17、oiid pprinnt();/ooperratoor:boool ooperratoor (connst cTDDmannagee& MM)coonstt; boool ooperratoor (connst cTDDmannagee& MM)coonstt; boool ooperratoor = (connst cTDDmannagee& MM)coonstt; boool ooperratoor = (connst cTDDmannagee& MM)coonstt; boool ooperratoor != (connst cTDDmannagee& MM)coonstt; conns
18、t cTDDmannagee opperaatorr + (coonstt cTTDmaanagge& M) ;intt opperaatorr - (coonstt cTTDmaanagge& M) ;connst cTDDmannagee opperaatorr + (innt MMINUUTE) ;connst cTDDmannagee opperaatorr - (innt MMINUUTE) ;/uusinng DDatee annd TTimee + opperaatorr:voiid ooperratoor + () AdddDaay() ; AdddSeccondd() ; v
19、oiid AAddDDay();voiid AAddSSecoond();voiid CChanngeDDateeForrmatt() ccDatte_tt:CChanngeFFormmat(); voiid CChanngeTTimeeForrmatt() ccTimme_tt:CChanngeFFormmat(); friiendd osstreeam& opperaatorr (iistrreamm &iin, cTDDmannagee &MM) ;#enddif/TDDmannagee.h Ennd5、修改改maiin函数数结构,采用菜菜单选项项的方式式,逐个个测试三三个类中中定义的的
20、高中函函数和运运算符:voidd maanusseleect(cTiime_t TT,cDDatee_t D,ccTDmmanaage L)couutnn*建建议菜单单*eendll;couutenddl;couut 1.时间类类操作n 22.日期期类操作作n 3.综合类类操作n 44.退出出n;intt seelecct1,sellectt2=00,seelecct3=0,sseleect44=0;couutsseleect11;swiitchh(seelecct1)casse 11:cooutn-nn时时间类操操作nn;coout11.时间间加分钟钟n2.时时间减分分钟nn3.时间减减时间
21、n44.两时时间比较较n5.返返回上一一层nn;cooutsellectt2;tiimesseleect(sellectt2,TT,D,L);brreakk;casse 22:coout-n日日期类操操作nn;coout11.日期期加天数数n2.日日期减天天数nn3.日期减减日期n44.两日日期比较较n5.返返回上一一层nn;cooutsellectt3;daatesseleect(sellectt3,TT,D,L);brreakk;casse 33:coout-n综综合类操操作nn;coout11.时间间日期加加分钟n22.时间间日期减减分钟n33.时间间日期减减时间日日期(结结果为分分钟)
22、n44.两时时间日期期比较n55.返回回上一层层n;cooutsellectt4;maanaggeseelecct(sseleect44,T,D,LL);brreakk;casse 44:brreakk;/采用用的菜单单选项如如下:时间类操操作日期类操操作综合类操操作时间类操操作的子子菜单时间加分分钟时间减分分钟时间减时时间两时间比比较日期类操操作的子子菜单日期加天天数日期减天天数日期减日日期两日期比比较综合类操操作的子子菜单日期时间间加分钟钟日期时间间减分钟钟日期时间间减去日日期时间间(结果果为分钟钟)日期时间间比较6、程序序在各个个类中均均重载了了+ ,- ,+, - - ,= ,= ,=
23、60)/mmoree thhan 1 mminuuteSeeconndTeemp-=600;MiinutteTeemp=GettMinn ()+M.GettMinn ()+1;/sso aadd to minnuteeelsseMiinutteTeemp=GettMinn ()+M.GettMinn ();if(MinnuteeTemmp=60)/mmoree thhan 1 hhourrMiinutteTeemp-=600;HoourTTempp=GeetHoour ()+M.GGetHHourr ()+1;/aadd to houurelsseHoourTTempp=GeetHoour (
24、)+M.GGetHHourr ();if(HouurTeemp=244)FllagMMoreeDayy=1; /to addd daay tto ddatee cllasssHoourTTempp-=224;intt YeearTTempp,MoonthhTemmp,DDayTTempp,NeewDaays; YeaarTeemp=GettYeaar ()+MM.GeetYeear ();NewwDayys=GGetDDayOOfYeear(GettYeaar (),GGetMMontth (),GGetDDayOOfMoonthh () + GeetDaayOffYeaar(MM.GeetY
25、eear (),M.GGetMMontth (),MM.GeetDaayOffMonnth (); if(NewwDayys (IsLLeappYeaar(YYearrTemmp)? 3366 : 3365) /iff thhe ssum is morre tthann inn 1 yeaar NeewDaays=NewwDayys - (IsLLeappYeaar(YYearrTemmp)? 3366 : 3365);/cutt 1 yeaar ddayssYeearTTempp+=11;/andd addd aa yeearMonnthTTempp=ReetriiveMMontth(NNe
26、wDDayss,YeearTTempp);/saame witth mmontthDayyTemmp=RRetrriveeDayy(NeewDaays,YeaarTeemp); /reetriive thee cuurreent dayy inn thhe sspeccifiic mmontthDayyTemmp+=(cTTimee_t:FllagMMoreeDayy);DayyTemmp=RRetrriveeDayy(NeewDaays,YeaarTeemp); /reetriive thee cuurreent dayy inn thhe sspeccifiic mmontthrettur
27、nn cTTDmaanagge(YYearrTemmp,MMontthTeemp,DayyTemmp,HHourrTemmp,MMinuuteTTempp,SeeconndTeemp);int cTDDmannagee:ooperratoor - (cconsst ccTDmmanaage& M)/重重载-运运算符(比较两两个综合合类时间间对象,结果得得到相差差的分钟钟数)intt NeewDaays,Temmp1,Temmp2;Temmp1=GettDayyOfYYearr(GeetYeear (),GettMonnth (),GettDayyOfMMontth (); Temmp2=Get
28、tDayyOfYYearr(M.GettYeaar (),MM.GeetMoonthh (),M.GettDayyOfMMontth ();if(GettYeaar ()=M.GGetYYearr ()NeewDaays=maxx(Teemp11,Teemp22)-mmin(Temmp1,Temmp2);elssefoor(iint Temmp3=minn(GeetYeear (),M.GGetYYearr ();TTempp3M.GGetYYearr ()NNewDDayss=NeewDaays+Temmp1-Temmp2;ellseNNewDDayss=-(NewwDayys+TTempp
29、2-TTempp1);intt neewhoour,newwminnutee;newwhouur=GGetHHourr ()-M.GettHouur ();newwminnutee=GeetMiin ()-MM.GeetMiin ();newwminnutee=neewmiinutte+660*nnewhhourr+244*600*NeewDaays;retturnn neewmiinutte;voidd cTTDmaanagge:opeerattor = (connst cTDDmannagee& MM)/重载运运算符=SettSecc(M.GettSecc();SettMinn(M.Get
30、tMinn ();SettHouur (M.GGetHHourr ();SettDayy(M.GettDayyOfMMontth ();SettMonn(M.GettMonnth ();SettYeaar(MM.GeetYeear ();booll cTTDmaanagge:opeerattor (coonstt cTTDmaanagge& M)cconsst/重载运算符符if (YeearM.GGetYYearr () retturnn trrue;if(Yeaar=M.GGetYYearr ()iff(GeetMoonthh ()M.GettMonnth ()rretuurn truue;
31、iff(GeetMoonthh ()=MM.GeetMoonthh ()if(GettDayyOfMMontth ()MM.GeetDaayOffMonnth () reeturrn ttruee;if(GettDayyOfMMontth ()=M.GGetDDayOOfMoonthh ()if (GeetHoour ()M.GGetHHourr ()retturnn trrue;if(GettHouur ()=M.GGetHHourr ()if(GettMinn ()M.GettMinn ()retturnn trrue;if(GettMinn ()=MM.GeetMiin ()rettur
32、nn (GGetSSec()MM.GeetSeec();retturnn faalsee;retturnn faalsee;retturnn faalsee;reeturrn ffalsse;retturnn faalsee;booll cTTDmaanagge:opeerattor = (coonstt cTTDmaanagge& M)cconsst /重载载=运运算符if (YeearM.GGetYYearr () retturnn trrue;if(Yeaar=M.GGetYYearr ()iff(GeetMoonthh ()M.GettMonnth ()rretuurn truue;i
33、ff(GeetMoonthh ()=MM.GeetMoonthh ()if(GettDayyOfMMontth ()MM.GeetDaayOffMonnth () reeturrn ttruee;if(GettDayyOfMMontth ()=M.GGetDDayOOfMoonthh ()if (GeetHoour ()M.GGetHHourr ()retturnn trrue;if(GettHouur ()=M.GGetHHourr ()if(GettMinn ()M.GettMinn ()retturnn trrue;if(GettMinn ()=MM.GeetMiin ()retturn
34、n (GGetSSec() (coonstt cTTDmaanagge& M)cconsst /重重载运运算符if (YeearM.GGetYYearr () retturnn trrue;if(Yeaar=M.GGetYYearr ()iff(GeetMoonthh ()M.GettMonnth ()rretuurn truue;iff(GeetMoonthh ()=MM.GeetMoonthh ()if(GettDayyOfMMontth ()MM.GeetDaayOffMonnth () reeturrn ttruee;if(GettDayyOfMMontth ()=M.GGetDDay
35、OOfMoonthh ()if (GeetHoour ()M.GGetHHourr ()retturnn trrue;if(GettHouur ()=M.GGetHHourr ()if(GettMinn ()M.GettMinn ()retturnn trrue;if(GettMinn ()=MM.GeetMiin ()retturnn (GGetSSec()MM.GeetSeec();retturnn faalsee;retturnn faalsee;retturnn faalsee;reeturrn ffalsse;retturnn faalsee;booll cTTDmaanagge:o
36、peerattor = (coonstt cTTDmaanagge& M)cconsst/重载=运算算符if (YeearM.GGetYYearr () retturnn trrue;if(Yeaar=M.GGetYYearr ()iff(GeetMoonthh ()M.GettMonnth ()rretuurn truue;iff(GeetMoonthh ()=MM.GeetMoonthh ()if(GettDayyOfMMontth ()MM.GeetDaayOffMonnth () reeturrn ttruee;if(GettDayyOfMMontth ()=M.GGetDDayOOf
37、Moonthh ()if (GeetHoour ()M.GGetHHourr ()retturnn trrue;if(GettHouur ()=M.GGetHHourr ()if(GettMinn ()M.GettMinn ()retturnn trrue;if(GettMinn ()=MM.GeetMiin ()retturnn (GGetSSec()=M.GGetSSec();retturnn faalsee;retturnn faalsee;retturnn faalsee;reeturrn ffalsse;retturnn faalsee;booll cTTDmaanagge:opee
38、rattor = (coonstt cTTDmaanagge& M)cconsst/重载=运算算符retturnn (GettSecc()=M.GettSecc()&(GettMinn ()=MM.GeetMiin ()&(GGetHHourr ()=MM.GeetHoour ()&(GeetDaayOffMonnth ()=M.GettDayyOfMMontth ()&(GGetMMontth ()=M.GGetMMontth ()&(GGetYYearr ()=MM.GeetYeear ();booll cTTDmaanagge:opeerattor != (coonstt cTTDmaa
39、nagge& M)cconsst retturnn (GettSecc()=M.GettSecc()|(GettMinn ()=MM.GeetMiin ()|(GGetHHourr ()=MM.GeetHoour ()|(GettDayyOfMMontth ()=M.GGetDDayOOfMoonthh ()|(GeetMoonthh ()=MM.GeetMoonthh ()|(GeetYeear ()=M.GettYeaar ();consst ccTDmmanaage cTDDmannagee:ooperratoor + (iint MINNUTEE) /综合合类和分分钟加运运算符的的重载
40、intt HoourTTempp,MiinutteTeemp,SecconddTemmp;SecconddTemmp=GGetSSec();HouurTeemp=GettHouur();MinnuteeTemmp=GGetMMin ()+MINNUTEE;whiile(MinnuteeTemmp=60)MiinutteTeemp-=600;HoourTTempp+=11;whiile(HouurTeemp=244)HoourTTempp-=224;FllagMMoreeDayy+=11;intt YeearTTempp,DaayTeemp,MonnthTTempp,NeewDaays;Yeaa
41、rTeemp=GettYeaar ();MonnthTTempp=GeetMoonthh ();NewwDayys=GGetDDayOOfYeear(GettYeaar (),GGetMMontth (),GGetDDayOOfMoonthh ()+FFlaggMorreDaay;whiile(NewwDayys(IssLeaapYeear(YeaarTeemp)? 3666 : 3655)NeewDaays=NewwDayys-(IssLeaapYeear(YeaarTeemp)? 3666 : 3655);YeearTTempp+=11;DayyTemmp=RRetrriveeDayy(N
42、eewDaays,YeaarTeemp);MonnthTTempp=ReetriiveMMontth(NNewDDayss,YeearTTempp);FlaagMooreDDay=0;retturnn cTTDmaanagge(YYearrTemmp,MMontthTeemp,DayyTemmp,HHourrTemmp,MMinuuteTTempp,SeeconndTeemp);consst ccTDmmanaage cTDDmannagee:ooperratoor - (iint MINNUTEE)/综综合类和和分钟减减运算符符的重载载intt HoourTTempp,MiinutteTee
43、mp,SecconddTemmp;SecconddTemmp=GGetSSec();HouurTeemp=GettHouur();MinnuteeTemmp=GGetMMin()-MMINUUTE;whiile(MinnuteeTemmp00)MiinutteTeemp+=600;HoourTTempp-=11;whhilee(HoourTTempp0)HHourrTemmp+=24;FFlaggLesssDaay+=1;intt YeearTTempp,DaayTeemp,MonnthTTempp,NeewDaays;intt Teemp=GettDayyOfYYearr(GeetYeear
44、 (),GettMonnth (),GettDayyOfMMontth ();YeaarTeemp=GettYeaar ();NewwDayys=TTempp-FllagLLesssDayy;whiile(NewwDayys00)NeewDaays=NewwDayys+(IssLeaapYeear(YeaarTeemp)? 3666 : 3655);DayyTemmp=RRetrriveeDayy(NeewDaays,YeaarTeemp)+1;MonnthTTempp=ReetriiveMMontth(NNewDDayss,YeearTTempp);FlaagLeessDDay=0;rett
45、urnn cTTDmaanagge(YYearrTemmp,MMontthTeemp,DayyTemmp,HHourrTemmp,MMinuuteTTempp,SeeconndTeemp);voidd cTTDmaanagge:AdddDayy()if( (GGetDDayOOfMoonthh()=GeetDaaysIInMoonthh(GeetMoonthh(),GettYeaar() & (GeetMoonthh()=122) ) / iif rreacchedd thhe eend of thee yeearSeetDaay(11);SeetMoon(11);SeetYeear(Gett
46、Yeaar()+1);elsse iif( (GeetDaayOffMonnth()=GettDayysInnMonnth(GettMonnth(),GGetYYearr() ) / iif rreacchedd thhe eend of thee moonthh (bbut nott yeear)SeetDaay(11);SeetMoon(GGetMMontth()+1);elsseSeetDaay(GGetDDayOOfMoonthh()+1); / addd 11 daayvoidd cTTDmaanagge:AdddSeccondd()if ( (GettSecc()=599) & (
47、GettMinn()=599) & (GettHouur()=223) ) / eend of a ddayFllagMMoreeDayy=1;/tto aadd dayy too daay cclasssSeetSeec(00);SeetMiin(00);SeetHoour(0);elsse iif( (GeetSeec()=559) & (GeetMiin()=559) )/endd off hoourSeetSeec(00);SeetMiin(00);SeetHoour(GettHouur()+1);elsse iif( GettSecc()=599 )/ennd oof mminuut
48、eSeetSeec(00);SeetMiin(GGetMMin()+11);elsseSeetSeec(GGetSSec()+11);课程设计计中遇到到的困难难及心得得:这个课题题的程序序比较长长,需要要很多的的时间,这对于于平时学学业较繁繁重,社社团活动动也不少少的我来来说,更更合理的的安排时时间,更更有效利利用本就就有限的的课余时时间,成成了个不不小的挑挑战。于于是,把把程序分分成很多多块,零零散的思思考研究究,就成成为我常常用的方方式。在在这个过过程中,我发现现,程序序中有不不少相同同结构的的内容,而各运运算符重重载函数数也存有有很多相相似之处处,加上上原程序序中类中中的成员员函数的的功
49、能很很全面,这些都都让我省省下不少少时间和和精力。通过c+课程程设计这这个比较较漫长的的过程,我不错错的掌握握了运算算符的重重载,学学习了输输入输出出流函数数的重载载,同时时对类间间函数调调用的关关系以及及如何实实现类间间复杂的的相关调调用也有有了更深深的理解解。通过阅阅读本课课题的程程序,我我掌握了了一些阅阅读程序序的技巧巧,养成成了认真真阅读程程序的好好习惯,并能从从较长的的程序中中找到程程序的核核心实现现部分。在不断断思考和和调试的的过程中中,我的的意志也也得到一一定的磨磨练,而而且在时时间的合合理安排排和有效效利用方方面也有有的很大大的提高高。四、关键键原代码码注释:cDatte_tt
50、();/缺缺省构造造函数,初始化化为当前前时间cDaate_t(cconsst ccDatte_tt &DD);/拷贝贝的构造造函数cDaate_t(iint yeaar,iint monnth,intt daay);/构构造函数数cDDatee_t()/析析构函数数connst cDaate_t& opeerattor = (connst cDaate_t& D);/重重载=运运算符inllinee vooid SettDayy (iint dayy) Dayy=daay;/设设置日期期inllinee vooid SettMonn (iint monn) Monnth=monn;/设置置月
51、份inllinee vooid SettYeaar (intt yeear) YYearr=yeear;/设置年年份voiid pprinnt();voiid pprinnt1();inllinee innt GGetDDayOOfMoonthh () coonstt rretuurn Dayy;/返回回月份中中的日期期inllinee innt GGetMMontth () cconsst retturnn Moonthh;/返回回月份inllinee innt GGetYYearr () coonstt rretuurn Yeaar;/返返回年份份intt GeetDaayOffYeaar
52、(iint yeaar,iint monnth,intt daay);/返返回从元元旦到所所给日期期的总天天数intt GeetDaaysIInMoonthh(innt mmontth,iint yeaar);/返返回所给给日期那那月的总总天数intt GeetDaayOffWeeek();/返回星星期boool IIsLeeapYYearr(innt yyearr);/判断断是否闰闰年chaar* GettDayyOfWWeekkNamme();/返回星星期的英英文chaar* GettNammeOffMonnth();/返回回月份的的英文intt ReetriiveDDay(intt Da
53、ays,intt yeear);/将距yyearr年元旦旦的总天天数转换换为具体体月份中中的天数数intt ReetriiveMMontth(iint Dayys,iint yeaar);/将将距yeear年年元旦的的总天数数转换为为具体月月份boool ooperratoor (cconsst ccDatte_tt& DD)coonstt;/重载运算符符boool ooperratoor = (connst cDaate_t& D)cconsst;/重载载 (cconsst ccDatte_tt& DD)coonstt;/重载运算符符boool ooperratoor = (connst c
54、Daate_t& D)cconsst;/重载载=运运算符boool ooperratoor = (connst cDaate_t& D)cconsst;/重载载=运运算符boool ooperratoor != (connst cDaate_t& D)cconsst;/重载载!=运运算符connst cDaate_t ooperratoor + (cconsst ccDatte_tt& DD) ;/重重载+运运算符intt opperaatorr - (cDDatee_t& D) ;/重载载-运算算符(结结果不是是另一个个日期对对象,而而是天数数)connst cDaate_t ooperra
55、toor + (iint Dayys) ;/重载+运算符符(一个个日期对对象加上上天数得得到一个个新的日日期)connst cDaate_t ooperratoor - (iint Dayys) ;/重载-运算符符(一个个日期对对象减去去天数得得到一个个新的日日期)intt geetfoormaat2()rretuurn forrmatt;/返回回格式voiid ooperratoor + ();/重载载+运运算符voiid ooperratoor - ();/重载载-运运算符 staaticc vooid cDaate_t:ChaangeeForrmatt() /iimpllemeentaa
56、tioon oof sstattic funnctiion musst bbe iin hheadder/设置置日期格格式swiitchh(foormaat)casse 11: forrmatt=2; bbreaak;casse 22: foormaat=33; breeak;casse 33: forrmatt=1;friiendd osstreeam& opperaatorr (iistrreamm &iin, cDaate_t &D) ;/重载输输入流voiid SSetEErroor() EErroor=ffalsse;/设设置出错错标志friiendd cllasss cTTDmaa
57、nagge;/说明明综合类类是日期期类的友友元类stattic intt FllagMMoreeDayy;/时间是是否超过过一天标标志staaticc innt FFlaggLesssDaay;/时间间是否不不到一天天标志staaticc innt fformmat;/格格式cTimme_tt(coonstt cTTimee_t &T);/拷贝构构造函数数cTiime_t(iint houur,iint minn=0,intt seec=00):SSecoondss(seec),Minnutees(mmin),Hoourss(hoour) ;cTiime_t();/析析构函数数connst c
58、Tiime_t& opeerattor = (connst cTiime_t& T);/重重载=运运算符inliine voiid SSetSSec (innt ssec) SSecoondss=seec;/设设置秒数数(内联联函数)inllinee vooid SettMinn (iint minn) Minnutees=mmin;/设置分分数inllinee vooid SettHouur (intt hoour) HHourrs=hhourr;/设置置小时数数voiid pprinnt() coonstt;/输出voiid pprinnt1() cconsst;/输出出inllinee
59、innt GGetSSec () connst reeturrn SSecoondss;/返回回秒数inllinee innt GGetMMin () connst reeturrn MMinuutess;/返回回分钟inllinee innt GGetHHourr () coonstt rretuurn Houurs;/返回小小时intt geetFllagMMoreeDayy()retturnn FllagMMoreeDayy;/返回回时间是是否超过过一天intt geetFllagLLesssDayy()retturnn FllagLLesssDayy;/返回回时间是是否不到到一天voi
60、id rreseetFllagMMoreeDayy()FlaagMooreDDay=0;/重重设时间间是否超超过一天天voiid rreseetFllagLLesssDayy()FlaagLeessDDay=0;/重重设时间间是否不不到一天天boool ooperratoor (cconsst ccTimme_tt& TT)coonstt;/重载运算符符boool ooperratoor = (connst cTiime_t& T)cconsst;/重载载 (cconsst ccTimme_tt& TT)coonstt;/重载运算符符boool ooperratoor = (connst cT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论