Объектно-ориентированное программирование (ооп). наследование и полиморфизм. простое и множественное наследование
Разработайте программу на языке С++, использующую наследование.
Вариант 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 – комплексное число, а - действительные числа (элементы массива производного класса.). Предусмотреть возможность сложения и вычитания таких полиномов.