Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- void inputArray(int &size, int*& array, bool &was)
- {
- std::cout << "Input array size: ";
- std::cin >> size;
- std::cout << "Input integer array of " << size << " size:" << std::endl;
- if (was)
- {
- delete[] array;
- }
- array = new int[size];
- was = true;
- for (int i = 0; i < size; ++i)
- {
- std::cout << "item " << i << ": ";
- std::cin >> array[i];
- }
- }
- void printArray(int &size, int*& array, bool &was)
- {
- if (was)
- {
- std::cout << "Integer array [";
- std::cout << array[0];
- for (int i = 1; i < size; ++i)
- {
- std::cout << ", " << array[i];
- }
- std::cout << "]" << std::endl;
- }
- }
- void sumArray(int &size, int*& array, bool &was)
- {
- if (was)
- {
- int result = 0;
- for (int i = 0; i < size; ++i)
- {
- result += array[i];
- }
- std::cout << "Sum of items is " << result << std::endl;
- }
- }
- void quit(int* array, bool &was)
- {
- if (was)
- {
- delete[] array;
- }
- }
- class Command
- {
- public:
- virtual void handle() = 0;
- };
- class Input : public Command
- {
- int& size;
- int*& array;
- bool& was;
- public:
- Input(int& _size, int*& _array, bool& _was)
- :size(_size), array(_array), was(_was)
- {}
- virtual void handle()
- {
- inputArray(size, array, was);
- }
- };
- int main()
- {
- bool was = false;
- int* array = 0;
- int size = 0;
- while (true)
- {
- int select;
- std::cin >> select;
- switch (select)
- {
- case 1:
- {
- Input command(size, array, was);
- command.handle();
- break;
- }
- case 2:
- {
- printArray(size, array, was);
- break;
- }
- case 3:
- {
- sumArray(size, array, was);
- break;
- }
- case 4:
- {
- quit(array, was);
- return 0;
- }
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment