Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Distance
- {
- private:
- int feet;
- float inches;
- public:
- Distance()
- {
- feet=0;
- inches=0.0;
- }
- Distance(int ft, float inc )
- {
- feet=ft;
- inches=inc;
- }
- void get_distance()
- {
- cout << "write feets: \n";
- cin >> feet;
- cout << "write inches: \n";
- cin >> inches;
- }
- void show_distance()
- {
- cout << feet << "\'" << inches << '\"'<<endl;
- }
- Distance operator+(Distance d2) const
- {
- int f = feet + d2.feet;
- float i = inches + d2.inches;
- if (i >=12.0){
- i -= 12.0;
- f++;
- }
- return Distance(f,i);
- }
- Distance operator-(Distance d2) const
- {
- if ( (d2.feet>feet) || ( (d2.feet==feet) && (d2.inches>inches) ) ){
- cout<<"subtraction is not possible"<<endl;
- return Distance(0,0);
- }
- else
- {
- int f = feet - d2.feet;
- float i=0;
- if (d2.inches > inches){
- i += 12.0;
- f--;
- }
- i = i+inches - d2.inches;
- return Distance(f,i);
- }
- }
- Distance operator*(int a)
- {
- inches=inches*a;
- feet=feet*a;
- if(inches>=12){
- inches -= 12.0;
- feet++;
- }
- return Distance(feet,inches);
- }
- Distance operator/(int a)
- {
- inches=inches+feet*12;
- feet=0;
- inches=inches/2;
- while(inches>=12){
- inches -= 12.0;
- feet++;
- }
- return Distance(feet,inches);
- }
- void operator+=(Distance d2)
- {
- int f = feet + d2.feet;
- float i = inches + d2.inches;
- if (i >=12.0){
- i -= 12.0;
- f++;
- }
- feet=f;
- inches=i;
- }
- void operator-=(Distance d2)
- {
- if ((d2.feet>feet) || ((d2.feet==feet)&&(d2.inches>inches))){
- cout<<"subtraction is not possible"<<endl;
- }
- else
- {
- int f = feet - d2.feet;
- float i=0;
- if (d2.inches > inches){
- i += 12.0;
- f--;
- }
- i = i+inches - d2.inches;
- feet=f;
- inches=i;
- }
- }
- void operator*=(int a)
- {
- inches=inches*a;
- feet=feet*a;
- if(inches>=12){
- inches -= 12.0;
- feet++;
- }
- }
- void operator/=(int a)
- {
- inches=inches+feet*12;
- feet=0;
- inches=inches/2;
- while(inches>=12){
- inches -= 12.0;
- feet++;
- }
- }
- bool operator<( Distance s )
- {
- if ( feet<s.feet )
- return true;
- else if ( (feet==s.feet)&&(inches<s.inches) )
- return true;
- else return false;
- }
- bool operator>( Distance s )
- {
- if ( feet>s.feet )
- return true;
- else if ( (feet==s.feet)&&(inches>s.inches) )
- return true;
- else return false;
- }
- bool operator<=( Distance s )
- {
- if ( feet<s.feet )
- return true;
- else if ( (feet==s.feet)&&(inches<=s.inches) )
- return true;
- else return false;
- }
- bool operator>=( Distance s )
- {
- if ( feet>s.feet )
- return true;
- else if ( (feet==s.feet)&&(inches>=s.inches) )
- return true;
- else return false;
- }
- bool operator==( Distance s)
- {
- if ((feet==s.feet)||(inches==s.inches))
- return true;
- else return false;
- }
- bool operator!=( Distance s)
- {
- if (feet!=s.feet)
- return true;
- if (inches!=s.inches)
- return true;
- else return false;
- }
- ~Distance() {}
- };
- int main()
- {
- Distance x;
- Distance y;
- x.get_distance();
- x.show_distance();
- y.get_distance();
- y.show_distance();
- x-=y;
- x.show_distance();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment