已有类Time和Date,要求设计一个派生类Birthtime,它继承类Time和Date,并且增加一个数据成员Childname用于表示小孩的名字,同时设计主程序显示一个小孩的出生时间和名字。
时间: 2023-08-31 21:30:54 浏览: 133
设计一个Time类
### 回答1:
下面是一个可能的实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Date {
public:
Date(int year, int month, int day) : year_(year), month_(month), day_(day) {}
void Print() const {
cout << year_ << "-" << month_ << "-" << day_;
}
private:
int year_;
int month_;
int day_;
};
class Time {
public:
Time(int hour, int minute, int second) : hour_(hour), minute_(minute), second_(second) {}
void Print() const {
cout << hour_ << ":" << minute_ << ":" << second_;
}
private:
int hour_;
int minute_;
int second_;
};
class Birthtime : public Date, public Time {
public:
Birthtime(int year, int month, int day, int hour, int minute, int second, const string& childname)
: Date(year, month, day), Time(hour, minute, second), childname_(childname) {}
void Print() const {
cout << "Child name: " << childname_ << endl;
cout << "Birth date: ";
Date::Print();
cout << endl;
cout << "Birth time: ";
Time::Print();
cout << endl;
}
private:
string childname_;
};
int main() {
Birthtime birthtime(2021, 9, 1, 10, 30, 0, "Alice");
birthtime.Print();
return 0;
}
```
这里我们定义了一个 `Birthtime` 类,它继承了 `Date` 和 `Time` 类,并增加了一个 `childname_` 成员用于表示小孩的名字。在 `Print()` 函数中,我们先输出小孩的名字,再调用 `Date::Print()` 和 `Time::Print()` 输出出生日期和时间。在主程序中,我们创建了一个 `Birthtime` 对象,并调用其 `Print()` 函数输出信息。
### 回答2:
首先,我们需要设计一个类Time,用于表示时间。这个类应该包含小时、分钟和秒的数据成员。我们可以实现获取和设置这些数据成员的方法,并且还可以实现计算时间差、格式化输出等功能。
接下来,我们需要设计一个类Date,用于表示日期。这个类应该包含年、月和日的数据成员。我们同样需要实现获取和设置这些数据成员的方法,并且还可以实现计算日期差、格式化输出等功能。
然后,我们可以设计一个派生类Birthtime,它继承了类Time和Date的所有数据成员和方法,并且增加了一个数据成员Childname,用于表示小孩的名字。我们同样需要实现获取和设置Childname的方法。
最后,我们可以设计主程序。在主程序中,我们可以首先创建一个Birthtime的对象,然后通过调用各种获取和设置方法,设置该对象的时间、日期和Childname。最后,我们可以通过调用格式化输出方法,将小孩的出生时间和名字显示出来。
例如:
```python
class Time:
def __init__(self, hour, minute, second):
self.hour = hour
self.minute = minute
self.second = second
def get_hour(self):
return self.hour
def set_hour(self, hour):
self.hour = hour
def get_minute(self):
return self.minute
def set_minute(self, minute):
self.minute = minute
def get_second(self):
return self.second
def set_second(self, second):
self.second = second
# 其他方法...
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def get_year(self):
return self.year
def set_year(self, year):
self.year = year
def get_month(self):
return self.month
def set_month(self, month):
self.month = month
def get_day(self):
return self.day
def set_day(self, day):
self.day = day
# 其他方法...
class Birthtime(Time, Date):
def __init__(self, hour, minute, second, year, month, day, child_name):
self.child_name = child_name
Time.__init__(self, hour, minute, second)
Date.__init__(self, year, month, day)
def get_child_name(self):
return self.child_name
def set_child_name(self, child_name):
self.child_name = child_name
# 其他方法...
# 主程序
birth_time = Birthtime(12, 30, 0, 2022, 1, 1, "小明")
print("小孩的出生时间:", birth_time.get_hour(), "时", birth_time.get_minute(), "分", birth_time.get_second(), "秒")
print("小孩的名字:", birth_time.get_child_name())
```
以上代码仅为示例,具体的实现方式可以根据实际需求进行调整。
### 回答3:
设计一个派生类Birthtime,它继承类Time和Date,并且增加一个数据成员Childname用于表示小孩的名字。
```cpp
#include <iostream>
using namespace std;
class Time {
private:
int hour;
int minute;
int second;
public:
Time(int h, int m, int s)
{
hour = h;
minute = m;
second = s;
}
void display()
{
cout << "时间:" << hour << ":" << minute << ":" << second << endl;
}
};
class Date {
private:
int year;
int month;
int day;
public:
Date(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
void display()
{
cout << "日期:" << year << "/" << month << "/" << day << endl;
}
};
class Birthtime: public Time, public Date {
private:
string Childname;
public:
Birthtime(int h, int m, int s, int y, int mon, int d, string name)
:Time(h, m, s), Date(y, mon, d)
{
Childname = name;
}
void display()
{
cout << "小孩姓名:" << Childname << endl;
Time::display();
Date::display();
}
};
int main()
{
Birthtime birth(10, 30, 0, 2021, 7, 12, "张三");
birth.display();
return 0;
}
```
在主程序中创建了一个Birthtime对象birth,传入参数为出生时间和日期(小时,分钟,秒钟,年,月,日)以及小孩的名字。然后调用对象的display()函数,显示小孩的姓名、出生时间和日期。
阅读全文