ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП). НАСЛЕДОВАНИЕ И ПОЛИМОРФИЗМ. ПРОСТОЕ И МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ

 

Разработайте программу на языке С++, использующую наследование.

Вариант 1.Издательская компания торгует книгами и аудио-записями книг. Создайте класс Publication, в котором хранятся название (строка) и цена (тип float) книги. От этого класса наследуются два класса Book, который содержит информацию о количестве страниц в книге (тип int) и type, который содержит время записи книги в минутах (тип float). В каждом из этих трех классов должен быть метод getdata(), через который можно получать данные от пользователя с клавиатуры, и putdata(), предназначенный для вывода этих данных.

Напишите функцию main() программы для проверки классов Book и Type. Создайте их объекты в программе и запросите пользователя ввести и вывести данные с использованием методов getdata() и putdata().

Вариант 2. Создайте базовый класс Car(машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения и изменения мощности. Создать производный класс Lorry(грузовик), характеризуемый также грузоподъемностью кузова. Определить функции переназначения марки и изменения грузоподъемности.

Вариант 3.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс, в котором определите операции вычисления модуля комплексного числа и комплексно спряженного.

Вариант 4.Создайте класс Liquid(жидкость), имеющий поля названия и плотности. Определить методы переназначения и изменения плотности. Создайте производный класс Alcohol(спирт), имеющий крепость. Определить методы переназначения и изменения крепости.

Вариант 5.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в тригонометрической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс , в котором определите операции вычисления действительной и мнимой частей комплексного числа, а также комплексно спряженного.

Вариант 6.Создайте класс Man(человек) с полями: имя, возраст, пол и вес. Определите методы переназначения имени, изменения возраста и изменения веса. Создайте производный класс Student,имеющий поле года обучения. Определите методы переназначения и увеличения года обучения.

Вариант 7.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления (в том числе и на действительные числа). Создайте производный класс, в котором определите метод для вычисления комплексной экспоненты .

Вариант 8.Создайте класс Triangle(треугольник) с полями-сторонами. Определите методы изменения сторон, вычисления углов, вычисления периметра. Создайте производный класс Equilateral(равносторонний), имеющий поле площади. Определите метод вычисления площади.

Вариант 9.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления (в том числе и на действительные числа). Создайте производный класс, в котором определите метод для вычисления комплексного косинуса .

Вариант 10.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления (в том числе и на действительные числа). Создайте производный класс, в котором определите метод для вычисления комплексного синуса .

Вариант 11.Создайте базовый класс Matrix (матрица) для реализации квадратных матриц предопределенного размера. Определите в этом классе операции сложения, вычитания, произведения матриц, а также умножения и деления матриц на число. Создайте производный класс, в котором реализована процедура вычисления матричной экспоненты , где A – матрица-аргумент, а E – единичная матрица.

Вариант 12.Создайте базовый класс Matrix (матрица) для реализации квадратных матриц предопределенного размера. Определите в этом классе операции сложения, вычитания, произведения матриц, а также умножения и деления матриц на число. Создайте производный класс, в котором реализована процедура вычисления матричного косинуса , где A – матрица-аргумент, а E – единичная матрица.

Вариант 13.Создайте базовый класс Matrix (матрица) для реализации квадратных матриц предопределенного размера. Определите в этом классе операции сложения, вычитания, произведения матриц, а также умножения и деления матриц на число. Создайте производный класс, в котором реализована процедура вычисления матричного синуса , где A – матрица-аргумент.

Вариант 14.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс для реализации векторов с комплексными компонентами (вектор имеет три компонента, каждый компонент – комплексное число). Компоненты вектора являются элементами массива. Предусмотреть возможность индексирования объектов, сложения и вычитания векторов.

Вариант 15.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс для реализации векторов с комплексными компонентами (вектор имеет три компонента, каждый компонент – комплексное число). Компоненты вектора являются элементами массива. Предусмотреть возможность вычисления скалярного произведения векторов – результатом является комплексное число, равное сумме произведений соответствующих компонентов векторов.

Вариант 16.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и вычисления комплексного спряженного числа. Создайте производный класс для реализации векторов с комплексными компонентами (вектор имеет три компонента, каждый компонент – комплексное число). Компоненты вектора являются элементами массива. Предусмотреть возможность вычисления скалярного произведения векторов, а также вычисления модуля вектора (произведение вектора на комплексно спряженный вектор).

Вариант 17.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс для реализации векторов с комплексными компонентами (вектор имеет три компонента, каждый компонент – комплексное число). Компоненты вектора являются элементами массива. Предусмотреть возможность вычисления векторного произведения векторов – результатом является комплексный вектор.

Вариант 18.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс для реализации квадратных матриц с комплексными элементами. Элементы матрицы заносятся в двумерный массив. Предусмотреть возможность индексирования объектов, сложения и вычитания матриц.

Вариант 19.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс для реализации квадратных матриц с комплексными элементами. Элементы матрицы заносятся в двумерный массив. Предусмотреть возможность индексирования объектов и умножения матриц.

Вариант 20.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения. Создайте производный класс для реализации квадратных матриц с комплексными элементами. Элементы матрицы заносятся в двумерный массив. Предусмотреть возможность умножения матриц, а также вычисления матричной комплексной экспоненты , где A – комплексная матрица-аргумент, а E – единичная матрица.

Вариант 21.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения. Создайте производный класс для реализации квадратных матриц с комплексными элементами. Элементы матрицы заносятся в двумерный массив. Предусмотреть возможность умножения матриц, а также вычисления матричного комплексного косинуса , где A – комплексная матрица-аргумент, а E – единичная матрица.

Вариант 22. Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения. Создайте производный класс для реализации квадратных матриц с комплексными элементами. Элементы матрицы заносятся в двумерный массив. Предусмотреть возможность умножения матриц, а также вычисления матричного комплексного синуса , где A – комплексная матрица-аргумент.

Вариант 23. Создайте базовый класс для реализации полиномиальных выражений степени, не выше n (внешняя константа). Определить операции сложения, вычитания полиномов, а также умножения и деления полиномов на число. Создайте производный класс, в котором реализуйте выражения вида , где а – поле класса. Предусмотреть возможность вычисления производной от такого выражения – производная равна , где .

Вариант 24.Создайте базовый класс для реализации полиномиальных выражений степени, не выше n (внешняя константа). Определить операции сложения, вычитания полиномов, а также умножения и деления полиномов на число. Создайте производный класс, в котором реализуйте выражения вида , где а и b – поля класса. Предусмотреть возможность вычисления производной от такого выражения – производная равна , где .

Вариант 25.Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс для работы с комплексными полиномиальными выражениями степени не выше, чем n. Выражение имеет вид , где z – комплексное число, а - действительные числа (элементы массива производного класса.). Предусмотреть возможность сложения и вычитания таких полиномов.