Problem A: 【C++对象和类】日期类和对象
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 955 Solved: 571
[Submit][Status][Web Board]
Description
定义日期类current_date,包含
属性:day month year
方法:
(1) 给定三个参数的构造函数current_date((int dayVal, int monthVal,int yearVal) )
(2)assign_data(int dayVal, int monthVal,int yearVal) 用来给三个数据成员赋值,暂时不考虑非法赋值的情况.
(3) display_data()显示三个数据成员的值
(4) increment_date()功能是当前日期后一天的日期.
主函数中用assign_data给一个对象的数据成员赋值, 然后显示一下数据成员值,用increment_date算一下10天以后的日期,再显示一下日期值.
int main()
{
int i, day,month,year;
current_date mydate(10,1,2013);
mydate.display_data();
cin>>day>>month>>year;
mydate.assign_data(day,month,year);
for(i=1;i<=10;i++)
{
mydate.increment_date();
}
mydate.display_data();
return 0;
}
Input
输入一个日期的各个数据成员变量值,顺序为:日 月 年, 数字之间用空格隔开即可
Output
输出日期的各项,注意,格式为月/日/年.
用increment_date算一下10天以后的日期,再显示一下日期值.
Sample Input
24 2 2015
Sample Output
1/10/2013 3/6/2015
# include<bits/stdc++.h>
using namespace std;
int a,b,c;
int x;
int ans[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
class date{
private:
int nian,month,day;
public:
date(){day=1,month=1,nian=2008;}
date(int d,int m,int n):day(d),month(m),nian(n){}
void co(){cout<<day<<'/'<<month<<'/'<<nian<<endl;}
void in(){cin>>a>>b>>c;if(b>12)b%=12;if(a>ans[b])a%=ans[b];nian=c,month=b,day=a;}
void add(){
if(nian%400==0||(nian%4==0&&nian%100!=0)){ans[2]=29;}
// if(month>12)month%=12;if(day>ans[month])day%=ans[month];
for(int t=1;t<=x;t++){
day++;
if(day>ans[month]){
day=1;
month++;
}
if(month==13){
nian++;
month=1;
}
}
}
};
int main(){
date d0,d1(1,5,2016),d2,d3;
d0.co();
d1.co();
d2.in();
d2.co();
cin>>x;
d3=d2;
d3.add();
d3.co();
}