ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП). ОСНОВНЫЕ ПОНЯТИЯ. ИНКАПСУЛЯЦИЯ. ПЕРЕГРУЗКА ОПЕРАЦИЙ

 

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

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

Вариант 2.Создайте класс Fraction (обыкновенная дробь), включающего поля: числитель и знаменатель. Реализовать методы сокращения дроби и вывода дроби. Перегрузить операции сложения, вычитания, деления и умножения дробей.

Вариант 3.Создайте класс Vector(вектор), включающий поля: координаты вектора. Реализовать методы вывода вектора и вычисления длины вектора. Перегрузить операции сложения (+), скалярного (%) и векторного (*) произведения векторов.

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

Вариант 5.Создайте класс StraightLine(прямая линия), включающего координаты двух точек и . Реализовать методы вывода уравнения прямой . Перегрузить операции проверки параллельности прямых (||) и определения угла между двумя прямыми (%).

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

Вариант 7.Создайте класс Fraction (обыкновенная дробь), включающего поля: числитель и знаменатель. Реализовать методы определения обратной дроби и вывода дроби. Перегрузить операции сложения, вычитания и умножения дробей.

Вариант 8.Создайте класс Vector(вектор), включающий поля: координаты вектора. Реализовать методы определения направляющих косинусов вектора и вывода всех характеристик вектора. Перегрузить операции сложения (+), скалярного (%) и векторного (*) произведения векторов.

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

Вариант 10.Создайте класс StraightLine(прямая линия), включающего коэффициенты прямой . Реализовать методы вывода уравнения прямой на экран и определения точек пересечения с осями. Перегрузить операции проверки перпендикулярности прямых (!=) и определения угла между двумя прямыми (%).

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

Вариант 12.Создайте класс Fraction (обыкновенная дробь), включающего поля: числитель и знаменатель. Реализовать методы вывода в виде обыкновенной и десятичной (пять знаков после запятой) дроби. Перегрузить операции сложения, вычитания, деления, умножения дробей и сравнения дробей <, >.

Вариант 13. Создайте класс Fraction(обыкновенная дробь), в котором реализовать перегрузку: оператора суммирования дробей, оператора суммирования дроби и целого числа, оператора умножения, деления, вычитания дробей, а также дроби и целого числа, оператора ~ для сокращения дроби, логических операторов ==, >=, <=.

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

Вариант 15.Создайте класс Time(время), включающего поля: часы, минуты, секунды. Реализовать методы вывода времени и часть суток (до 6:00 – ночь, до 12:00- утро, до 18:00 – день, до 23:59:59 - вечер). Перегрузить операции сложения (+), вычитания (-), сравнения (<, >) времени.

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

Вариант 17.Создайте класс Vector(вектор), включающий поля: координаты вектора. Реализовать методы вывода вектора и вычисления длины вектора. Перегрузить операции сложения (+), скалярного (%) и векторного (*) произведения векторов, проверки коллинеарности (||) двух векторов.

Вариант 18.Создайте класс Fraction (обыкновенная дробь), включающего поля: числитель и знаменатель. Реализовать методы возведения дроби в степень и вывода дроби. Перегрузить операции сложения, вычитания, умножения, деления, сравнение дробей.

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

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

Вариант 21.Создайте класс Date(дата), включающего поля: дата, месяц, год. Реализовать методы вывода даты и времени года. Перегрузить операции вычитания двух дат (-), сравнения двух дат (<, >).

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

Вариант 23.Создайте класс Fraction(обыкновенная дробь), включающего поля: числитель, знаменатель. Реализовать методы сокращения дроби, возведения дроби в степень и вывод дроби. Перегрузить операции сложения, вычитания дробей.

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

Вариант 25.Создайте класс Date(дата), включающего поля: дата, месяц, год. Реализовать методы вывода даты и времени года. Перегрузить операции добавление (+) к дате целого числа (количества дней), сравнение двух дат (<, >).