c++4.定义一个日期类 Date,数据成员有年(year)、月(month)、日(day)。成员函数有: (1)私有数据成员函数 bool isLeap()判断year是否是闰年,若是返回1,否则返回0。 (2)私有成员函数 bool check()判断日期是否合法,若合法返回1,否则返回0。 (3)设置年、月、日值,并检测是否为合法日期。 (4) 按yyyy/mm/dd格式输出日期,若是闰年,还要输入是否是闰年的信息。 在主函数中定义日期类对象,任意输入年、月、日值,然后对所有成员函数进行测试。
时间: 2024-02-12 13:09:22 浏览: 29
用c++设计一个日期类Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,如一日期加上天数、一日期减去天数、两日期相差的天数等。
5星 · 资源好评率100%
以下是实现以上要求的代码:
```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 < 0 || month < 1 || month > 12 || day < 1 || day > 31) {
return false;
}
switch (month) {
case 2:
if (isLeap()) {
if (day > 29) {
return false;
}
}
else {
if (day > 28) {
return false;
}
}
break;
case 4:
case 6:
case 9:
case 11:
if (day > 30) {
return false;
}
break;
default:
break;
}
return true;
}
public:
void set(int y, int m, int d) {
year = y;
month = m;
day = d;
if (!check()) {
cout << "Invalid date!" << endl;
exit(1);
}
}
void print() {
cout << year << "/" << month << "/" << day;
if (isLeap()) {
cout << " (Leap Year)";
}
cout << endl;
}
};
int main() {
int y, m, d;
cout << "Please input year, month and day: ";
cin >> y >> m >> d;
Date date;
date.set(y, m, d);
date.print();
return 0;
}
```
在主函数中,首先输入年、月、日值,然后定义一个日期类对象,并通过set方法设置年、月、日值,并检测是否为合法日期。最后,通过print方法按yyyy/mm/dd格式输出日期,若是闰年,还输出是否是闰年的信息。
阅读全文