c++程序设计题:1,定义一个日期类,要求:(1)实现带3个参数的构造函数。

2)实现不带参数但将日期初始化为指定日期。(3),实现显示日期的成员函数showdate(),日期格式为“2011-11-09”... 2)实现不带参数但将日期初始化为指定日期。(3),实现显示日期的成员函数showdate(),日期格式为“2011-11-09” 展开
 我来答 举报
adoqq_bd
2011-11-08 · TA获得超过7050个赞
知道大有可为答主
回答量:1818
采纳率:63%
帮助的人:1610万
展开全部
#include <iostream>
#include <iomanip>
using namespace std;
class ymd
{
public:
ymd()
{
y=2011;
m=11;
d=9;
}
ymd(int yy,int mm,int dd)
{
if((yy>0&&mm>1&&mm<=12&&dd>=1&&dd<=dmax(yy,mm)))
{
y=yy;
m=mm;
d=dd;
}
else
{
cerr<<"该日期不存在:"
<<setw(4)<<setfill('0')<<yy<<"-"
<<setw(2)<<setfill('0')<<mm<<"-"
<<setw(2)<<setfill('0')<<dd;
}

}
ymd(ymd& yymmdd)
{
y=yymmdd.y;
m=yymmdd.m;
d=yymmdd.d;
}
void showdate()
{

cout<<setw(4)<<setfill('0')<<y<<"-"
<<setw(2)<<setfill('0')<<m<<"-"
<<setw(2)<<setfill('0')<<d;
}

private:
int isly(int year)
{
return ((!(year%4))&&(year%100)||(!(year%400)));
}
int dmax(int y,int m)
{
if(m==2)
{
return 28+(isly(y));
}
if((m==1||m==3||m==5||m==7||m==8||m==10||m==12))
return 31;
return 30;
}

int y;
int m;
int d;
};
int main()
{
ymd ymd1;
ymd1.showdate();
ymd ymd2(2012,12,12);
cout<<endl;
ymd2.showdate();
ymd1=ymd2;
cout<<endl;
ymd1.showdate();
cout<<endl;
ymd ymd3(2011,2,29);
cout<<endl;
return 0;
}

运行结果:
2011-11-09
2012-12-12
2012-12-12
该日期不存在:2011-02-29
请按任意键继续. . .
本回答被提问者采纳
1 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式