设计一个时间类,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现2个时间的相加。要求: (1)小时的时间范围限制在大于等于0;(2)分的时间范围为0~59分;(3)秒的时间范围为0~59秒。 #include <iostream> using namespace std; class Time { private: int hours,minutes, seconds; public: Time(int h=0, int m=0, int s=0); Time operator + (Time &); void DispTime(); }; /* 请在这里填写答案 */ int main() { Time tm1(8,75,50),tm2(0,6,16), tm3; tm3=tm1+tm2; tm3.DispTime(); return 0; } 输出: 在这里给出相应的输出。例如: 9h:22m:6s
时间: 2024-03-06 22:51:23 浏览: 132
定义一个时间类Time,它能提供由时分秒组成的时间。
5星 · 资源好评率100%
答案如下:
```cpp
#include <iostream>
using namespace std;
class Time {
private:
int hours, minutes, seconds;
public:
Time(int h=0, int m=0, int s=0);
Time operator + (Time &);
void DispTime();
};
Time::Time(int h, int m, int s) {
hours = h;
minutes = m;
seconds = s;
if (minutes >= 60) {
hours += minutes / 60;
minutes %= 60;
}
if (seconds >= 60) {
minutes += seconds / 60;
seconds %= 60;
}
if (hours < 0) {
hours = 0;
}
if (minutes < 0) {
minutes = 0;
}
if (seconds < 0) {
seconds = 0;
}
}
Time Time::operator + (Time &t) {
Time sum;
sum.seconds = seconds + t.seconds;
sum.minutes = minutes + t.minutes;
sum.hours = hours + t.hours;
if (sum.minutes >= 60) {
sum.hours += sum.minutes / 60;
sum.minutes %= 60;
}
if (sum.seconds >= 60) {
sum.minutes += sum.seconds / 60;
sum.seconds %= 60;
}
return sum;
}
void Time::DispTime() {
cout << hours << "h:" << minutes << "m:" << seconds << "s" << endl;
}
int main() {
Time tm1(8, 75, 50), tm2(0, 6, 16), tm3;
tm3 = tm1 + tm2;
tm3.DispTime();
return 0;
}
```
输出:
```
9h:22m:6s
```
在这个时间类中,我们重载了加号操作符,实现了两个时间对象的相加。在构造函数中,我们对输入的时间进行了范围限制,确保了时间的合法性。最后,我们通过DispTime函数将相加后的时间输出。
阅读全文