设计一个时间类Time,要求: (1)包含时(hour)、分(minute)和秒(second)私有数据成员。 (2)包含构造函数,重载关于一时间加上另一时间的加法运算符+、重载关于一时间减去另一时间

来源:互联网 发布:淘宝网货源网 编辑:程序博客网 时间:2024/05/24 04:26

#include<iostream>

using namespace std;

class Time

{

private:

int hour;

int minute;

int second;

public:

Time();

Time(int h, int m ,int s);

Time operator+(Time &t);

Time operator-(Time &t);

Time operator>>(Time &t);

Time operator<<(Time &t);

 

void setHour(int h )

{

hour=h;

}

void setMinute(int m)

{

minute=m;

}

void setSecond(int s)

{

second=s;

}

int getHour()

{

return hour;

}

int getMinute()

{

return minute;

}

int getSecond()

{

return second;

}

};

Time::Time()

{

hour=0;

minute=0;

second=0;

}

Time::Time(int h, int m ,int s)

{

hour=h;

minute=m;

second=s;

if(hour>=24)

hour=hour%24;

if(minute>=60)

hour=hour+1;

minute=minute%60;

if(second>60)

minute=minute+1;

second=second%60;

}

Time Time::operator +(Time &t)

{

return Time(hour+t.getHour(),minute+t.getMinute(),second+t.getSecond());

}

Time Time::operator-(Time &t)

{

return Time(hour-t.getHour(),minute-t.getMinute(),second-t.getSecond());

}

 

Time Time::operator >>(Time &t)

{

int h,m,s;

cout<<"inputTime1:"<<endl;

cin>>h>>m>>s;

hour=h;

minute=m;

second=s;

cout<<"inputTime2:"<<endl;

cin>>h>>m>>s;

t.setHour(h);

t.setMinute(m);

t.setSecond(s);

return Time(hour+t.getHour(),minute+t.getMinute(),second+t.getSecond());

}

Time Time::operator <<(Time &t)

{

 

cout<<t.getHour()<<':'<<t.getMinute()<<':'<<t.getSecond()<<endl;

return Time(hour+t.getHour(),minute+t.getMinute(),second+t.getSecond());

}

 

int main()

{

Time t1(1,2,3);

Time t2(2,3,4);

Time t3;

t3 = t1+t2;

t3 = t1>>t2;

t3<<(t1+t2);

}

运行结果:

inputTime1:

20 30 54

inputTime2:

14 25 25

10:56:19

Press any key to continue

原创粉丝点击