第五次编程运算符重载_第1页
第五次编程运算符重载_第2页
第五次编程运算符重载_第3页
第五次编程运算符重载_第4页
第五次编程运算符重载_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六次编程重载05.设计一个日期类 Date,包括年、月、日等私有数据成员。要求实现日期的基本运 算,如一日期加上天数、一日期减去天数、两日期相差的天数。解:在 Date 类中设计如下重载运算符函数:Date operator+(加天数得到的日期Date operator-(减去天数得到的日期days);返回一日期days);返回一日期Date operator+();一天数得到的日期返回一日期加上Dateoperator();返回一日期减去一天数得到的日期operator-(Date &b);相差的天数返回两日期在实现这些重载运算符函数调用以下私有成员函数:leap();判断指定的年份是否为

2、闰年dton(Date &);将指定日期转换为从 0年 0 月 0 日起的天数ntod();将指定的 0 年 0 月 0 日起的天数转换为对应的日期本题程序如下:#includeday_tab212=31,28,31,30,31,30,31,31,30, 31,30,31,31,29,31,30,31,31,30,31,30,31;/day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Dateyear,month,day;leap();dton(Date &);Date ntod( public:Date()Date();y,m,d)year=y;month=m;d

3、ay=d;void setday( void setmonth( void setyear(d)day=d;m)month=m;y)year=y;getday()return day;getmonth()return month; getyear()return year;Date operator+(days)sic Date date;number=dton(*this)+days;date=ntod(number);return date;Date operator-(days)sic Date date;number=dton(*this);number-=days;date=ntod

4、(number);return date;operator-(Date &b)days=dton(*this)-dton(b)-1;return days;void disp()coutyear.month.dayendl;Date:leap(year)if(year%4=0&year%100!=0|year%400=0)/ 是闰年return 1;else/不是闰年return 0;Date:dton(Date &d)y,m,days=0; for(y=1;y=d.year;y+)if(leap(y) days+=366;elsedays+=365; for(m=0;md.month-1;m

5、+)if(leap(d.year) days+=day_tab1m;elsedays+=day_tab0m; days+=d.day;return days;Date Date:ntod(n)y=1,m=1,d,rest=n,lp; while(1)if(leap(y)if(rest=366) break;elserest-=366;elseif(restday_tab1m-1) rest-=day_tab1m-1;elsebreak;elseif(restday_tab0m-1) rest-=day_tab0m-1;elsebreak; m+;d=rest;return Date(y,m,d);void main()Date now(2002,6,12),then(2003,2,10);coutnow:; now.disp();coutthen:; then.disp();cout相差天数:(then-now)endl; Date d1=now+100,d2=now-100;coutnow+100:; d1.disp();coutnow-100:; d2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论