描述
1、定义日期“Date”类,类中包含数据成员年、月、日,成员函数包括构造函数(只有带参的构造函数),设置日期,或取年、月、日,显示年、月、日等
2、定义时间“Time”类,数据成员包括时分秒。成员函数的要求同date类
3、定义日期时间型“Date_Time”类
⑴公有继承Date类及Time类;
⑵不增加数据成员;
⑶增加日期时间处理成员函数,包括初始化日期时间、设置日期时间、显示日期时间等。在
4、每个类都要求重载>> 和<<运算符< span="">
5.对Date_Time,重载〉运算符。
6. 编写main()函数进行测试。在主函数中,输入两个Date_Time类的数据,按照时间从小到大的顺序输出两个时间信息。
输入
输入年、月、日、时、分、秒。
输入年、月、日、时、分、秒。
输出
输出年、月、日、时、分、秒。
输出年、月、日、时、分、秒。
样例输入
2019 3 4 12 23 23
2018 4 3 11 11 11
样例输出
2018 4 3 11 11 11
2019 3 4 12 23 23
#include <iostream>
using namespace std;
class Date{
protected:
int year;
int month;
int day;
public:
Date(int year,int month,int day){
this->year=year;
this->month=month;
this->day=day;}
void setdate(int y,int m,int d){
year=y; month=m;day=d;}
void display(){cout<<year<<" "<<month<<" "<<day<<" ";}
friend istream & operator >>(istream & input,Date &d);
friend ostream & operator <<(ostream & output,const Date &d);
};
istream & operator >>(istream &input,Date &d){
input>>d.year>>d.month>>d.day;
return input;}
ostream & operator <<(ostream &output,const Date &d){
output<<d.year<<" "<<d.month<<" "<<d.day<<" ";
return output;}
class Time{
protected:
int hour;
int minute;
int second;
public:
Time(int hour,int minute,int second){
this->hour=hour;
this->minute=minute;
this->second=second;}
void settime(int h,int m,int s){
hour=h; minute=m; second=s;}
void display(){cout<<hour<<" "<<minute<<" "<<second<<endl;}
friend istream & operator >>(istream &input,Time &t);
friend ostream & operator <<(ostream &output,const Time &t);
};
istream & operator >>(istream &input,Time &t){
input>>t.hour>>t.minute>>t.second;
return input;}
ostream & operator <<(ostream &output,const Time &t){
output<<t.hour<<" "<<t.minute<<" "<<t.second<<endl;
return output;}
class Date_Time:public Date,public Time{
public:
Date_Time(int year=0,int month=0,int day=0,int hour=0,int minute=0,int second=0):Date(year,month,day),Time(hour,minute,second){}
void setdate_time(int y,int mo,int d,int h,int m,int s){setdate(y,mo,d);settime(h,m,s);}
void display(){
cout<<year<<" "<<month<<" "<<day<<" "<<hour<<" "<<minute<<" "<<second<<endl;}
bool operator > (const Date_Time &dt){
if(year>dt.year) return true;
if(year=dt.year){
if(month>dt.month) return true;
if(month=dt.month){
if(day>dt.day) return true;
if(day=dt.day){
if(hour>dt.hour) return true;
if(hour=dt.hour){
if(minute>dt.minute) return true;
if(minute=dt.minute){
if(second>dt.second) return true;
if(second=dt.second){
return false;}
return false;}
return false;}
return false;}
return false;}
return false;}
return false;}
friend istream & operator >>(istream &input,Date_Time &dt);
friend ostream & operator <<(ostream &output,const Date_Time &dt);
};
istream & operator >>(istream &input,Date_Time &dt){
cin>>dt.year>>dt.month>>dt.day>>dt.hour>>dt.minute>>dt.second;
return input;}
ostream & operator <<(ostream &output,const Date_Time &dt){
cout<<dt.year<<" "<<dt.month<<" "<<dt.day<<" "<<dt.hour<<" "<<dt.minute<<" "<<dt.second<<endl;
return output;}
int main()
{
Date_Time A;
Date_Time B;
int a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6;
cin>>a1>>a2>>a3>>a4>>a5>>a6>>b1>>b2>>b3>>b4>>b5>>b6;
A.setdate(a1,a2,a3);A.settime(a4,a5,a6);
B.setdate(b1,b2,b3);B.settime(b4,b5,b6);
if(A>B) cout<<B<<A;
else cout<<A<<B;
return 0;
}