早教吧 育儿知识 作业答案 考试题库 百科 知识分享

编写一个cdate类,描述由年月日组成的日期。要求:1.具有构造函数,用来初始化年月日。使得该类可以象下面这样产生对象:cdated1(1980,12,31);//初始化为1980/12/2cdated2;//用一个固定日期

题目详情
编写一个cdate类,描述由年月日组成的日期。要求:
  1.具有构造函数,用来初始化年月日。使得该类可以象下面这样产生对象:
cdate d1(1980,12,31);//初始化为1980/12/2
cdate d2;//用一个固定日期初始化,如1900/1/1
cdate d3(2003,3,79);//非法参数,同上初始化为1900/1/1
▼优质解答
答案和解析
#include
class CDate{ int year;
int month;
int day;
bool isTrue(int y, int m, int d);
public:
CDate(){
year = 1990;
month = 1;
day = 1;
}

CDate(int y, int m, int d){ if (isTrue(y, m, d)){
year = y;
month = m;
day = d;
}
else{
year = 1990;
month = 1;
day = 1;
}
}
};

bool CDate::isTrue(int y, int m, int d){ if (y<=0 || m<=0 || d<=0)
return false;
if (((y%4 == 0) && (y%100 != 0)) || (y%400 == 0)){
if (m == 2 && d <= 29)
return true;
}
else{
if (m==4 || m==6 || m==9 || m==11)
if (d<=30)
return true;
else
return false;
if (m==2)
if (d<=28)
return true;
else
return false;
else{
if (d<=31)
return true;
else
return false;
}
}
}

int main(){
CDate d1();
CDate d2(1980,12,31);
CDate d3(2003,3,79);
return 0;
}