Create a class time with hours and minutes as its data members. Write a C++ program which has a member function to overload binary operator + to add two times. Also overload relational operator > to compare 2 times. It should also overload << (output) and >>(input) operator.
#include<iostream>
using namespace std;
class Time
{
private:
int hours;
int minutes;
public:
friend istream & operator >>(istream &,Time &);
friend ostream & operator <<(ostream &,Time &);
Time operator +(Time);
Time operator -(Time);
bool operator >(const Time);
};
istream & operator >>(istream &in,Time &t)
{
cout<<"enter time in hours and minutes :"<<endl;
in>>t.hours>>t.minutes;
return in;
}
Time Time :: operator+(Time t1)
{
Time temp;
temp.hours=hours+t1.hours;
temp.minutes=minutes+t1.minutes;
if (temp.minutes>=60)
{
temp.minutes -= temp.minutes-60;
temp.hours++;
}
return temp;
}
Time Time :: operator -(Time t1)
{
Time temp;
temp.hours = hours-t1.hours;
temp.minutes = minutes-t1.minutes;
return temp;
}
ostream & operator <<(ostream &out,Time &t)
{
// cout<<"time in hours and minutes :"<<endl;
out<<t.hours<<" hours "<<t.minutes<<" minutes "<<endl;
return out;
}
bool Time :: operator >(const Time t1)
{
if (hours>t1.hours)
{
return true;
}
if(hours == t1.hours && minutes == t1.minutes)
{
return true;
}
return false;
}
int main()
{
Time T1,T2,T3,T4;
cout<<"Enter first time :"<<endl;
cin>>T1;
cout<<"Enter second time :"<<endl;
cin>>T2;
T3=T1+T2;
cout<<T3;
T4=T1-T2;
cout<<T4;
if (T1>T2)
{
cout<<"first time is greater than other"<<endl;
}
else
cout<<"second time is greater than first one"<<endl;
}
output :
Enter first time :
enter time in hours and minutes :
4
45
Enter second time :
enter time in hours and minutes :
2
45
7 hours 30 minutes
2 hours 0 minutes
first time is greater than other
Comments
Post a Comment