Файл: Практическое задание 8.pdf

Добавлен: 20.10.2018

Просмотров: 336

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

 

Практическое задание 8.  Создание и использование универсального 

контейнера-массива для графических объектов 

Постановка задачи.  

Спроектировать  и  реализовать  объект-контейнер  для  хранения  и 

обработки  любых  графических  объектов,  объединенных  общей  иерархией. 

Основа контейнера – массив полиморфных объектных переменных-ссылок 

на графические объекты. Объект-контейнер должен выполнять стандартный 

набор  операций:  добавление  и  удаление  объектов,  поиск  и  циклическую 

обработку  всех  объектов  в  контейнере.  Дополнительно  необходимо 

реализовать операции выборочной обработки объектов в контейнере, такие 

как  перемещение  только  криволинейных  объектов,  перемещение  только 

прямоугольных  объектов  и  т.д.  Для  проверки  реализованных  методов 

создать тестирующую программу с простым графическим интерфейсом. 

Исходные данные:  

  реализованная  в  предыдущем  задании  библиотека  графических 

объектов с виртуальными методами 

  реализованный  в  задании  3  простой  контейнер-массив  для 

однотипных объектов (окружностей) 

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

1. Изучить материал разделов 9 и 10 пособия, открыть проект, в котором 

был реализован простейший контейнер-массив для однотипных 

объектов и сохранить его в новом каталоге   

2. Удалить из проекта модуль, в котором реализован класс окружностей и 

добавить модуль (модули), содержащий библиотеку классов для 

графических объектов (минимальный набор классов должен включать 

следующие классы: корневой класс Фигура, дочерние классы 

Окружность и Прямоугольник, дочерний класс Эллипс). 

3. В разделе интерфейса модуля-контейнера подключить модуль 

(модули) с библиотекой классов для графических объектов 


background image

 

 

4. В описании контейнерного класса заменить конкретный классовый 

тип (например  TCircle) на общий корневой классовый тип  TFigure 

5. Добавить в контейнерный класс второй конструктор, который 

заполняет весь массив случайным набором графических объектов. Для 

этого организуется цикл, в котором генерируется случайное число со 

значениями 0, 1 или 2, по которому с помощью оператора выбора 

выполняется вызов конструктора для создания одного из трех 

возможных графических объекта (окружность, прямоугольник, эллипс).  

6. Для демонстрации возможностей контейнера предусмотреть следующие 

команды: 

  создать пустой контейнер 

  создать контейнер, заполненный случайными объектами 

  добавить новый объект 

  удалить объект 

  переместить весь набор объектов 

7.  Написать обработчики всех команд, код которых сводится к вызову 

соответствующего метода контейнера и выводу информационного 

сообщения. 

8. Сохранить проект и проверить его работу.