Skip to content

VlJulia/s4_Lab1_AlgPol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа №1 : Алгебра полиномов

Цели и задачи

Цель данной работы — Разработать программную систему для выполнения алгебраических операций над полиномами от трех переменных, а также освоение таких инструментов разработки программного обеспечения, как система контроля версий Git и фрэймворк для разработки автоматических тестов Google Test.

Выполнение работы предполагает решение следующих задач:

  1. Разработка структуры данных для хранения полиномов.
  2. Разработка интерфейса системы классов для работы с полиномами.
  3. Разработка интерфейса системы классов для работы с постфиксной формой.
  4. Разработка класса для работы с таблицами.
  5. Создание визуального интерфейса для удобной работы пользователя.
  6. Реализация нескольких простых тестов на базе Google Test.
  7. Обеспечение работоспособности тестов, создание примеров использования.
  8. Публикация исходных кодов в репозитории на GitHub.
  9. Демонстрация результатов работы заказчику.

Используемые инструменты

  • Система контроля версий Git.
  • Фреймворк для написания автоматических тестов Google Test. Не требует установки, идет вместе с проектом-шаблоном.
  • Среда разработки Microsoft Visual Studio.
  • Утилита CMake для генерации проектов по сборке исходных кодов.

Состав команды

  1. Владимирова Юлия Александровна - VlJulia
  2. Чернова Наталья Алексеевна - ChernovaNatalya
  3. Страхов Андрей Андреевич - Astra-chan-desu

Общая структура проекта

Структура проекта:

  • gtest — библиотека Google Test.
  • include — директория для размещения заголовочных файлов.
  • sln — директория с файлами решений и проектов.
  • src — директория с исходными кодами (cpp-файлы).
  • test — директория с модульными тестами и основным приложением, инициализирующим запуск тестов.
  • README.md — информация о проекте, которую вы сейчас читаете.
  • Служебные файлы
    • .gitignore — перечень расширений файлов, игнорируемых Git при добавлении файлов в репозиторий.
    • CMakeLists.txt — корневой файл для сборки проекта с помощью CMake. Может быть использован для генерации проекта в среде разработки, отличной от Microsoft Visual Studio.

Требования к программе

  1. Полиномы должны храниться в виде списка.
  2. Полиномы должны храниться во всех таблицах одновременно. Ключом является имя.
  3. Таблиц должно быть 6 видов:
    • линейная на массиве
    • линейная на списке
    • упорядоченная на массиве
    • дерево (АВЛ или красно-черное)
    • хэш-таблица 1
    • хэш-таблица 2
  4. Обязательные операции над отдельным полиномом: вычисление в точке, умножение на константу, производная, интеграл.
  5. Обязательные операции в выражениях из полиномов: сложение, вычитание, умножение на константу, умножение полиномов, деление полиномов.
  6. Операции должны выполняться, используя постфиксную форму.
  7. Обязательные операции над таблицами:
    • добавление полинома (во все сразу)
    • удаление полинома (во всех сразу)
    • поиск (только в активной таблице, выполняется в процессе вычисления выражений, составленных из имен полиномов)
  8. Активная (выбранная пользователем) таблица должна выводиться на экран в формате, как минимум, двух столбцов:
    1. имя полинома
    2. строковое представление полинома.

Требования к различным системам класса

Моном

Хранит в себе коэффициент и степени. Может состоять только из трех переменных.

Полином

Полином хранится в виде линейного списка. Если коэффициент монома 0, то моном не добавляется в полином.

Таблица

Все шесть таблиц наследуются от одного абстрактного класса. При добавлении в таблицу полинома, сохраняется его упрощенная запись. При удалении или добавлении полинома операция происходит во всех таблицах одновременно. Ключем записи является имя.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published