定义一个Data类,包括year、month、day三个数据成员,通过set_data( )成员函数输入日期数据,通过display( )成员函数将日期输出,输出格式为"年/月/日",并设计出相应的程序测试类功能。
时间: 2024-10-08 18:07:37 浏览: 35
首先,我们可以定义一个名为`Date`的类,它包含`year`、`month`和`day`这三个私有数据成员,并提供`set_data`用于设置日期,以及`display`用于显示日期:
```cpp
class Date {
private:
int year;
int month;
int day;
public:
// 构造函数初始化默认值
Date() : year(0), month(0), day(0) {}
// 设置日期
void set_data(int y, int m, int d) {
year = y;
month = m;
day = d;
}
// 显示日期
void display() const {
std::cout << year << "/" << month << "/" << day << std::endl;
}
};
```
接下来,我们创建一个`DateTest`类作为测试工具:
```cpp
#include "Date.h"
class DateTest {
public:
static void test() {
Date date; // 创建一个Date对象
// 测试set_data方法
date.set_data(2023, 4, 27);
std::cout << "Testing set_data:\n";
date.display();
// 非法输入测试
try {
date.set_data(-1, 0, 31); // 年份负数和月份非01到12的情况
throw "Invalid input";
} catch (const char* msg) {
std::cerr << "Error: " << msg << std::endl;
}
// 测试display方法异常情况
try {
date.display(); // 如果没有设置日期,应该抛出异常
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
}
};
int main() {
DateTest::test();
return 0;
}
```
在这个程序中,`DateTest`类的`test`方法会实例化一个`Date`对象,设置合法和非法的日期数据,并检查相应的行为。主函数调用`test`来进行测试。
阅读全文