Требования к выполнению задач
- Все задания требуется выполнять в соответствии с соглашением о написании C# кода.
- Решение должно быть выполнено максимально оптимальным способом, с минимальным количеством выделения памяти.
Задание
При входе в приложение, пользователю предлагается пройти тест на математические знания.
Программа должна сгенерировать очередь из примеров с простейшими математическими операциями (суммирование, вычитание, умножение, деление) с двумя числами. Количество примеров в очереди генерируется при помощи рандома (от 4 до 8). Выбранная операция для примера генерируется случайно. Числа, учавствующие в примерах, генерируются случайно (должны помещаться в тип int). Предусмотреть выдачу примеров для деления такую, чтобы числа делились нацело.
Предусмотреть 3 уровня сложности.
Приложение должно вести статистику результатов решений пользователем (общее количество правильных/неправильных ответов, отдельно по каждой операции, отдельно по каждому уровню сложности; общий результирующий процент, отдельно по каждой операции, отдельно по каждому уровню сложности). Статистика должна сохраняться при выходе из приложения.
Пояснение
Создать базовый класс Арифметическая операция ArithmeticOperation
Создать 4 класса-наследника:
- Операция суммирования
Summation
- Операция вычитания
Substraction
- Операция умножения
Multiplication
- Операция деления
Division
Создать класс очередь операций. Класс должен отвечать за хранение очереди операций, возможность запускать операцию для пользователя, завершать операцию, выполненную пользователем.
Создать класс, отвечающий за запуск и завершение очереди.
Создать класс, отвечающий за сохранение и загрузку информации.
Создать класс, отвечающий за вывод статистики.