donmike25

midterm 2_1

Jan 11th, 2015
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. // Note: Implement parts (a), (b) & (c) as per the requirements of QUESTION_1.
  6. class Mass
  7. {
  8. private:
  9.     int m_Tonne;
  10.     int m_Kilo;
  11.     int m_Gram;
  12. public:
  13.     Mass(double inMass = 0.0){
  14.         m_Tonne = inMass;
  15.         m_Kilo = (inMass - m_Tonne) * 1000;
  16.         m_Gram = ((inMass - m_Tonne) * 1000 - m_Kilo) * 1000;
  17.     }
  18.     Mass operator-(const Mass &a){
  19.         Mass temp;
  20.        
  21.         temp.m_Gram = m_Gram - a.m_Gram;
  22.         temp.m_Kilo = m_Kilo - a.m_Kilo;
  23.         temp.m_Tonne = m_Tonne - a.m_Tonne;
  24.  
  25.         if(temp.m_Tonne > 0){
  26.             if(temp.m_Gram < 0){
  27.                 temp.m_Gram += 1000;
  28.                 temp.m_Kilo--;
  29.             }
  30.             if(temp.m_Kilo < 0){
  31.                 temp.m_Kilo += 1000;
  32.                 temp.m_Tonne--;
  33.             }
  34.         }
  35.         if(temp.m_Tonne < 0){
  36.             if(temp.m_Gram > 0){
  37.                 temp.m_Gram = abs(temp.m_Gram -= 1000);
  38.                 temp.m_Kilo++;
  39.             }
  40.             if(temp.m_Kilo > 0){
  41.                 temp.m_Kilo = abs(temp.m_Kilo -= 1000);
  42.                 temp.m_Tonne++;
  43.             }
  44.         }
  45.  
  46.         return temp;
  47.     }
  48.      friend ostream &operator<<(ostream &out, const Mass &a){
  49.         out << a.m_Tonne << " t, " << a.m_Kilo << " kg and " << a.m_Gram << " g";
  50.         return out;
  51.     }
  52. };
  53.  
  54. // Driver program (will not compile until you complete parts (a), (b) & (c) of QUESTION 1.
  55. // DO NOT Modify the main() function.
  56. int main()
  57. {
  58.     Mass massOne(6.2004);
  59.     Mass massTwo(4.3659);
  60.     Mass subMass1, subMass2;
  61.  
  62.     subMass1 = massOne - massTwo;
  63.     subMass2 = massTwo - massOne;
  64.  
  65.     cout << "Mass 1 = " << massOne << endl;
  66.     cout << "Mass 2 = " << massTwo << endl;
  67.     cout << "Mass 1 - Mass 2 = " << subMass1 << endl;
  68.     cout << "Mass 2 - Mass 1 = " << subMass2 << endl;
  69.  
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment