Guest User

Untitled

a guest
Jun 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. void inputArray(int &size, int*& array, bool &was)
  4. {
  5. std::cout << "Input array size: ";
  6. std::cin >> size;
  7.  
  8. std::cout << "Input integer array of " << size << " size:" << std::endl;
  9.  
  10. if (was)
  11. {
  12. delete[] array;
  13. }
  14. array = new int[size];
  15. was = true;
  16.  
  17. for (int i = 0; i < size; ++i)
  18. {
  19. std::cout << "item " << i << ": ";
  20. std::cin >> array[i];
  21. }
  22. }
  23.  
  24. void printArray(int &size, int*& array, bool &was)
  25. {
  26. if (was)
  27. {
  28. std::cout << "Integer array [";
  29. std::cout << array[0];
  30. for (int i = 1; i < size; ++i)
  31. {
  32. std::cout << ", " << array[i];
  33. }
  34. std::cout << "]" << std::endl;
  35. }
  36. }
  37.  
  38. void sumArray(int &size, int*& array, bool &was)
  39. {
  40. if (was)
  41. {
  42. int result = 0;
  43. for (int i = 0; i < size; ++i)
  44. {
  45. result += array[i];
  46. }
  47. std::cout << "Sum of items is " << result << std::endl;
  48. }
  49. }
  50.  
  51. void quit(int* array, bool &was)
  52. {
  53. if (was)
  54. {
  55. delete[] array;
  56. }
  57. }
  58.  
  59. class Command
  60. {
  61. public:
  62. virtual void handle() = 0;
  63. };
  64.  
  65. class Input : public Command
  66. {
  67. int& size;
  68. int*& array;
  69. bool& was;
  70. public:
  71. Input(int& _size, int*& _array, bool& _was)
  72. :size(_size), array(_array), was(_was)
  73. {}
  74.  
  75. virtual void handle()
  76. {
  77. inputArray(size, array, was);
  78. }
  79. };
  80.  
  81. int main()
  82. {
  83. bool was = false;
  84. int* array = 0;
  85. int size = 0;
  86.  
  87. while (true)
  88. {
  89. int select;
  90.  
  91. std::cin >> select;
  92.  
  93. switch (select)
  94. {
  95. case 1:
  96. {
  97. Input command(size, array, was);
  98. command.handle();
  99.  
  100. break;
  101. }
  102. case 2:
  103. {
  104. printArray(size, array, was);
  105.  
  106. break;
  107. }
  108. case 3:
  109. {
  110. sumArray(size, array, was);
  111.  
  112. break;
  113. }
  114. case 4:
  115. {
  116. quit(array, was);
  117.  
  118. return 0;
  119. }
  120. }
  121. }
  122. return 0;
  123. }
Add Comment
Please, Sign In to add comment