定义一个Time类,包含: 私有数据成员: (1)表示时间的时(hour)分(minute)秒(second),均为整型量; (2)表示基准时间的时(baseHour)分(baseMinute)秒(baseSecond),均为整型量,而且必须是静态的。基准时间的初始值为1小时10分10秒。 (3)静态成员函数static int timeToSecond(Time t); 将时间t转化为总秒数,返回该秒数。 公有成员函数: (1)构造函数 Time(int=0, int=0, int=0); 完成对时间的初始化; (2)静态成员函数static int timeBaseDiffence(Time t); 计算时间t与基准时间相差的总秒数,返回该秒数。提示:将时分秒表示的时间转化为总秒数表示的时间。 (3)void show(); 以hour:minute:second 格式输出时间,例如1:10:10,表示1小时10分10秒。 友元函数: (1)friend int diffence(Time t1, Time t2); 返回t1和t2以秒为单位的时间差(t1-t2),返回该差值。要求调用成员函数timeToSecond()分别将t1和t2转换成总秒数,然后计算差值。 主函数: (1)定义时间对象t1,初始化为1小时11分2秒。 (2)定义时间对象t2,初始化为1小时12分50秒。 (3)输出时间t1和t2。 (4)计算并输出t1与基准时间的差值,即(t1-基准时间),正确结果是52秒。 (5)计算并输出t2与基准时间的差值,即(t2-基准时间),正确结果是160秒。 (6)计算并输出t1与t2的时间差,即(t1-t2),正确结果是 -108秒
时间: 2023-12-14 11:36:21 浏览: 136
代码如下:
```c++
#include<iostream>
using namespace std;
class Time{
private:
int hour, minute, second;
static int baseHour, baseMinute, baseSecond;
public:
Time(int h=0, int m=0, int s=0){
hour = h;
minute = m;
second = s;
}
static int timeToSecond(Time t){
return t.hour*3600 + t.minute*60 + t.second;
}
static int timeBaseDiffence(Time t){
int totalSeconds = timeToSecond(t);
int baseTotalSeconds = timeToSecond(Time(baseHour, baseMinute, baseSecond));
return totalSeconds - baseTotalSeconds;
}
void show(){
cout << hour << ":" << minute << ":" << second << endl;
}
friend int diffence(Time t1, Time t2);
};
int Time::baseHour = 1;
int Time::baseMinute = 10;
int Time::baseSecond = 10;
int diffence(Time t1, Time t2){
int totalSeconds1 = Time::timeToSecond(t1);
int totalSeconds2 = Time::timeToSecond(t2);
return totalSeconds1 - totalSeconds2;
}
int main(){
Time t1(1, 11, 2);
Time t2(1, 12, 50);
cout << "t1: ";
t1.show();
cout << "t2: ";
t2.show();
cout << "t1与基准时间的差值: " << Time::timeBaseDiffence(t1) << "秒" << endl;
cout << "t2与基准时间的差值: " << Time::timeBaseDiffence(t2) << "秒" << endl;
cout << "t1与t2的时间差: " << diffence(t1, t2) << "秒" << endl;
return 0;
}
```
输出结果如下:
```
t1: 1:11:2
t2: 1:12:50
t1与基准时间的差值: 52秒
t2与基准时间的差值: 160秒
t1与t2的时间差: -108秒
```
阅读全文