Построить иерархию классов для калькуляторов с разной функциональностью
- Простой калькулятор – выполняет 4 арифметические операции: сложение, вычитание, умножение, деление.
- Простой калькулятор с памятью – имеет также одну ячейку памяти и выполняет с данной ячейкой 4 операции: очистить ячейку памяти, записать в ячейку памяти текущее значение, увеличить или уменьшить значение в ячейке памяти на текущее значение.
- Инженерный калькулятор – выполняет 4 арифметические операции и вычисляет значения 3 функций: синус, экспонента, квадратный корень.
- Инженерный калькулятор с памятью – комбинация пунктов 2 и 3.
Создать консольное приложение с единственным аргументом командной строки – имя входного файла.
Структура входного файла:
- строка 1 - тип калькулятора,
- остальные строки - числа и операции для вычисления выражения, при этом каждое данное находится в одной строке.
Например, содержимое файла для выражения sin(2*10+5)-1, которое необходимо вычислить инженерным калькулятором, может иметь вид:
3
2
*
10
+
5
sin
-
1
Все исходные данные корректные. Если в исходных данных есть ошибка, то результат работы программы может быть любым, в том числе программа может завершиться аварийно.
В приложении создать экземпляр калькулятора заданного типа и с его помощью вычислить значение выражения, определяемого содержимым файла.
Требования:
- Использовать объектно-ориентированный подход для описания сущностей предметной области.
- Приложение должно быть консольным. Не использовать графический интерфейс!
- Предпочтения по выбору языка программирования: 1) Java; 2) C++; 3) другой ООП язык.
|