C 习题与解析(重载-02)

文章作者 100test 发表时间 2007:03:10 16:59:08
来源 100Test.Com百考试题网


05.设计一个日期类Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,如一日期加上天数、一日期减去天数、两日期相差的天数等。
解:
在Date类中设计如下重载运算符函数:
Date operator (int days). 返回一日期加一天数得到的日期
Date operator-(int days). 返回一日期减去天数得到的日期
int operator-(Date &.b). 返回两日期相差的天数
在实现这些重载运算符函数调用以下私有成员函数:
leap(int). 判断指定的年份是否为闰年
dton(Date &.). 将指定日期转换为从0年0月0日起的天数
ntod(int). 将指定的0年0月0日起的天数转换为对应的日期
本题程序如下:
#include
int day_tab[2][12]={{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 Date
{
int year,month,day.
int leap(int).
int dton(Date &.).
Date ntod(int).
public:
Date(){}
Date(int y,int m,int d)
{
year=y.month=m.day=d.
}
void setday(int d){day=d.}
void setmonth(int m){month=m.}
void setyear(int y){year=y.}
int getday(){return day.}
int getmonth(){return month.}
int getyear(){return year.}
Date operator (int days)
{
static Date date.
int number=dton(*this) days.
date=ntod(number).
return date.
}
Date operator-(int days)
{
static Date date.
int number=dton(*this).
number-=days.
date=ntod(number).
return date.
}
int operator-(Date &.b)
{
int days=dton(*this)-dton(b)-1.
return days.

相关文章


C 习题与解析(重载-03)
[二级C试题天天练]运算表达式问题
[二级C试题天天练]自加自减运算
C 习题与解析(重载-01)
C 习题与解析(重载-02)
[二级C试题天天练]C语言考试试题11
[二级C试题天天练]上机填空
C 习题与解析(友元-03)
[二级C试题天天练]C语言考试试题9
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛