永发信息网

定义一个满足如下要求的data类

答案:2  悬赏:40  手机版
解决时间 2021-04-29 20:55
  • 提问者网友:遁入空寂
  • 2021-04-29 08:35
定义一个满足如下要求的data类:用日月年的格式输出,可运行在日期上加一天操作,设置日期操作
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-04-29 08:42

帮你写了个. 如果有疑问或者需要修改的地方还请追问.


完成了天数加1.以及设置日期的功能. 具体请看以下代码.



#include <iostream>
using namespace std;


class Data
{
public:

void Initialize_Data();

void Set_Data();

bool is_LeapYear();

void Plus_Data();

void print();
private:
int day;
int month;
int year;
};



void Data::Initialize_Data()
{
char s;
cout<<"输入格式为 年-月-日 或者 年:月:日"<<endl;
cin>>year>>s>>month>>s>>day;
return;
}



void Data::Set_Data()
{
char s;
cout<<"输入格式为 年-月-日 或者 年:月:日"<<endl;
cin>>year>>s>>month>>s>>day;


return;
}



bool Data::is_LeapYear()
{
if( year%4==0 && ( year%100!=0 || year%400==0))
{ //判断是否闰年.
return true;
}
return false;

}

void Data::Plus_Data()
{
switch(month)
{
case 4:
case 6:
case 9:
case 11:
if(day/30!=0) ++month;
day%=30;
break;

case 2:
if(is_LeapYear())
{
if(day/29!=0) ++month;
day%=29;
}
else
{ if(day/28!=0) ++month;
day%=28;
}
break;

default:
if(day/31!=0)
++month;
day%=31;
break;
}
if(month/13!=0) ++year;
if((month%=13)==0) ++month;
++day;


print();
return;
}



void Data::print()
{
cout<<"天数加1后的日期为:"<<endl;
cout<<day<<"-"<<month<<"-"<<year<<endl;
return;
}



int main()
{
Data now;
now.Initialize_Data(); //初始化


while(true)
{
now.Plus_Data();


char s;
cout<<"是否重新设置日期?(Y/N) ";
cin>>s;
if(s=='n'||s=='N') break;
now.Set_Data();
}


return 0;
}


全部回答
  • 1楼网友:愁杀梦里人
  • 2021-04-29 10:10

#include <iostream>

using namespace std;

class date { private: int day,month,year;

public: date() { day=1; month=1; year=2010; } void display() { cout<<day<<"日"<<month<<"月"<<year<<"年"<<endl; } void Addday() { switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: if(day==31) { day=1; month++; } else day++; break; case 12: if(day==31) { day=1; month=1; year++; } else day++; break; case 2: if(year%4==0) { if(day==29) { day=1; month++; } else day++; } else { if(day==28) { day=1; month++; } else day++; } break; case 4: case 6: case 9: case 11: if(day==30) { day++; month++; } else day++; } } void set(int d,int m,int y) { if(d>0&&d<=31&&m>0&&m<=12&&y>=0) { day=d; month=m; year=y;

}

} };

int main() { date d; d.set(31,3,2009); d.display(); d.Addday(); d.display();

return 0; } 结果:

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯