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

Лабораторная работа №8. Наследование

Общие указания

1. Текст программ должен включать комментарии с описанием: Фамилии, имени, группы, условия задачи, описания входных и выходных параметров.

2. Обращение к компонентам выполнить в виде меню.

Задания для написания программ

Вариант 1. Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия). На основе класса Line создать классы ColoredLine и PolyLine (много угольник). В классах описать следующие элементы:

  • конструкторы с параметрами и конструкторы по умолчанию;

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

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

  • для многоугольника - метод масштабирования.

Вариант 2. Создать абстрактный класс Number c виртуальными методами, реализующими арифметические операции. На его основе реализовать классы Integer и Real. В классе Integer описать функцию возведения в степень. В классе Real описать функцию вычисления квадратного корня. В обоих классах реализовать функции модуля.

Вариант 3. Описать базовый класс Строка. Обязательные поля класса:

  • поле для хранения символов строки;

  • значение типа word для хранения длины строки в байтах.

Реализовать обязательные методы следующего назначения:

  • конструктор без параметров;

  • конструктор, принимающий в качестве параметра строковый литерал;

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

  • метод получения длины строки;

  • метод очистки строки (сделать строку пустой).

Описать производный от Строка класс Комплексное число. Строки данного класса состоят из двух полей, разделенных символом i. Первое поле задает значение действительной части числа, второе - значение мнимой. Каждое из полей может содержать только символы десятичных цифр и символы - и +, задающие знак числа. Символы - или + могут находиться только в первой позиции числа, причем символ + может отсутствовать, в этом случае число считается положительным. Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, класс Комплексное число принимает нулевое значение.

Примеры строк:

33i12

7i100

+5i - 21

Для класса Комплексное число определить следующие методы:

  • проверка на равенство;

  • сложение чисел;

  • умножение чисел;

  • деление чисел.

Вариант 5. Создать абстрактный класс Figure. На его основе реализовать классы Rectangle (прямоугольник), Circle (круг) и Trapezium (трапеция) с возможностью вычисления площади, центра тяжести и периметра. Самостоятельно определить, какие поля необходимы, какие из них можно задать в базовом классе, какие – в производных.

Вариант 7. Создать абстрактный класс Vehicle (транспортное средство). На его основе реализовать классы Plane (самолет), Car (автомобиль) и Ship (корабль). Классы должны иметь возможность задавать и получать координаты и параметры средств передвижения (цена, скорость, год выпуска и т. п.) с помощью свойств. Для самолета должна быть определена высота, для самолета и корабля количество пассажиров, для корабля - порт приписки. Динамические характеристики задать с помощью методов.

Вариант 8. Описать базовый класс Строка. Обязательные поля класса:

  • поле для хранения символов строки;

  • значение типа word для хранения длины строки в байтах.

Реализовать обязательные методы следующего назначения:

  • конструктор без параметров;

  • конструктор, принимающий в качестве параметра строковый литерал;

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

  • метод получения длины строки;

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

Для класса определить следующие методы:

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

  • арифметическая разность строк;

  • проверка на больше (по значению);

  • проверка на меньше (по значению).

Вариант 9. Описать базовый класс Строка. Обязательные поля класса:

  • поле для хранения символов строки;

  • значение типа word для хранения длины строки в байтах.

Реализовать обязательные методы следующего назначения:

  • конструктор без параметров;

  • конструктор, принимающий в качестве параметра строковый литерал;

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

  • метод получения длины строки;

метод очистки строки (сделать строку пустой).Описать производный от Строка класс Битовая Строка. Строки данного класса могут содержать только символы '0' или '1'. Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, класс Битовая Строка принимает нулевое значение. Содержимое данных строк рассматривается как двоичное число. Отрицательные числа храняться в дополнительном коде. Для класса Битовая Строка определить следующие методы:

  • конструктор, принимающий в качестве параметра строковый литерал;

  • деструктор;

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

  • присваивание;

  • вычисление арифметической суммы строк;

  • проверка на равенство. В случае необходимости более короткая битовая строка расширяется влево знаковым разрядом.