设计一款电子钟类,用于显示时、分、秒
实验要求:
- 含有形参有默认值的默认构造函数;
- 重载 前缀++ 和 后缀++用于调整时间,每次调整均对秒进行调整,若秒满60,则分加1,若分满60则时加1,时满24,则清零重新开始;
- 重载插入运算符 >> 用于输入(设定)时间;
- 重载插入运算符 << 用于输出时间。
#includeusing namespace std; class Time { friend ostream& operator<<(ostream& cout, Time& t); friend istream& operator>>(istream& cin, Time& t); public: Time(int h = 0, int m = 0, int s = 0) { m_H = h; m_M = m; m_S = s; } //前缀++运算符重载 Time& operator++(); //后缀++运算符的重载 Time operator++(int); private: int m_H; int m_M; int m_S; }; Time& Time::operator++() { if (++m_S >= 60) { m_S -= 60; ++m_M; } if (m_M >= 60) { m_M -= 60; ++m_H; } if (m_H >= 24) { m_H -= 24; } return *this; } Time Time::operator++(int) { Time temp= *this; m_S++; if (m_S >= 60) { m_S -= 60; ++m_M; } if (m_M >= 60) { m_M -= 60; ++m_H; } if (m_H >= 24) { m_H -= 24; } return temp; } ostream& operator<<(ostream& cout, Time& t) { cout << t.m_H << ":" << t.m_M << ":" << t.m_S << endl; return cout; } istream& operator>>(istream& cin, Time& t) { cin >> t.m_H >> t.m_M >> t.m_S; return cin; } int main() { Time t1;//实例化t1(利用前缀++) Time t2;//实例化t2(利用后缀++) cout << "请输入时间t1的时,分,秒" << endl; cin >> t1;//输入t1的时,分,秒 cout << "请输入时间t2的时,分,秒" << endl; cin >> t2;//输入t2的时,分,秒 int i = 0; int j = 0; cout << "t1的电子钟模型如下" << endl; for (i = 0; i < 61; i++) { ++t1; cout << t1 << endl; } cout << "t2的电子钟模型如下" << endl; for (j = 0; j < 61; j++) { t2++; cout << t2 << endl; } return 0; }
限于编者能力有限,请读者批评指正:)



