Description
设计一个日期时间类,用于读取输入的数据,按格式输出日期和时间。
设计日期时间类DateTime由2个成员组成,分别是一个Date类对象和一个Time类对象;
设计DateTime类需支持以下操作:
DateTime::DateTime()无参构造方法:初始化为1年1月1日、0时0分0秒;
DateTime::DateTime(int,int,int,int,int,int)构造方法:依照参数(顺序为年月日、时分秒)初始化对象;
在上述两个DateTime类的构造函数中输出:“CREATE DateTime : (y, m, d, hh, mm, ss)”,其中y、m、d为初始化对象时的年月日值,h、m、s为初始化对象时的时分秒值。参见输出。
DateTime::DateTime(const Date&,const Time&)构造方法:依照参数传入的日期和时间初始化对象;
在这个DateTime类的构造函数中输出:“CREATE DateTime : (y, m, d) (hh, mm, ss)”,其中y、m、d为初始化对象时的年月日值,h、m、s为初始化对象时的时分秒值。参见输出。
DateTime:DateTime(const DateTime&)构造方法:拷贝构造函数,初始化对象。
在拷贝构造函数中输出:“COPY DateTime : (y, m, d) (hh, mm, ss)”,其中y、m、d为初始化对象时的年月日值,h、m、s为初始化对象时的时分秒值。参见输出。
DateTime::showDateTime()方法:按格式输出DateTime对象;
DateTime::setDateTime(int,int,int,int,int,int)方法:依照参数(顺序为年月日、时分秒)修改对象的属性值;
编写DateTime类的读写函数:year()、month()、day()、hour()、minute()、second()。读写函数的参数、返回值参见main()函数。
DateTime类包含了两个类:Date类和Time类
设计日期类Date需支持以下操作:
Date::Date()无参构造方法:初始化为1年1月1日
Date::Date(int,int,int)构造方法:传入的参数依次为年月日,用参数将日期初始化。
在Date类的构造函数中输出:“CREATE Date : (y, m, d)”,其中y、m、d为初始化对象时的年月日值。参见输出。
Date::Date(const Date&)构造方法:拷贝构造函数,初始化对象。
在拷贝构造函数中输出:“COPY Date : (y, m, d)”,其中y、m、d为初始化对象时的年月日值。参见输出。
Date::showDate()方法:按格式输出Date对象。
Date::setDate(int,int,int)方法:传入的参数依次为年月日,用参数修改对象的属性值
设计时间类Time需支持以下操作:
Time::Time()无参构造方法:初始化为0时0分0秒
Time::Time(int,int,int)构造方法:传入的参数依次为时分秒,用参数将时间初始化。
在Time类的构造函数中输出:“CREATE Time : (h, m, s)”,其中h、m、s为初始化对象时的时分秒值。参见输出
Time::Time(const Time&)构造方法:拷贝构造函数,初始化对象。
在拷贝构造函数中输出:“COPY Time : (h, m, s)”,其中h、m、s为初始化对象时的时分秒值。参见输出
Time::showTime()方法:按格式输出Time对象。
Time::setTime(int,int,int)方法:传入的参数依次为时分秒,用参数修改对象的属性值
-----------------------------------------------------------------------------
你设计DateTime类、Date类和Time类,使得main()函数能够正确运行。
函数调用格式见append.cc。
append.cc中已给出main()函数。
Input
输入的第一个整数n,表示有n组测试数据。
后面的输入每行为一组测试数据。每组测试数据的前3个整数是日期的年月日,后3个整数是时间的时分秒。
Output
Sample Input
Sample Output
HINT
Append Code
#include<iostream>
#include<iomanip>
using namespace std;
class Date{
friend class DateTime;
private:
int y,m,d;
public:
Date(int yy=1,int mo=1,int dd=1):y(yy),m(mo),d(dd){cout<<"CREATE Date : ("<<y<<", "<<m<<", "<<d<<")"<<endl;}
void showDate(){cout<<setw(4)<<setfill('0')<<y<<"-"<<setw(2)<<setfill('0')<<m<<"-"<<setw(2)<<setfill('0')<<d<<" ";}
void setDate(int a,int b,int c){y=a;m=b;d=c;}
Date(const Date&da){*this=da;cout<<"COPY Date : ("<<y<<", "<<m<<", "<<d<<")"<<endl;}
};
class Time{
friend class DateTime;
private:
int h,m,s;
public:
Time(int hh=0,int mm=0,int ss=0):h(hh),m(mm),s(ss){cout<<"CREATE Time : ("<<h<<", "<<m<<", "<<s<<")"<<endl;}
void showTime(){cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<setfill('0')<<m<<":"<<setw(2)<<setfill('0')<<s;}
void setTime(int a,int b,int c){h=a;m=b;s=c;}
Time(const Time&t){*this=t;cout<<"COPY Time : ("<<h<<", "<<m<<", "<<s<<")"<<endl;}
};
class DateTime{
friend class Date;
friend class Time;
private:
Time t;
Date d;
public:
int year(int a){return d.y=a;}
int year()const{return d.y;}
int month(int a){return d.m=a;}
int month()const{return d.m;}
int day(int a){return d.d=a;}
int day()const{return d.d;}
int hour(int a){return t.h=a;}
int hour()const{return t.h;}
int minute()const{return t.m;}
int minute(int a){return t.m=a;}
int second()const{return t.s;}
int second(int a){return t.s=a;}
DateTime(){cout<<"CREATE DateTime : ("<<d.y<<", "<<d.m<<", "<<d.d<<", "<<t.h<<", "<<t.m<<", "<<t.s<<")"<<endl;}
DateTime(const Date& D,const Time& T):d(D),t(T){cout<<"CREATE DateTime : ("<<d.y<<", "<<d.m<<", "<<d.d<<") ("<<t.h<<", "<<t.m<<", "<<t.s<<")"<<endl;}
DateTime(int yy=1,int mo=1,int dd=1,int hh=0,int mm=0,int ss=0):d(yy,mo,dd),t(hh,mm,ss){cout<<"CREATE DateTime : ("<<d.y<<", "<<d.m<<", "<<d.d<<", "<<t.h<<", "<<t.m<<", "<<t.s<<")"<<endl;}
void showDateTime(){d.showDate();t.showTime();}
DateTime& setDateTime(int yy,int mo,int dd,int hh,int mm,int ss){d.setDate(yy,mo,dd);t.setTime(hh,mm,ss);return *this;}
DateTime(const DateTime&dt):t(dt.t),d(dt.d){cout<<"COPY DateTime : ("<<d.y<<", "<<d.m<<", "<<d.d<<") ("<<t.h<<", "<<t.m<<", "<<t.s<<")"<<endl;}
};
int main()
{
const Date date(1000, 10, 10), dt(date);
const Time time(1, 1, 1), tm(time);
DateTime date_time(dt, tm);
const DateTime cnt(date_time);
cout << "DateTime : " << cnt.year() << " " << cnt.month() << " " << cnt.day();
cout << " " << cnt.hour() << " " << cnt.minute() << " " << cnt.second();
cout << endl;
int cases;
cin >> cases;
for(int ca = 0; ca < cases; ca++)
{
int year, month, day;
cin >> year >> month >> day;
int hour, minute, second;
cin >> hour >> minute >> second;
date_time.year(year);
date_time.month(month);
date_time.day(day);
date_time.hour(hour);
date_time.minute(minute);
date_time.second(second);
date_time.showDateTime();
cout << endl;
}
}
来源:https://www.cnblogs.com/auto1945837845/p/5383907.html