/* 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(); }