用c++3.定义一个日期类 Date,数据成员有年(year)、月(month)、日(day)。成员函数有: (1)私有数据成员函数 bool isLeap()判断year是否是闰年,若是返回1,否则返回0。 (2)私有成员函数 bool check()判断日期是否合法,若合法返回1,否则返回0。 (3)设置年、月、日值,并检测是否为合法日期。 (4) 按yyyy/mm/dd格式输出日期,若是闰年,还要输入是否是闰年的信息。 在主函数中定义日期类对象,任意输入年、月、日值,然后对所有成员函数进行测试
时间: 2024-02-20 22:59:42 浏览: 81
好的,我会尽力回答您的问题。以下是使用C++编写的Date类的代码:
```c++
#include <iostream>
using namespace std;
class Date {
private:
int year, month, day;
bool isLeap() {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return true;
else
return false;
}
bool check() {
if (year < 1 || month < 1 || month > 12 || day < 1 || day > 31)
return false;
if (month == 2) {
if (isLeap() && day > 29)
return false;
if (!isLeap() && day > 28)
return false;
}
if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30)
return false;
return true;
}
public:
Date() {
year = month = day = 0;
}
void set(int y, int m, int d) {
year = y;
month = m;
day = d;
if (!check()) {
cout << "Invalid date!" << endl;
year = month = day = 0;
}
}
void print() {
if (year != 0 && month != 0 && day != 0) {
cout << "Date: " << year << "/" << month << "/" << day << endl;
if (isLeap())
cout << "This is a leap year." << endl;
}
else
cout << "Date not set." << endl;
}
};
int main() {
int year, month, day;
cout << "Enter year, month and day: ";
cin >> year >> month >> day;
Date myDate;
myDate.set(year, month, day);
myDate.print();
return 0;
}
```
在上面的代码中,Date类有三个私有数据成员:year、month和day,分别表示年、月和日。类中还有两个私有成员函数:isLeap()和check()。isLeap()函数用于判断年份是否为闰年,check()函数用于判断日期是否合法。
类中还有三个公有成员函数:set()、print()和一个构造函数。set()函数用于设置年、月、日值,并检测是否为合法日期。print()函数用于按yyyy/mm/dd格式输出日期,如果是闰年,还会输出"this is a leap year"。构造函数用于初始化数据成员。
在主函数中,用户输入年、月、日值,并创建一个Date对象进行测试。如果日期合法,则调用print()函数输出日期和是否为闰年的信息。如果日期不合法,则输出错误提示信息。
希望我的回答能够帮到您,如果您还有其他问题,请随时提出。
阅读全文