Цель данной работы — Разработать программную систему для выполнения алгебраических операций над полиномами от трех переменных, а также освоение таких инструментов разработки программного обеспечения, как система контроля версий Git и фрэймворк для разработки автоматических тестов Google Test.
Выполнение работы предполагает решение следующих задач:
- Разработка структуры данных для хранения полиномов.
- Разработка интерфейса системы классов для работы с полиномами.
- Разработка интерфейса системы классов для работы с постфиксной формой.
- Разработка класса для работы с таблицами.
- Создание визуального интерфейса для удобной работы пользователя.
- Реализация нескольких простых тестов на базе Google Test.
- Обеспечение работоспособности тестов, создание примеров использования.
- Публикация исходных кодов в репозитории на GitHub.
- Демонстрация результатов работы заказчику.
- Система контроля версий Git.
- Фреймворк для написания автоматических тестов Google Test. Не требует установки, идет вместе с проектом-шаблоном.
- Среда разработки Microsoft Visual Studio.
- Утилита CMake для генерации проектов по сборке исходных кодов.
- Владимирова Юлия Александровна - VlJulia
- Чернова Наталья Алексеевна - ChernovaNatalya
- Страхов Андрей Андреевич - Astra-chan-desu
Структура проекта:
gtest
— библиотека Google Test.include
— директория для размещения заголовочных файлов.sln
— директория с файлами решений и проектов.src
— директория с исходными кодами (cpp-файлы).test
— директория с модульными тестами и основным приложением, инициализирующим запуск тестов.README.md
— информация о проекте, которую вы сейчас читаете.- Служебные файлы
.gitignore
— перечень расширений файлов, игнорируемых Git при добавлении файлов в репозиторий.CMakeLists.txt
— корневой файл для сборки проекта с помощью CMake. Может быть использован для генерации проекта в среде разработки, отличной от Microsoft Visual Studio.
- Полиномы должны храниться в виде списка.
- Полиномы должны храниться во всех таблицах одновременно. Ключом является имя.
- Таблиц должно быть 6 видов:
- линейная на массиве
- линейная на списке
- упорядоченная на массиве
- дерево (АВЛ или красно-черное)
- хэш-таблица 1
- хэш-таблица 2
- Обязательные операции над отдельным полиномом: вычисление в точке, умножение на константу, производная, интеграл.
- Обязательные операции в выражениях из полиномов: сложение, вычитание, умножение на константу, умножение полиномов, деление полиномов.
- Операции должны выполняться, используя постфиксную форму.
- Обязательные операции над таблицами:
- добавление полинома (во все сразу)
- удаление полинома (во всех сразу)
- поиск (только в активной таблице, выполняется в процессе вычисления выражений, составленных из имен полиномов)
- Активная (выбранная пользователем) таблица должна выводиться на экран в формате, как минимум, двух столбцов:
- имя полинома
- строковое представление полинома.
Хранит в себе коэффициент и степени. Может состоять только из трех переменных.
Полином хранится в виде линейного списка. Если коэффициент монома 0, то моном не добавляется в полином.
Все шесть таблиц наследуются от одного абстрактного класса. При добавлении в таблицу полинома, сохраняется его упрощенная запись. При удалении или добавлении полинома операция происходит во всех таблицах одновременно. Ключем записи является имя.