
Задания 2014 ООП / Домашние задания / ООП_DZ18
.docДомашние задания. Вариант 18
Задание 1. Turbo Delphi
Часть 1.1 Разработать иерархию классов Delphi. Разместить определение классов в отдельном модуле. Класс, позволяющий рисовать прямоугольник, развернутый на заданный угол от точки, определенной нажатием левой клавиши мыши до точки ее отпускания.
Класс, позволяющий рисовать окружность некоторого размера от точки, определенной нажатием правой клавиши мыши до точки ее отпускания.
Параметры задаются с использованием интерфейсных элементов.
В отчете показать иерархии используемых классов Delphi и разработанных классов, граф состояния пользовательского интерфейса и объектную декомпозицию.
Часть 1.2. Разработать программу, содержащую описание трех графических объектов:
отрезок, ромб, астроида.
Реализуя механизм полиморфизма, выполнять многократное масштабирование объектов в автоматическом режиме с заданными коэффициентами. За центры масштабирования принять геометрические центры фигур.
Задание 2. С++.
Часть 2.1. Функции.
Известно, что произведение двух целых чисел, деленное на их наибольший общий делитель, дает наименьшее общее кратное.
Написать программу, определяющую наибольший общий делитель двух целых чисел n и m (n, m вводятся с клавиатуры), используя известный алгоритм Евклида и наименьшее общее кратное этих же чисел, опираясь на утверждение, сделанное в начале. Вывести на печать все найденные числа. При программировании использовать функции.
Часть 2.2 Текстовая обработка.
Дана последовательность строк. Строки содержат зашифрованную информацию и состоят из слов, разделенных пробелом. Пробел записан без шифра. Написать программу, обеспечивающую ввод строк и их расшифровку. Для расшифровки каждая из букв слова заменяется буквой, которая находится через n букв дальше по алфавиту ( n – вводится с клавиатуры). Буквы, находящиеся на расстоянии, меньшем, чем n от конца, заменяются после соответствующей корректировки на начальные буквы алфавита.
Вывести на печать зашифрованную и подвергнутую дешифровке последовательности строк.
Часть 2.3. Файлы.
Организовать программным способом файл F, компоненты которого являются целыми числами. Число компонент файла делится на 5. Записать в файл G наибольшее значение первых пяти компонент файла F, затем – следующих пяти компонент и т.д.
Задание 3. Программирование с использованием классов в С++.
Часть 3.1. Композиция.
Разработать и реализовать диаграмму классов для описанных объектов предметной области, используя механизм композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных.
Даны:
объект вещественное число, умеющий печатать свое значение и отвечать на запрос о значении своего числового поля, количестве цифр целой и дробной частей этого поля.
Объект массив вещественных чисел, умеющий выводить на печать значение своих элементов, возвращать значение любого элемента по его индексу, возвращать среднее количество цифр целых и дробных частей его элементов, а также определять элемент с минимальным и максимальным количеством цифр его целой и дробной частей.
Часть 3.2. Qt. Полиморфное наследование.
Разработать программу, содержащую описание трех графических объектов:
отрезок, ромб, астроида.
Реализуя механизм полиморфизма, выполнять многократное масштабирование объектов в автоматическом режиме с заданными коэффициентами. За центры масштабирования принять геометрические центры фигур.