Guest User

Untitled

a guest
Mar 18th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. using namespace std;
  6.  
  7. class Number
  8. {
  9. public:
  10. Number()
  11. {
  12. value = 0;
  13. }
  14.  
  15. int getValue() const
  16. {
  17. return value;
  18. }
  19.  
  20. protected:
  21. int value;
  22. };
  23.  
  24. class RomanNumber : public Number
  25. {
  26. public:
  27. RomanNumber(const char *c)
  28. {
  29. if (strcmp(c, "I") == 0)
  30. value = 1;
  31. else if (strcmp(c, "II") == 0)
  32. value = 2;
  33. else if (strcmp(c, "III") == 0)
  34. value = 3;
  35. else if (strcmp(c, "IV") == 0)
  36. value = 4;
  37. else if (strcmp(c, "V") == 0)
  38. value = 5;
  39. else if (strcmp(c, "VI") == 0)
  40. value = 6;
  41. else if (strcmp(c, "VII") == 0)
  42. value = 7;
  43. else if (strcmp(c, "VIII") == 0)
  44. value = 8;
  45. else if (strcmp(c, "IX") == 0)
  46. value = 9;
  47. else if (strcmp(c, "X") == 0)
  48. value = 10;
  49. }
  50. };
  51.  
  52. class ArabicNumber : public Number
  53. {
  54. public:
  55. ArabicNumber(const char *c)
  56. {
  57. value = atoi(c);
  58. }
  59. };
  60.  
  61. int main()
  62. {
  63. Number *l, *r;
  64. char x[256], y[256], oper;
  65. int rezult;
  66.  
  67. cin >> x >> oper >> y;
  68.  
  69. if (x[0] >= '0' && x[0] <= '9')
  70. l = new ArabicNumber(x);
  71. else
  72. l = new RomanNumber(x);
  73.  
  74. if (y[0] >= '0' && y[0] <= '9')
  75. r = new ArabicNumber(y);
  76. else
  77. r = new RomanNumber(y);
  78.  
  79. switch (oper)
  80. {
  81. case '+':
  82. rezult = l->getValue() + r->getValue();
  83. break;
  84.  
  85. case '-':
  86. rezult = l->getValue() - r->getValue();
  87. break;
  88.  
  89. case '*':
  90. rezult = l->getValue() * r->getValue();
  91. break;
  92.  
  93. case '/':
  94. rezult = l->getValue() / r->getValue();
  95. break;
  96. }
  97.  
  98. cout << l->getValue() << ' ' << oper << ' ' << r->getValue() << " = " << rezult << endl;
  99. delete l;
  100. delete r;
  101.  
  102. system("pause");
  103. return 0;
  104. }
Add Comment
Please, Sign In to add comment