scientific and bank calculator
Необходимо реализовать SmartCalc v2.0:
- Программа должна быть разработана на языке C++ стандарта C++17
- При написании кода необходимо придерживаться Google Style
- Классы должны быть реализованы внутри пространства имен
s21 - Подготовить полное покрытие unit-тестами модулей, связанных с вычислением выражений, c помощью библиотеки GTest
- Сборка программы должна быть настроена с помощью Makefile со стандартным набором целей для GNU-программ: all, install, uninstall, clean, dvi, dist, tests. Установка должна вестись в любой другой произвольный каталог
- Реализация с графическим пользовательским интерфейсом, на базе любой GUI-библиотеки с API для C++17.
- Программа должна быть реализована с использованием паттерна MVC.
- На вход программы могут подаваться как целые числа, так и вещественные числа, записанные и через точку, и в экспоненциальной форме записи
- Вычисление должно производится после полного ввода вычисляемого выражения и нажатия на символ
= - Вычисление произвольных скобочных арифметических выражений в инфиксной нотации
- Вычисление произвольных скобочных арифметических выражений в инфиксной нотации с подстановкой значения переменной
xв виде числа - Скобочные арифметические выражения в инфиксной нотации должны поддерживать все арифметические операции и основные математические функции.
- Построение графика функции, заданной с помощью выражения в инфиксной нотации с переменной
x(с координатными осями, отметкой используемого масштаба и сеткой с адаптивным шагом) - Проверяемая точность дробной части - минимум 7 знаков после запятой
- У пользователя должна быть возможность ввода до 255 символов
- Специальный режим "кредитный калькулятор":
- Вход: общая сумма кредита, срок, процентная ставка, тип (аннуитетный, дифференцированный)
- Выход: ежемесячный платеж, переплата по кредиту, общая выплата
- Специальный режим "калькулятор доходности вкладов":
- Вход: сумма вклада, срок размещения, процентная ставка, налоговая ставка, периодичность выплат, капитализация процентов, список пополнений, список частичных снятий
- Выход: начисленные проценты, сумма налога, сумма на вкладе к концу срока
- Сборка и исполнение программы тестировалось на Ubuntu и macOs
- В качестве GUI-библиотеки использовалась Qt6
- Сборка осуществлялась через qmake
- Для отображения графика использовалась сторонняя библиотека qcustomplot. При сборке она может выдавать предупреждения, но собирается без ошибок и работает.