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

Добавлен: 20.10.2018

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

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

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

 

 

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

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

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

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

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

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

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

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

поиск  и  циклическую  обработку  всех  объектов  в  контейнере. 

Дополнительно  необходимо  реализовать  операции  выборочной  обработки 

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

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

проверки  реализованных  методов  создать  тестирующую  программу  с 

простым графическим интерфейсом. 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


background image

 

 

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

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

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

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

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

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

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

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

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

команды: 

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

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

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

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

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

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

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

сообщения. 

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

9. Добавить в контейнерный класс дополнительные методы