请设计日期类MyDate,描述日期。数据成员int _year, int _month, int _day分别描述年、月、日。构造函数MyDate(int year, int month, int day); (如果可以,请尽量设计数据有效性检验);修改年值函数void SetYear(int year); 修改月值函数 void SetMonth(int month); 修改日值函数 void SetDay(int day); 输出日期函数 void Show() .
时间: 2023-06-14 22:03:11 浏览: 178
cpp代码-大作业第五题: 定义一个date类如下: class Date { public: void SetDate(int y,int m,int d); void IsLeapYear(); private: int year; int month; int day; }; 要求: (1)编写SetDate(int y,int m,int d)函数,实现对象中数据成员的设置; (2)编写IsLeapYear()判断该年是否是闰年。
以下是MyDate类的实现:
```cpp
#include <iostream>
class MyDate {
public:
MyDate(int year, int month, int day) {
// 数据有效性检验,年份范围在1900~2100年,月份范围在1~12月,日份范围在1~31日
if (year >= 1900 && year <= 2100 && month >= 1 && month <= 12 && day >= 1 && day <= 31) {
_year = year;
_month = month;
_day = day;
} else {
std::cout << "日期非法!" << std::endl;
}
}
void SetYear(int year) {
// 年份范围在1900~2100年
if (year >= 1900 && year <= 2100) {
_year = year;
} else {
std::cout << "年份非法!" << std::endl;
}
}
void SetMonth(int month) {
// 月份范围在1~12月
if (month >= 1 && month <= 12) {
_month = month;
} else {
std::cout << "月份非法!" << std::endl;
}
}
void SetDay(int day) {
// 日份范围在1~31日
if (day >= 1 && day <= 31) {
_day = day;
} else {
std::cout << "日份非法!" << std::endl;
}
}
void Show() const {
std::cout << _year << "年" << _month << "月" << _day << "日" << std::endl;
}
private:
int _year;
int _month;
int _day;
};
```
使用示例:
```cpp
MyDate date(2022, 12, 31);
date.Show(); // 输出:2022年12月31日
date.SetYear(2023);
date.SetMonth(13); // 输出:月份非法!
date.SetDay(32); // 输出:日份非法!
date.Show(); // 输出:2023年12月31日
```
阅读全文