Задание № 4984

Студент

Беляев Егор

Задача

Фабрика

Состояние

Завершено

Баллов

3

Дедлайн
06 марта 2023
Назначено

06.03.2023, 04:42

Завершено

19.03.2023, 05:48

Необходимо разработать модуль фабрики, который по строчке создает объект требуемого типа.

Входные данные

Текстовый файл с описанием того, какие объекты нужно создать

point 1 2
rect 1 2 3 4
line 10 10 20
circle 10 10 5

Поддерживаемые записи во входном файле:

  • point x y — точка в координатах (x, y)
  • rect x1 y1 x2 y2 — прямоугольник, заданный точками (x1, y1) и (x2, y2)
  • line x1 x2 x2 y2 — линия, заданная точками (x1, y1) и (x2, y2)
  • circle x y r — круг с центром в (x, y) и радиусом r

Выходные данные

У каждого типа должен быть виртуальный метод Draw, который выводит в консоль название типа и его основные параметры. Например, у точки: Point at (10, 20) и т.д. После создания всех объектов, описанных во входном файле, нужно вызвать Draw для каждого из них. Пример вывода:

point at (10, 20)
circle at (100, 300), rad = 50
rect at (100, 200), (200, 300)

Реализация

Необходимо создать все объекты, описанные в полученном на вход файле с помощью модуля фабрики, который по текстовой строчке создает и возвращает объект нужного типа, и после этого вызвать Draw для каждого из этих объектов.

Примечание

Задача должна быть реализована на базе фреймворка OOC.

Примечания

при неудаче вставки в стек нужно удалить объект вызвав delete(p), а не в коем случае не stack_pop()

Действия