Advertisement
TheWhiteFang

Revision_Notes [QP2-1][UML class diagram]

Feb 2nd, 2015
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. //pastebin.com/u/thewhitefang
  2. //revision class UML
  3. //Question P2-1 solution
  4.  
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. class Info
  10. {
  11. public:
  12.     int m_X;
  13.     int m_Y;
  14. };
  15.  
  16. //interface class
  17. class ICalculator
  18. {
  19. public:
  20.      virtual int Calculate(Info input)=0;
  21. };
  22.  
  23. class Adder : public ICalculator{
  24. public:
  25.     int Calculate(Info input)
  26.     {
  27.         int temp;
  28.         temp = input.m_X + input.m_Y;
  29.         return temp;
  30.     }
  31.  
  32. };
  33.  
  34. class Multiplier : public ICalculator{
  35. public:
  36.     int Calculate(Info input)
  37.     {
  38.         int temp;
  39.         temp = input.m_X*input.m_Y;
  40.         return temp;
  41.    
  42.     }
  43.  
  44. };
  45.  
  46. class Problem
  47. {
  48. private:
  49.     Info m_Param;
  50.     ICalculator* m_pCalculator;
  51.  
  52. public:
  53.     void SetAttributes(Info inParam)
  54.     {
  55.         m_Param = inParam;
  56.     }
  57.  
  58.     void SetCalculator(ICalculator* pIn)
  59.     {
  60.         m_pCalculator = pIn;
  61.     }
  62.  
  63.     int Calculate()
  64.     {
  65.         return m_pCalculator->Calculate(m_Param);
  66.        
  67.     }
  68. };
  69.  
  70.  
  71.  
  72. int main(){
  73.  
  74.     Info obj;
  75.     Problem obj2;
  76.  
  77.     /*int x, y;
  78.     cout << "Enter X value";
  79.     cin >> x;
  80.     cout << "Enter Y value: ";
  81.     cin >> y;*/
  82.  
  83.     obj.m_X = 10;
  84.     obj.m_Y = 33;
  85.  
  86.     obj2.SetAttributes(obj);//2
  87.  
  88.  
  89.     ICalculator *pObj = new Adder();
  90.     obj2.SetCalculator(pObj);
  91.  
  92.  
  93.     cout << "Addition Result: "<<obj2.Calculate() <<endl;
  94.  
  95.     delete pObj;
  96.  
  97.     pObj = new Multiplier();
  98.     obj2.SetCalculator(pObj);
  99.  
  100.     cout << "Multiplication Result: "<<obj2.Calculate() <<endl;
  101.    
  102.     delete pObj;
  103.    
  104.    
  105.  
  106.  
  107.  
  108.     return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement