Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задания ооп.docx
Скачиваний:
4
Добавлен:
16.11.2019
Размер:
33.29 Кб
Скачать

5. После полного описания всех методов сохранить модуль и подключить его к основному модулю.

6. В раздел реализации основного модуля добавить переменную класса прямоугольников, а также – массив объектных указателей для выполнения групповой обработки объектов-прямоугольников.

7. Добавить в меню команды для создания и перемещения как одиночного прямоугольника, так и набора прямоугольников, написать соответствующие обработчики

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

Практическое задание 3. Разработка и использование простого контейнера для графических объектов

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

Спроектировать и реализовать объект-контейнер для хранения и обработки однотипных графических объектов, например – окружностей. Основа контейнера – массив объектных переменных-указателей на графические объекты-окружности. Объект-контейнер должен выполнять стандартный набор функций: добавление и удаление объектов-окружностей, поиск и циклическую обработку всех объектов в контейнере. Объект-контейнер должен быть реализован в двух вариантах – на основе обычного массива и на основе динамически изменяемого массива. Для проверки реализованных методов создать тестирующую программу с простым графическим интерфейсом.

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

1. Добавить в ранее созданный проект новый программный модуль, предназначенный для реализации контейнерного класса.

2. В разделе интерфейса этого модуля:

  • подключить модуль, в котором реализован класс окружностей;

  • ввести описание класса контейнера-массива.

3. В разделе реализации записать код всех необходимых методов.

4. В разделе реализации главного модуля подключить контейнерный модуль и объявить объектную переменную контейнерного типа.

5. Добавить в основное меню команду Контейнер с пунктами Создать, Добавить, Переместить, Уничтожить.

6. Написать обработчик команды Создать, в котором с помощью конструктора создается пустой контейнер и выводится информационное сообщение.

7. Написать обработчик команды Добавить, в котором создается объект-примитив со случайными параметрами, выполняется его добавление в контейнер и отображение методом Show.

8. Написать обработчик команды Переместить, который лишь вызывает итератор с соответствующими параметрами.

9. Написать обработчик команды Уничтожить, который с помощью итератора уничтожает все объекты-примитивы, затем уничтожает методом Free сам контейнер и выводит об этом сообщение.

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

11. Внести в описание контейнерного класса изменения, необходимые для перехода к динамическому массиву и проверить работоспособность измененных методов.

Практическое задание 4. Разработка классов для графических объектов на основе композиционного взаимодействия

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

Требуется разработать небольшую библиотеку классов для графических объектов, взаимодействующих на основе композиции. Исходные данные – созданные в заданиях 1 и 2 классы для объектов Окружность и Прямоугольник. Библиотека должна включать следующий минимальный набор классов:

  • класс точек

  • класс окружностей, использующий класс точек

  • класс прямоугольников, также использующий класс точек

  • класс простой детали, состоящей из окружности внутри прямоугольника

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

  1. Открыть ранее созданный проект (модули с классами Окружность и Прямоугольник и модуль-форма для тестирования методов этих классов) и сохранить его в новом каталоге для внесения необходимых изменений.

  2. Добавить новый модуль для класса точек, и в этом классе ввести:

  1. два закрытых свойства для хранения координат точки;

  2. конструктор для инициализации свойств-координат и вывода сообщения о создании объекта (это будет использоваться в дальнейшем для проверки правильности вложенных вызовов конструкторов взаимодействующих классов);

  3. методы доступа к координатам точки.

  1. Внести следующие изменения в ранее созданный класс Окружность:

  • заменить свойства-координаты центра одним объектным свойством для хранения указателя на объект-точку;

  • реализовать два конструктора, которые кроме стандартных операций выполняют дополнительно вывод сообщения о создании объекта-окружности;

    • в методе прорисовки окружности вместо прямого использования координат центра применить вызовы соответствующих методов доступа из класса точек;

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

  1. Проверить работу приложения, обратив внимание на порядок создания объектов.

  2. Внести следующие изменения в ранее созданный класс Прямоугольник:

  • заменить свойства-координаты левого верхнего угла одним объектным свойством для хранения указателя на объект-точку;

  • реализовать два конструктора, которые кроме стандартных операций выполняют дополнительно вывод сообщения о создании объекта-прямоугольника;

    • реализовать методы прорисовки и перемещения прямоугольника аналогично методам класса окружностей (с использованием методов доступа к координатам точки);

  1. Проверить работу приложения, обратив внимание на порядок создания объектов.

  2. Создать новый класс Деталь, содержащий два объектных свойства-указателя на окружность и прямоугольник, два конструктора с выводом сообщения, а также методы прорисовки и перемещения.

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