一个Time类,数据成员有时、分、秒。要求模拟秒表,每次走一秒,满60秒进位,秒又从零开始计数。满60分进位,分又从零开始计数。输出时、分和秒的值。(使用重载++运算符实现)
时间类定义:
class MyTime
测试程序样例:
/* 请在这里填写答案 */
int main()
{
MyTime t1,t2(23,59,59),t3;
cin>>t3;
++t1;
cout<<t1<<endl;
++t2;
cout<<t2<<endl;
++t3;
cout<<t3<<endl;
return 0;
}
输入样例:
12 35 59
输出样例:
0:0:1
0:0:0
12:36:0
题解:
#include <bits/stdc++.h>
using namespace std;
class MyTime {
public:
int hour, minute, second; //声明时分秒
MyTime(int h = 0, int m = 0, int s = 0):hour(h),minute(m),second(s) {}; //构造函数初始化
MyTime operator++() {
this->second++;
this->hour = (this->hour + ((this->minute + (this->second / 60)) / 60)) % 24;
this->minute = (this->minute + (this->second / 60)) % 60;
this->second = this->second % 60;
}
friend istream& operator>>(istream& is, MyTime& mt) {
is >> mt.hour >> mt.minute >> mt.second;
return is;
}
friend ostream& operator<<(ostream& os, MyTime& mt) {
os << mt.hour << ":" << mt.minute << ":" << mt.second;
}
};