Skip to content

denismalchenko/calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartCalc v2.0

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. При сборке она может выдавать предупреждения, но собирается без ошибок и работает.

About

scientific and bank calculator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages