-
Изучение механизмов работы наследования в C++
-
Изучение механизма перегрузки операций
-
Ознакомиться с теоретическим материалом
-
Реализовать задание в соответствии с вариантом (Вариант 24) (Фигуры Восьмиугольник, Треугольник, Квадрат)
-
Написать Unit-тесты с использованием Google Test
-
Отчитаться по выполненной работе путём демонстрации работающей программы на тестовых наборах данных (как подготовленных самостоятельно, так и предложенных преподавателем) и ответов на вопросы преподавателя (как из числа контрольных, так и по реализации программы).
Разработать программу на языке C++ согласно варианту задания. Программа на C++ должна собираться с помощью системы сборки CMake. Программа должна получать данные из стандартного ввода (std::cin) и выводить данные в стандартный вывод (std::cout).
Разработать классы согласно варианту задания, классы должны наследоваться от базового класса Figure. Фигуры являются фигурами вращения.
Все классы должны поддерживать набор общих методов:
- Вычисление геометрического центра фигуры вращения
- Вывод в стандартный поток вывода std::cout координат вершин фигуры через перегрузку оператора << для std::ostream
- Чтение из стандартного потока данных фигур через перегрузку оператора >> для std::istream
- Вычисление площади фигуры через перегрузку оператора приведения к типу double
Создать программу, которая позволяет:
- Вводить из стандартного ввода std::cin фигуры, согласно варианту задания
- Сохранять созданные фигуры в массив (по аналогии с предыдущей лабораторной работой Array) указатели на фигуру (Figure*)
- Фигуры должны иметь переопределенные операции копирования (=), перемещения (=) и сравнения (==)
- Вызывать для всего массива общие функции (1-3 см. выше). Т.е. распечатывать для каждой фигуры в массиве геометрический центр и площадь
- Необходимо уметь вычислять общую площадь фигур в массиве
- Удалять из массива фигуру по индексу
Laboratory_3/
├── CMakeLists.txt
├── main.cpp
├── README.md
├── include/
│ ├── Figure.h
│ └── ...
├── src/
│ ├── .cpp
│ └── ...
└──test/
└── ...
Сборка:
docker build -t laboratory-3 .
# Запуск тестов (по умолчанию)
docker run laboratory-3
# Запуск основной программы
docker run -it laboratory-3 Laboratory_3_exe