Наименование программы: "Polymath"
Программа предназначена для выполнения алгебраических операций над полиномами с тремя переменными.
- Полиномы хранятся в виде списка;
- Полиномы хранятся во всех таблицах одновременно, ключом является имя;
- Таблиц должно быть 6 видов:
- Линейная на массиве,
- Линейная на списке,
- Упорядоченная на массиве,
- На поисковом дереве (АВЛ),
- Хеш-таблица с открытым перемешиванием,
- Хеш-таблица со списками (Метод цепочек);
- Активная (выбранная пользователем) таблица должна выводиться на экран в формате двух столбов:
- Имя полинома,
- Строковое представление полинома;
Программа должна обеспечивать возможность выполнения перечисленных функций:
- Операции над отдельным полиномом:
- Вычисление в точке,
- Умножение на константу,
- Производная;
- Операции в выражениях из полиномов:
- Сложение,
- Вычитание,
- Умножение на константу,
- Умножение полиномов,
- Деление полиномов;
- операции должны выполняться, используя постфиксную форму.
- операции над таблицами:
- Добавление полинома (Во всех сразу),
- Удаление полинома (Во всех сразу),
- Поиск (Только в активной таблице; Выполняется в процессе вычисления выражений, составленных из имен полиномов);
Отказы программы вследствие некорректных действий пользователя при взаимодействии с программой недопустимы.
Интерфейс. Линейная таблица на массиве. Таблица на поисковом дереве (АВЛ).
Полином. Линейная таблица на списке. Хеш-таблица с открытым перемешиванием. Общий интерфейс таблиц.
Постфикс для полиномов. Упорядоченная таблица на массиве. Хеш-таблица со списками.
Собрание команды разработчиков с заказчиком по четвергам в 14 40.
Собрание разработчиков между собой по воскресеньям в 19 00.
Разработка должна быть проведена в шесть стадий:
Стадии разработки | Выполнение |
---|---|
Разработка технического задания | ✔️ |
Выписывание и описание списков объектов и основных алгоритмов | |
Подготовка проекта программной системы | |
Разработка пустых версий модульных тестов для методов разработанных классов | |
Разработка тестов и кода | |
Сдача проекта заказчику |
-
На стадии разработки технического задания должен быть выполнен этап разработки, согласования и утверждения настоящего технического задания;
-
На стадии выписывания и описания списоков объектов и основных алгоритмов должны быть выполнены перечисленные этапы работ:
- Подготовка списка объектов в markdown,
- Размещение списка в Readme репозитория на гитхабе,
- Подготовка по каждому объекту описания модели,
- По каждому алгоритму либо подготавливается описание, либо даются ссылки, где это описание можно найти,
- Презентация заказчику;
-
На стадии подготовки проекта программной системы должны быть выполнены заготовки классов в h-файле и заготовки форм в Visual Studio;
-
На стадии разработки пустых версий модульных тестов для методов разработанных классов использовать библиотеку google tests;
-
На стадии разработки тестов и кода нужно написать код, который будет проходить сборку и все тесты;
-
На стадии сдачи проекта заказчику нужно презентовать проект, защитить его и сдать документацию заказчику.