设计一个节目类Holiday,其中包含数据成员年、月、日。年月日格式如:1949-10-1,构建三个Holiday 类对象 myHoliday,nationalDay,partyBirthday,具体要求如下: 1)重载“==”,实现当前节日对象表示的时间等于某个节日对象的时间 2)重载“>>”,实现按年、月、日格式输入 3)重载“<<”,实现按年、月、日格式输出 4)对象myHoliday 和 partyBirthday 的数据成员由键盘输入,对象nationalDay 为国庆节(1949年10月1日),分别判断对象myHoliday 和 partyBirthday 是否为国庆节
时间: 2024-03-27 07:36:24 浏览: 52
好的,根据您的要求,我为您设计了如下的Holiday类:
```c++
#include <iostream>
#include <string>
using namespace std;
class Holiday {
private:
int year;
int month;
int day;
public:
Holiday() : year(0), month(0), day(0) {}
Holiday(int y, int m, int d) : year(y), month(m), day(d) {}
bool operator==(const Holiday& h) const {
return year == h.year && month == h.month && day == h.day;
}
friend istream& operator>>(istream& in, Holiday& h) {
string date;
in >> date;
sscanf(date.c_str(), "%d-%d-%d", &h.year, &h.month, &h.day);
return in;
}
friend ostream& operator<<(ostream& out, const Holiday& h) {
out << h.year << "-" << h.month << "-" << h.day;
return out;
}
bool isNationalDay() const {
return *this == Holiday(1949, 10, 1);
}
};
int main() {
Holiday myHoliday, nationalDay(1949, 10, 1), partyBirthday;
cout << "请输入 myHoliday 的年月日(格式如 1949-10-1):";
cin >> myHoliday;
cout << "请输入 partyBirthday 的年月日(格式如 1949-10-1):";
cin >> partyBirthday;
if (myHoliday.isNationalDay()) {
cout << "myHoliday 是国庆节!" << endl;
} else {
cout << "myHoliday 不是国庆节!" << endl;
}
if (partyBirthday.isNationalDay()) {
cout << "partyBirthday 是国庆节!" << endl;
} else {
cout << "partyBirthday 不是国庆节!" << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个Holiday类,其中包含了年月日三个私有数据成员,以及一个默认构造函数和一个带参数的构造函数。我们还重载了“==”、“>>”和“<<”三个运算符,分别实现了对象之间的比较、输入和输出操作。最后,我们还定义了一个isNationalDay()成员函数,用于判断当前Holiday对象是否为国庆节。
在main()函数中,我们首先定义了三个Holiday对象:myHoliday、nationalDay和partyBirthday。其中,nationalDay对象是一个默认构造函数,表示国庆节的日期,而myHoliday和partyBirthday对象则通过键盘输入获取它们的日期信息。
接着,我们分别调用了myHoliday和partyBirthday对象的isNationalDay()成员函数,用于判断它们是否为国庆节。如果是,就输出“是国庆节”,否则输出“不是国庆节”。
下面是一些输入输出的示例:
```
请输入 myHoliday 的年月日(格式如 1949-10-1):1980-9-13
请输入 partyBirthday 的年月日(格式如 1949-10-1):1990-10-1
myHoliday 不是国庆节!
partyBirthday 是国庆节!
```
```
请输入 myHoliday 的年月日(格式如 1949-10-1):1949-10-1
请输入 partyBirthday 的年月日(格式如 1949-10-1):2010-10-1
myHoliday 是国庆节!
partyBirthday 不是国庆节!
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)