Описание проекта
Калькулятор «mysimplecalculator» (мой простой калькулятор) для расчетов разной степени сложности в командной строке Windows. На создание калькулятора вдохновила книга Бьярне Страуструпа по принципам программирования на C++ 11. В этом калькуляторе можно использовать:
- Числа с плавающей запятой.
- Следующие операторы:
«+» — сумма,
«—» — разность,
«*» — умножение,
«/» — деление,
«%» — по модулю,
«!» — факториал выражения,
«=» — присваивание (слева от переменной со знаком равенства) или сравнение (если слева номер выражения). - Скобки:
«{…}» — фигурные скобки (приоритет),
«(…)» — круглые скобки. - Любые пользовательские переменные, начинающиеся с латинских букв, содержащие латинские буквы, цифры и подчеркивание, в частности, постоянные переменные:
«pi» — числоℼ
(3.1415926535),
«e» — числоe
(2.7182818284). - Функции:
«sqrt(…)» — вычисление квадратного корня,
«pow(.,.)» — число, возведенное в степень,
«info» , «help» — получение справки.
Нажатие кнопки «Пробел» для разделения решений.
Нажатие кнопки «Enter» для выполнения команд.
Алгоритм работы калькулятора
Программа получает пользовательскую строку. Все символы пользовательской строки преобразуются в токены и сохраняются в векторе с лексемами. Каждый токен в векторе содержит информацию: идентификационный символ, значение, строку с именем переменной.
Затем среди лексем выполняются сложение, умножение и т.д. Также возможны операции с константами, такими как pi
и e
, и вычисление выражений, вложенных в программу, например sqrt() и pow()
. После каждой операции токены-операторы или токены-переменные принимают значение результата операции, а остальные токены, участвующие в операции, удаляются. Если между открытой и закрытой круглыми скобками находится только одна переменная, или операнд маркерной скобки с обеих сторон будет удален.
После всех операций в векторе с лексемами остается только лексема с результатом последней операции. Это значение является результатом вычислений, которые выдаются пользователю.
Файлы проекта
Проект состоит из 7 файлов:
- mysimplecalculator.exe — калькулятор.
- main.cpp — основной файл программы.
- header.h — основной файл заголовков.
- std_lib_facilities.h — файл заголовков для использования стандартных библиотек.
- calculatorcalculation.cpp — файл функции «calculator_calculation» для запуска калькулятора.
- calculatorclass.cpp — файл класса «Calculator».
- symboltable.cpp — файл класса «Symbol_table».