完整题干:
定义日期类型Date。要求有以下面成员:
(1)可以设置日期;
(2)日期加一天操作;
(3)输入函数,输入格式为“XXXX年XX月XX日”。
要求:使用成员函数实现对数据的输入、输出,在头文件中完成类的声明,在.cpp中完成类的实现,在主文件(.cpp)中完成主函数编写。
个人答案:
class Data
{
private:
int year;
int month;
int day;
public:
Data(int n_year, int n_month, int n_day);
void add();
void result();
};
#include"221.h"
#include<iostream>
using namespace std;
Data::Data(int n_year = 0, int n_month = 0, int n_day = 0) :year(n_year), month(n_month), day(n_day)
{
};
void Data::add()
{
//天数为31的月份
if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10) && (day == 31))
{
day = 1;
month++;
}
//12月
if (month == 12 && day == 31)
{
day = 1;
month = 1;
year++;
}
//天数为30
if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 30)
{
day = 1;
month++;
}//2月考虑闰年,闰年29天,不是闰年28天
if ((month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))) && day == 29)
{
day = 1;
month++;
}
if ((month == 2 && ((year % 4 != 0) || (year % 100 == 0 && year & 400 != 0))) && day == 28)
{
day = 1;
month++;
}
else
{
day++;
}
}
void Data::result()
{
cout << year << "年 " << month << "月 " << day << "日 " << endl;
}
#include"221.h"
#include<iostream>
using namespace std;
int main()
{
bool k=1;
while (k)
{
int year1, month1, date1;
cout << "请输入日期:";
cin >> year1 >> month1 >> date1;
cout << endl;
Data a(year1, month1, date1);
cout << "原始日期为:";
a.result();
cout << endl;
a.add();
cout << "第二天的日期为:";
a.result();
cout << endl;
cout << "是否结束输入(按1键继续,按0结束):";
cin >> k;
}
system("pause");
return 0;
}
结果: