/*
1、【基本题】定义一个时间类,提供设定时间、显示时间和秒数增加1的功能,其中设定时间的方法需要校验数据的正确性,
并在main函数中验证。
*/
#include<iostream>
using namespace std;
class Clock
{
public:
void settime(int h,int m,int s);
void showtime();
void add();
Clock(int h=0,int m=0,int s=0);
Clock(const Clock &c);
private:
int hour;
int minute;
int second;
int state;
};
Clock::Clock(int h,int m,int s):hour(h),minute(m),second(s),state(0)
{
}
Clock::Clock(const Clock &c):hour(c.hour),minute(c.minute),second(c.second)
{
}
void Clock::settime(int h,int m,int s)
{
this->hour=h;
this->minute=m;
this->second=s;
if(h>0&&h<24)
{
state=state|0x4;
}
if(m>0&&m<60)
{
state=state|0x2;
}
if(s>0&&s<60)
{
state=state|0x1;
}
}
void Clock::add()
{
if(this->hour==24)
{
this->hour++;
this->hour=0;
}
if(this->minute==60)
{
this->minute++;
this->minute=0;
}
if(this->second==60)
{
this->second++;
this->second=0;
}
}
void Clock::showtime()
{
if((state&0x4)==0)
{
cout<<"小时错了"<<endl;
}
if((state&0x2)==0)
{
cout<<"分钟错了"<<endl;
}
if((state&0x1)==0)
{
cout<<"秒错了"<<endl;
}
cout<<this->hour<<":"<<this->minute<<":"<<this->second<<endl;
}
void main()
{
Clock clock;
clock.settime(21,78,90);
clock.showtime();
}