游客 Signup | Login
中文 | En

3738 - C++作业4-1:定义一个带重载构造函数的日期类(分值较大)

定义一个带重载构造函数的日期类Date,数据成员有年、月、日;成员函数包括:一个带参数的构造函数Date(int,int,int),一个不带参数的构造函数(设置默认值为1900-1-1),一个按“年-月-日”格式显示日期的函数void show(),一个对数据成员赋值的函数void init(int,int,int)。
主函数中对类的测试要求:
1. 分别使用两个不同的重载构造函数创建两个日期类对象(必须为d1,d2,d2初始值为2100-12-12);
2. 按“年-月-日”格式分别显示两个对象的值;
3. 输入数据,用init函数为d1赋值;
2.按“年-月-日”格式显示对象d1的值;。

Input

给d1赋值的数据

例如:

2011 4 29

Output

d1的默认值

d2的初始值

d1赋值后的值

例如:

1900-1-1

2100-12-12
2011-4-29

Examples

Input

2000 2 29

Output

1900-1-1
2100-12-12
2000-2-29

Hint

主函数main()中对象的声明、测试:

int y,m,d;

Date d1,d2(2100,12,12);

d1.show();

d2.show();

cin>>y>>m>>d;

d1.init(y,m,d);

d1.show();

Solution C++

#include <iostream>
using namespace std;
class Date{
 public:
	Date(int y,int m,int d);
	Date();
	void show();
	void init();
private:
	int year;
	int month;
	int day; 
}; 
Date::Date(int y,int m,int d){
	year=y;
	month=m;
	day=d;
}
Date::Date(){
	int y=1900;
	int m=1;
	int d=1;
	year=y;
	month=m;
	day=d;
}
void Date::show(){
	cout<<year<<"-"<<month<<"-"<<day<<endl;
}
void Date::init(){
	cin>>year>>month>>day;
}
int main(){
	Date d1,d;
	Date d2(2100,12,12);
    d.init();
    d1.show();
    d2.show();
    d.show();
 return 0;
}

Hint

主函数main()中对象的声明、测试:

int y,m,d;

Date d1,d2(2100,12,12);

d1.show();

d2.show();

cin>>y>>m>>d;

d1.init(y,m,d);

d1.show();

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题