题目叙述:
已有类Time和Date,要求设计一个派生类Birthtime,它继承类Time和Date,并且增加一个数据成员Childname,用于表示小孩的名字,同时设计主程序,输入2个小孩的姓名、出生日期,并将这两个小孩的姓名、出生日期输出。
class Time
{
public:
Time(int h,int m,int s)
{
hours=h;
minutes=m;
seconds=s;
}
void display()
{
cout<<hours<<":"<<minutes<<":"<<seconds;
}
protected:
int hours,minutes,seconds;
};
class Date
{ public:
Date(int m,int d,int y)
{
month=m;
day=d;
year=y;
}
virtual void display()
{
cout<<year<<"-"<<month<<"-"<<day;
}
protected:
int month,day,year;
};
输入格式:
一共两行,每行为一个孩子的信息。该行分别为:姓名、年、月、日、小时、分钟、秒
输出格式:
小孩的姓名:出生年月,出生时间
输入样例:
在这里给出一组输入。例如:
Mary 2020 1 1 23 12 30
Michael 2019 1 21 14 5 56
输出样例:
在这里给出相应的输出。例如:
Mary: 2020-1-1 23:12:30
Michael: 2019-1-21 14:5:56
代码
#include<iostream>
#include<string.h>
using namespace std;
class Time
{
public:
Time(int h,int m,int s)
{
hours=h;
minutes=m;
seconds=s;
}
void display2()
{
cout<<hours<<":"<<minutes<<":"<<seconds;
}
protected:
int hours,minutes,seconds;
};
class Date
{ public:
Date(int m,int d,int y)
{
month=m;
day=d;
year=y;
}
virtual void display()
{
cout<<year<<"-"<<month<<"-"<<day;
}
protected:
int month,day,year;
};
class Birthtime :public Date,public Time
{
string name;
public:
Birthtime(string name,int h,int m,int s,int a,int b,int c):Date(m,s,h),Time(a,b,c)
{
this->name=name;
}
void show()
{
cout<<name;
cout<<':';
cout<<' ';
Date::display();
cout<<" ";
Time::display2();
cout<<endl;
}
};
int main()
{
string name;
int a,b,c,d,e,f;
cin>>name;
scanf("%d%d%d", &a, &b, &c);
scanf("%d%d%d", &d, &e, &f);
Birthtime birthtime(name,a,b,c,d,e,f);
birthtime.show();
cin>>name;
scanf("%d%d%d", &a, &b, &c);
scanf("%d%d%d", &d, &e, &f);
Birthtime birthtime2(name,a,b,c,d,e,f);
birthtime2.show();
}