实验内容:
设计一个时间类Time,要求:
(1)包含时(hour)、分(minute)和秒(second)私有数据成员。
(2)包含构造函数,重载关于一时间加上另一时间的加法运算符+、重载关于一时间减去另一时间的减加运算符-、重载输出运算符<<与输入运算符>>等。
#include <iostream.h>
//友元重载函数在VC++6.0中用.h的头文件
class Time
{
public:
Time(int h=0,int m=0,int s=0)
{
hour=h;
minute=m;
second=s;
}
Time operator+(Time b)
{
Time temp;
temp.hour=hour+b.hour;
temp.minute=minute+b.minute;
temp.second=second+b.second;
if(temp.minute>=60)
{
temp.hour++;
temp.minute-=60;
}
if(temp.second>=60)
{
temp.minute++;
temp.second-=60;
}
return temp;
}
Time operator-(Time b)
{
Time temp;
temp.hour=hour-b.hour;
temp.minute=minute-b.minute;
temp.second=second-b.second;
if (temp.second<0)
{
temp.minute--;
temp.second+=60;
}
if (temp.minute<0)
{
temp.hour--;
temp.minute+=60;
}
if(temp.hour<0)
{
temp.hour+=24;
}
return temp;
}
friend ostream &operator<<(ostream &stream,Time &ob);
friend istream &operator>>(istream &stream,Time &ob);
private:
int hour;
int minute;
int second;
};
ostream &operator<<(ostream &stream,Time &ob)
{
cout<<ob.hour<<":"<<ob.minute<<":"<<ob.second<<endl;
return stream;
}
istream &operator>>(istream &input,Time &ob)
{
cout<<"请输入时间:";
input>>ob.hour;
input>>ob.minute;
input>>ob.second;
return input;
}
int main()
{
Time time1,time2,time3,time4;
cin>>time1;
cin>>time2;
cout<<endl<<"输入的时间为:"<<endl;
cout<<time1;
cout<<time2;
time3=time1+ time2;
time4=time1- time2;
cout<<"时间相加结果为:";
cout<<time3;
cout<<"时间相减结果为:";
cout<<time4;
return 0;
}