
Задания 2014 ООП / Домашние задания / ООП_DZ08
.docДомашние задания. Вариант 8
Задание 1. Turbo Delphi
Часть 1.1 Разработать иерархию классов Delphi. Разместить определение классов в отдельном модуле. Класс, позволяющий рисовать отрезок под заданным углом некоторого размера из точки, определенной нажатием левой клавиши мыши. Класс, позволяющий рисовать окружность некоторого радиуса с центром в точке, определенной нажатием правой клавиши мыши.
Параметры задаются с использованием интерфейсных элементов.
В отчете показать иерархии используемых классов Delphi и разработанных классов, граф состояния интерфейса и объектную декомпозицию.
Часть 1.2. Разработать программу, содержащую описание трех графических объектов:
квадрат, ромб, два одинаковых взаимно ортогональных ромба с общими центрами.
Реализуя механизм полиморфизма, привести объекты в одновременное движение по экрану по горизонтали с отражением от его границ.
Задание 2. С++.
Часть 2.1. Функции.
Написать программу, определяющую все меньшие n (n<=106 ) натуральные числа, которые являются палиндромами как в десятичной, так и в двоичной системе. При программировании использовать функцию. Вывести на печать все найденные числа в десятичной и двоичной системе. Например: 33 – 100001.
Часть 2.2 Текстовая обработка.
Дана последовательность строк. Каждая строка состоит из групп букв, цифр и знаков +,-,*. Группой букв называется группа, которой не предшествует и за которой не следует буква. Группой цифр называется группа, которой не предшествует и за которой не следует цифра. Группой знаков называется группа, которой не предшествует и за которой не следует знак. Написать программу, определяющую в каждой строке количество групп букв, цифр и знаков и осуществляющую замену группы букв, начинающуюся с гласной буквы, на группу букв ‘aaaa’, если таковая найдется. Вывести на печать исходную и скорректированную последовательности строк.
Часть 2.3. Файлы.
Дан символьный файл F. Записать в файл H с сохранением порядка следования те символы файла F, которым в этом файле предшествует буква а.
Задание 3. Программирование с использованием классов в С++.
Часть 3.1. Композиция.
Разработать и реализовать диаграмму классов для описанных объектов предметной области, используя механизмы наследования и композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных.
Даны:
Объект блок, состоящий из трех полей: целое число, вещественное число и символ. Объект умеет выводить на печать содержимое своих полей, возвращать содержимое своих полей по запросу.
Объект «массив блоков», состоящий из числового поля, содержащего размер массива, и собственно массива блоков. Объект умеет выводить на печать содержимое своих полей, возвращать по запросу реальный размер массива, упорядочивать массив блоков по значению символьного поля блока, определять количество четных значений целого числового поля элемента блока.
Часть 3.2. Qt. Полиморфное наследование.
Разработать программу, содержащую описание трех графических объектов:
квадрат, ромб, два одинаковых взаимно ортогональных ромба с общими центрами.
Реализуя механизм полиморфизма, привести объекты в одновременное движение по экрану по горизонтали с отражением от его границ.