Skip to content

Ruling456/OOP_CPP_Laboratory_3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа №3

Тема: "Изучение базовых приемов работы с классами"

Цель:

  • Изучение механизмов работы наследования в C++

  • Изучение механизма перегрузки операций

Порядок выполнения работы:

  • Ознакомиться с теоретическим материалом

  • Реализовать задание в соответствии с вариантом (Вариант 24) (Фигуры Восьмиугольник, Треугольник, Квадрат)

  • Написать Unit-тесты с использованием Google Test

  • Отчитаться по выполненной работе путём демонстрации работающей программы на тестовых наборах данных (как подготовленных самостоятельно, так и предложенных преподавателем) и ответов на вопросы преподавателя (как из числа контрольных, так и по реализации программы).

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

Разработать программу на языке C++ согласно варианту задания. Программа на C++ должна собираться с помощью системы сборки CMake. Программа должна получать данные из стандартного ввода (std::cin) и выводить данные в стандартный вывод (std::cout).

Разработать классы согласно варианту задания, классы должны наследоваться от базового класса Figure. Фигуры являются фигурами вращения.

Все классы должны поддерживать набор общих методов:

  1. Вычисление геометрического центра фигуры вращения
  2. Вывод в стандартный поток вывода std::cout координат вершин фигуры через перегрузку оператора << для std::ostream
  3. Чтение из стандартного потока данных фигур через перегрузку оператора >> для std::istream
  4. Вычисление площади фигуры через перегрузку оператора приведения к типу 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors