(1)
定义一个满足下列要求的Date类:
①用下面的格式输出日期:日/月/年
②可运行在日期上加一天操作
③设置日期
/*data.cpp */
#include "iostream.h"
#include "Data.h"
void Date:: PrintDate()
{
cout<<year<<"/"<<month<<"/"<<day<<endl;
}
bool Date::IsLeapYear(int y)
{
return !(y%4)&&(y%100)||!(y%400);
}
bool Date::IsLegal(int y,int m,int d)
{
int daylimit=31;
if(y>9999 || y<1 || m>12 || m<1 || d<1)
return 0;
switch(m)
case 4:case 6: case 9: case 11: daylimit--;
if (m==2) daylimit=(IsLeapYear(y))?29:28;
if(daylimit<d)
return 0;
}
void Date::AddOneday()
{
if(IsLegal(year,month,day+1))
day++;
else if(IsLegal(year,month+1,1))
month++,day=1;
else if(IsLegal(year+1,1,1))
month=1,day=1,year++;
}
void Date::SetDate(int y,int m,int d)
{
if(IsLegal(y,m,d))
year=y,month=m,day=d;
else
year=2016,month=1,day=1;
}
/*data.h*/
class Date
{public:
void PrintDate();
void AddOneday();
void SetDate(int d,int m,int y);
private:
bool IsLegal(int d,int m,int y);
bool IsLeapYear(int y);
int day;
int month;
int year;
};
/*main.cpp*/
#include"iostream.h"
#include"Data.h"
void main()
{ int y,m,t;
Date d;
//d.SetDate(1999,2,28);
cout<<"请输入你想设置的日期"<<endl;
cin>>y>>m>>t;
d.SetDate(y,m,t);
d.PrintDate();
cout<<"加一天的日期"<<endl;
d.AddOneday();
d.PrintDate();
}
定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。
/*time.h*/
class Time
{
public:
void SetTime(int h=0,int m=0,int s=0);
void PrintTime();
private:
int hour;
int minute;
int second;
};
/*time.cpp*/
#include"iostream.h"
#include"Time.h"
void Time::PrintTime()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Time::SetTime(int h,int m,int s)
{
hour=(h>=0 && h<24)?h:0;
minute=(m>=0 && m<60)?m:0;
second=(s>=0 && s<60)?s:0;
}
/*main.cpp*/
#include"iostream.h"
#include"Time.h"
void main()
{ int s,f,m;
Time t;
cout<<"默认时间"<<endl;
t.SetTime();
t.PrintTime();
cout<<"输入你想设置的时间"<<endl;
cin>>s>>f>>m;
t.SetTime(s,f,m);
t.PrintTime();
}