
哪位高手能帮我一下,C++的程序题,我将感激不尽!!!
写一个Date(日期类),用整数表示月和日,没有年,将数据定义为私有成员,还需要其他成员。构造函数将日期设定为1月1日。GetData成员函数提示用户输入一个整数格式表示...
写一个Date(日期类),用整数表示月和日,没有年,将数据定义为私有成员,还需要其他成员。
构造函数将日期设定为1月1日。
GetData成员函数提示用户输入一个整数格式表示的日期。WriteData函数打印出大写日期,如 January 1(而不是1月1日)。
写一个Vaidate函数用于检查日期合法性,如果日期非法则屏幕上打印一个“日期非法”信息并返回false。如果日期非法,此函数将日期设置为1月1日。(一年中1,3,5,7,8,10,12为31天,二月28天,其它月份为30天)假设此程序不处理闰年情况。
Date类应包括一个私有成员函数howmanydays,它计算当前日期为一年中第几天(假设一年365天)。例如,1月31日是第31天,而2月1日是第32天,此函数不能被main调用,只被其他成员函数所调用。
最后,主程序中还要重载“<”操作符 ,此操作符比较两个日期在一年中出现的顺序。例如,1月31日比2月1小,因为先过1月31日后过2月1。
急!急!急! 展开
构造函数将日期设定为1月1日。
GetData成员函数提示用户输入一个整数格式表示的日期。WriteData函数打印出大写日期,如 January 1(而不是1月1日)。
写一个Vaidate函数用于检查日期合法性,如果日期非法则屏幕上打印一个“日期非法”信息并返回false。如果日期非法,此函数将日期设置为1月1日。(一年中1,3,5,7,8,10,12为31天,二月28天,其它月份为30天)假设此程序不处理闰年情况。
Date类应包括一个私有成员函数howmanydays,它计算当前日期为一年中第几天(假设一年365天)。例如,1月31日是第31天,而2月1日是第32天,此函数不能被main调用,只被其他成员函数所调用。
最后,主程序中还要重载“<”操作符 ,此操作符比较两个日期在一年中出现的顺序。例如,1月31日比2月1小,因为先过1月31日后过2月1。
急!急!急! 展开
1个回答
展开全部
#include<iostream.h>
class Date
{
private:
int mon,day;
int HowManyDays();
public:
Date(){mon=1;day=1;}
void GetDate();
void Vaidate();
void WriteDate();
bool operator <(Date N);
void Countdays();
};
int main()
{
bool k;
char answer;
Date MyDate,YourDate;
do{
MyDate.GetDate();
MyDate.Vaidate();
MyDate.WriteDate();
MyDate.Countdays();
YourDate.GetDate();
YourDate.Vaidate();
YourDate.WriteDate();
YourDate.Countdays();
k=MyDate<YourDate;
if(k==1)
{
cout<<"MyDate比YourDate先过";
}
else
{
cout<<"MyDate不比YourDate先过";
}
cout<<"还需要使用本程序吗,y=是,n=否";
cin>>answer;
}while(answer=='y');
return 0;
}
void Date:: GetDate()
{
cout<<"\n请输入的月份";
cin>>mon;
cout<<"\n请输入的日期";
cin>>day;
}
void Date:: Vaidate()
{
if((mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)&&day<=31&&day>=1)
{
cout<<"日期合法";
}
else if((mon==4||mon==6||mon==9||mon==11)&&day<=30&&day>=1)
{
cout<<"日期合法";
}
else if(mon==2&&day<=28&&day>0)
{
cout<<"日期合法";
}
else
{
cout<<"\n日期非法";
day=1;
mon=1;
}
}
bool Date::operator <(Date N)
{
if(mon<N.mon) return 1;
if(mon==N.mon)
{
if(day<N.day)return 1;
else return 0;
}
else
{
return 0;
}
}
void Date::WriteDate()
{
switch(mon)
{
case 1:
cout<<"January";
break;
case 2:
cout<<"February";
break;
case 3:
cout<<"March";
break;
case 4:
cout<<"April";
break;
case 5:
cout<<"May";
break;
case 6:
cout<<"June";
break;
case 7:
cout<<"July";
break;
case 8:
cout<<"August";
break;
case 9:
cout<<"September";
break;
case 10:
cout<<"October";
break;
case 11:
cout<<"November";
break;
case 12:
cout<<"December";
break;
default:
cout<<"错误";
}
cout<<" "<<day<<endl;
}
void Date::Countdays()
{
HowManyDays();
}
int Date::HowManyDays()
{
if(mon==1)
{
cout<<"\n你输入的日期是一年中的"<<day<<"天"<<endl;
}
if(mon>1)
{
cout<<"\n你输入的日期是一年中的"<<(mon-1)*31+day<<"天"<<endl;;
}
return 0;
}
class Date
{
private:
int mon,day;
int HowManyDays();
public:
Date(){mon=1;day=1;}
void GetDate();
void Vaidate();
void WriteDate();
bool operator <(Date N);
void Countdays();
};
int main()
{
bool k;
char answer;
Date MyDate,YourDate;
do{
MyDate.GetDate();
MyDate.Vaidate();
MyDate.WriteDate();
MyDate.Countdays();
YourDate.GetDate();
YourDate.Vaidate();
YourDate.WriteDate();
YourDate.Countdays();
k=MyDate<YourDate;
if(k==1)
{
cout<<"MyDate比YourDate先过";
}
else
{
cout<<"MyDate不比YourDate先过";
}
cout<<"还需要使用本程序吗,y=是,n=否";
cin>>answer;
}while(answer=='y');
return 0;
}
void Date:: GetDate()
{
cout<<"\n请输入的月份";
cin>>mon;
cout<<"\n请输入的日期";
cin>>day;
}
void Date:: Vaidate()
{
if((mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)&&day<=31&&day>=1)
{
cout<<"日期合法";
}
else if((mon==4||mon==6||mon==9||mon==11)&&day<=30&&day>=1)
{
cout<<"日期合法";
}
else if(mon==2&&day<=28&&day>0)
{
cout<<"日期合法";
}
else
{
cout<<"\n日期非法";
day=1;
mon=1;
}
}
bool Date::operator <(Date N)
{
if(mon<N.mon) return 1;
if(mon==N.mon)
{
if(day<N.day)return 1;
else return 0;
}
else
{
return 0;
}
}
void Date::WriteDate()
{
switch(mon)
{
case 1:
cout<<"January";
break;
case 2:
cout<<"February";
break;
case 3:
cout<<"March";
break;
case 4:
cout<<"April";
break;
case 5:
cout<<"May";
break;
case 6:
cout<<"June";
break;
case 7:
cout<<"July";
break;
case 8:
cout<<"August";
break;
case 9:
cout<<"September";
break;
case 10:
cout<<"October";
break;
case 11:
cout<<"November";
break;
case 12:
cout<<"December";
break;
default:
cout<<"错误";
}
cout<<" "<<day<<endl;
}
void Date::Countdays()
{
HowManyDays();
}
int Date::HowManyDays()
{
if(mon==1)
{
cout<<"\n你输入的日期是一年中的"<<day<<"天"<<endl;
}
if(mon>1)
{
cout<<"\n你输入的日期是一年中的"<<(mon-1)*31+day<<"天"<<endl;;
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询