chiva13

Untitled

Aug 31st, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.02 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Distance
  6. {
  7. private:
  8.     int feet;
  9.     float inches;
  10. public:
  11. Distance()
  12. {
  13.     feet=0;
  14.     inches=0.0;
  15. }
  16.  
  17. Distance(int ft, float inc )
  18. {
  19.     feet=ft;
  20.     inches=inc;
  21. }
  22.  
  23. void get_distance()
  24. {
  25.     cout << "write feets: \n";
  26.     cin >> feet;
  27.     cout << "write inches: \n";
  28.     cin >> inches;
  29. }
  30.  
  31. void show_distance()
  32. {
  33.     cout << feet << "\'" << inches << '\"'<<endl;
  34. }
  35.  
  36. Distance operator+(Distance d2) const
  37. {
  38.     int f = feet + d2.feet;
  39.     float i = inches + d2.inches;
  40.     if (i >=12.0){
  41.         i -= 12.0;
  42.         f++;
  43.     }
  44.     return Distance(f,i);
  45. }
  46.  
  47. Distance operator-(Distance d2) const
  48. {
  49.     if ( (d2.feet>feet) || ( (d2.feet==feet) && (d2.inches>inches) ) ){
  50.         cout<<"subtraction is not possible"<<endl;
  51.         return Distance(0,0);
  52.     }
  53.     else
  54.     {
  55.     int f = feet - d2.feet;
  56.     float i=0;
  57.     if (d2.inches > inches){
  58.         i += 12.0;
  59.         f--;
  60.     }
  61.     i  = i+inches - d2.inches;
  62.     return Distance(f,i);
  63.     }
  64. }
  65.  
  66. Distance operator*(int a)
  67. {
  68.     inches=inches*a;
  69.     feet=feet*a;
  70.     if(inches>=12){
  71.         inches -= 12.0;
  72.         feet++;
  73.     }
  74.     return Distance(feet,inches);
  75. }
  76. Distance operator/(int a)
  77. {
  78.     inches=inches+feet*12;
  79.     feet=0;
  80.     inches=inches/2;
  81.     while(inches>=12){
  82.         inches -= 12.0;
  83.         feet++;
  84.     }
  85.     return Distance(feet,inches);
  86. }
  87.  
  88. void operator+=(Distance d2)
  89. {
  90.     int f = feet + d2.feet;
  91.     float i = inches + d2.inches;
  92.     if (i >=12.0){
  93.         i -= 12.0;
  94.         f++;
  95.     }
  96.     feet=f;
  97.     inches=i;
  98. }
  99.  
  100. void operator-=(Distance d2)
  101. {
  102.     if ((d2.feet>feet) || ((d2.feet==feet)&&(d2.inches>inches))){
  103.         cout<<"subtraction is not possible"<<endl;
  104.     }
  105.     else
  106.     {
  107.         int f = feet - d2.feet;
  108.         float i=0;
  109.         if (d2.inches > inches){
  110.             i += 12.0;
  111.             f--;
  112.         }
  113.         i  = i+inches - d2.inches;
  114.         feet=f;
  115.         inches=i;
  116.     }
  117. }
  118.  
  119. void operator*=(int a)
  120. {
  121.     inches=inches*a;
  122.     feet=feet*a;
  123.     if(inches>=12){
  124.         inches -= 12.0;
  125.         feet++;
  126.     }
  127. }
  128.  
  129. void operator/=(int a)
  130. {
  131.     inches=inches+feet*12;
  132.     feet=0;
  133.     inches=inches/2;
  134.     while(inches>=12){
  135.         inches -= 12.0;
  136.         feet++;
  137.     }
  138. }
  139.  
  140. bool operator<( Distance s )
  141. {
  142.     if ( feet<s.feet )
  143.         return true;
  144.     else if ( (feet==s.feet)&&(inches<s.inches) )
  145.         return true;
  146.     else return false;
  147. }
  148. bool operator>( Distance s )
  149. {
  150.     if ( feet>s.feet )
  151.         return true;
  152.     else if ( (feet==s.feet)&&(inches>s.inches) )
  153.         return true;
  154.     else return false;
  155. }
  156.  
  157. bool operator<=( Distance s )
  158. {
  159.     if ( feet<s.feet )
  160.         return true;
  161.     else if ( (feet==s.feet)&&(inches<=s.inches) )
  162.         return true;
  163.     else return false;
  164. }
  165. bool operator>=( Distance s )
  166. {
  167.     if ( feet>s.feet )
  168.         return true;
  169.     else if ( (feet==s.feet)&&(inches>=s.inches) )
  170.         return true;
  171.     else return false;
  172. }
  173.  
  174. bool operator==( Distance s)
  175. {
  176.     if ((feet==s.feet)||(inches==s.inches))
  177.         return true;
  178.     else return false;
  179. }
  180.  
  181. bool operator!=( Distance s)
  182. {
  183.     if (feet!=s.feet)
  184.         return true;
  185.     if (inches!=s.inches)
  186.         return true;
  187.     else return false;
  188. }
  189.  
  190. ~Distance() {}
  191. };
  192. int main()
  193. {
  194.     Distance x;
  195.     Distance y;
  196.  
  197.     x.get_distance();
  198.     x.show_distance();
  199.     y.get_distance();
  200.     y.show_distance();
  201.     x-=y;
  202.     x.show_distance();
  203.    
  204.     return 0;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment