ДВГУПС, современные технологии прикладного программирования (лабораторные работы №3-6)


Узнать стоимость этой работы
07.07.2026, 14:11

Лабораторная работа №3

Вариант №1

Задание 1

Создайте класс "Point" с координатами x и y. Реализуйте:

1) Перегрузку оператора равенства для сравнения двух точек.

2) Перегрузку оператора сложения (чтобы складывались 2 точки, а не координаты одной).

3) Перегрузку оператора сравнения двух переменных (>; < и ==).

Задание 2

Разработайте класс «Автомобиль» с инкапсуляцией переменных для модели, года выпуска и цвета. Реализуйте:

1) Создание и перегрузку конструктора для машины без данных.

2) Создание и перегрузку конструктора для машины со всей информацией об этой машине.

Используйте ключевое слово this для доступа к членам класса.

Вариант №2

Задание 1

Разработайте класс "Книга". Реализуйте:

1) Перегрузку конструкторов для установки различных параметров.

2) Параметры для года выпуска, названия и автора.

3) Деструктор для очистки данных после завершения работы. Используйте ключевое слово this для доступа к членам класса.

Задание 2

Создайте класс "String". Реализуйте:

1) Перегрузку оператора равенства и неравенства для сравнения двух строк (при выполнении нужно вывести какой именно оператор используется и что он выводит).

2) Возможность совмещения 2 строк в одну при помощи перегрузки оператора сложения.

Вариант №3

Задание 1

Напишите класс «Студент" с инкапсуляцией переменных для Имени, Фамилии и номера группы. Реализуйте:

1) Деструктор для освобождения памяти после использования.

2) Перегрузку конструктора для студентов без информации.

Задание 2

Создайте класс "Complex" для работы с комплексными числами. Реализуйте:

1) Перегрузку операторов сложения и вычитания для работы с комплексными числами.

Вариант №4

Задание 1

Реализовать класс "Точка". Реализуйте:

1) Предусмотрите перегрузку конструктора для точки с координатами и без нее.

2) Конструктор копирования.

Используйте ключевое слово this для доступа к членам класса.

Задание 2

Напишите класс "Matrix" для работы с матрицами. Реализуйте:

1) Перегрузку оператора сложения для сложения двух матриц.

2) Функцию для вычитания единичной матрицы.

Вариант №5

Задание 1

Создание класса "Круг". Реализуйте:

1) Конструктор копирования для создания точной копии объекта.

2) Возможность нахождения площади круга.

3) Создание нулевого круга (точки) при помощи конструктора.

Задание 2

Реализуйте класс "Vector". Реализуйте:

1) Перегрузку оператора сложения для сложения двух векторов.

2) Перегрузку префиксных и постфиксных инкрементов и декрементов.

Вариант №6

Задание 1

Создайте класс "Counter" для подсчета какихлибо переменных. Реализуйте:

1) Перегрузку для оператора индексирования.

2) Перегрузку операторов инкремента и декремента для этого класса.

Задание 2

Разработайте класс "Заказ" с методами для управления заказом и инкапсуляцией данных. Реализуйте:

1) Создание пары перегрузок конструктора.

2) Конструктор копирования с выводом сообщения «данные перенеслись» и выводом переменной, в которую скопировала информация. Используйте ключевое слово this для доступа к членам класса.

Вариант №7

Задание 1

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

Задание 2

Напишите класс "Time" для работы с временем. Реализуйте:

1) Перегрузку оператора деления для вычисления целых часов.

2) Перегрузку операторов инкремента и декремента для увеличения и уменьшения времени.

3) Функцию, которая будет прибавлять случайное время.

Вариант №8

Задание 1

Создайте класс "Задача на доске" с использованием инкапсуляции для скрытия деталей реализации. Реализуйте:

1) Несколько перегрузок с типами задач и выставленной оценкой.

2) Создание деструктора.

Используйте ключевое слово this для доступа к членам класса.

Задание 2

Реализуйте класс "Index" для работы с массивом. Выполните:

1) Перегрузку оператора индекса для изменения и вывода значения массива.

2) Добавьте оператора равенства двух массивов и оператора сложения этих массивов. (Если массивы разного размера, то сложение и сравнение не будет производиться).

Вариант №9

Задание 1

Создайте класс "Подписчик" с методами для подписки и отписки от рассылки. Выполните:

1) Добавьте еще пары переменных с информацией о подписчике.

2) Перегрузку конструктора для автоматического выявления подписки и отписки.

3) Создание деструктора.

Используйте ключевое слово this для доступа к членам класса.

Задание 2

Реализуйте класс «Числа», использующий перегруженные функции определения максимального из двух чисел. Функции должны возвращать максимальное значение. Для одной функции тип аргументов: целый, для второй — вещественный. Выполните перегрузку постинкремента и префиксного декремента.

Вариант №10

Задание 1

Разработайте класс "Комплексное число" с перегруженными конструкторами (минимум 4). Реализуйте:

1) Конструктор копирования сразу для 3 чисел (a = b = c). Используйте ключевое слово this для доступа к членам класса.

Задание 2

Создайте класс "Fraction" для работы с дробями. Перегрузите операторы сложения, вычитания, умножения и деления для дробей.

Вариант №11

Задание 1

Создайте класс "Матрица" Реализуйте:

1) Конструктор для автозаполнения переменных.

2) Деструктор для освобождения памяти после использования.

Задание 2

Создайте класс "Date" для работы с датами. Выполните:

1) Перегрузку операторов сравнения, инкремента и декремента для дат. Сделай 3 переменные для числа, месяца и года. (К примеру, Date = 01.31.25, Date++ = 02.01.25)

Вариант №12

Задание 1

Создайте класс "Стек". Выполните:

1) Создание конструктора копирования.

2) Перегрузок конструктора класса.

Используйте ключевое слово this для доступа к текущему элементу стека.

Задание 2

Реализуйте класс "Polynomial" для работы с многочленами. Выполните:

1) Перегрузку операторов сложения, вычитания и равенства для многочленов.

2) Перегрузку инкремента или декремента. (Создайте минимум 3 одночлена)

Вариант №13

Задание 1

Создайте класс "Динамический массив" с конструктором копирования для создания копии массива и вызова деструктора, для отчистки динамической памяти.

Задание 2

Реализуйте класс "Таймер". Выполните:

1) Перегрузку операторов инкремента для увеличения времени на таймере и декремента для уменьшения времени.

2) Перегрузку деления для нахождения времени в часах.

3) Добавьте функцию, которая будет прибавлять случайное количество минут.

Вариант №14

Задание 1

Разработайте класс "Банковский счет" с методами для внесения депозита и снятия средств. Выполните:

1) Несколько перегрузок для нулевого счета.

2) Несколько перезагрузок для обычного счета.

Задание 2

Реализуйте класс "Очередь" с перегрузкой оператора индексирования для доступа к элементам. Добавьте:

1) Оператор равенства для изменения переменных в очереди.

2) Деструктор для отчистки данных.

Вариант №15

Задание 1

Напишите класс "Компьютер" с инкапсуляцией для скрытия деталей аппаратной части. Реализуйте:

1) Перегрузку конструктора класса, для разных видов компьютера (минимум 3).

2) Конструктор копирования для 1 переменной.

Используйте ключевое слово this для доступа к членам класса.

Задание 2

Создайте класс "Товар". Реализуйте:

1) Перегрузку оператора равенства и сложения для класса.

2) Перегрузку оператора деления, для нахождения среднего значения для всех товаров.

3) Функцию, которая будет выводить всю информацию о товаре.

4) Функцию, которая будет выводить товар по максимальной и минимальной цене из нескольких вариантов.

Вариант №16

Задание 1

Реализуйте класс "Файл" с перегруженными конструкторами для работы с различными типами файлов (минимум 3). Создайте конструктор копирования для 2 файлов.

Используйте ключевое слово this для доступа к членам класса.

Задание 2

Напишите класс "Температура" с перегрузкой операторов инкремента и декремента. Выполните:

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

2) Добавьте оператор сравнения для 2 и более переменных.

Вариант №17

Задание 1

Создайте класс "Квадратное уравнение" с методами для вычисления корней через дискриминант. Выполните:

1) Добавьте конструктор копирования для 3 и более переменных (x = y =z).

2) Перегрузку конструктора для квадратных и кубических переменных (т.е. при создании переменной она сама может возводиться в квадрат или в куб). Используйте ключевое слово this.

Задание 2

Разработайте класс "Карта"(основа – игра «21»). Реализуйте:

1) Перегрузку операторов равенства и сложения для класса.

2) Массив из колоды и перегрузите оператор индексирования.

3) Функцию, которая будет добавлять 1 случайную карту.

Если эта карта превысит число 21, то выводится поражение, иначе победа (валет 2 очка, дама 3 очка и т.д.).

Вариант №18

Задание 1

Разработайте класс "Библиотека". Реализуйте:

1) Деструктор для освобождения ресурсов после использования.

2) Перегрузку конструктора для использования различных переменных (минимум 3).

Используйте ключевое слово this.

Задание 2

Создайте класс "Квадрат", который будет показывать его сторону. Реализуйте:

1) Перегрузку операторов инкремента и декремента.

2) Перегрузку умножения и деления для нахождения площади(S) и периметра(P) этого квадрата.

3) Оператор сложения для нахождения сумм двух площадей(S) или периметров(Р).

Вариант №19

Задание 1

Создайте класс "Команда" с методами управления членами команды и их ролями. Реализуйте:

1) Конструктор, который будет делать массив с номерами игроков.

2) Конструктор копирования этого массива.

Задание 2

Разработайте класс "Круг", который будет показывать его радиус(R). Реализуйте:

1) Перегрузку операторов инкремента и декремента.

2) Перегрузку умножения и деления для нахождения P и S круга.

3) Переменную "Точка" с двумя координатами и создайте функцию, которая будет выводить попадает ли точка в окружность или нет.

Вариант №20

Задание 1

Разработайте класс "Игрок" с использованием инкапсуляции для скрытия данных об игровом процессе (масти карт и тд.) Реализуйте:

1) Конструктор копирования для переноса данных об игре.

2) Перегрузку конструктора для различных выводов переменных. Используйте ключевое слово this.

Задание 2

Создайте класс "Кактус", который будет показывать рост кактуса. Реализуйте:

1) Перегрузку инкремента и умножение.

2) Вторую переменную «Дерево» в класс и перегрузите оператор равенства.

3) Перегрузку операторов сравнения (>, <) для возможности сравнивать величины и выводить в порядке убывание.

4) Возможность пользователю самому сравнивать эти переменные.


Лабораторная работа №4

Вариант №1

Задание 1

Создать класс БИТОВАЯ СТРОКА. Строки данного класса могут содержать только символы «0» и «1». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, БИТОВАЯ_СТРОКА принимает нулевое значение. Добавить возможность инвертирования значения строки.

Задание 2

Класс "Точка":

Создайте класс "Точка" с приватными переменными для координат x и y. Найдите расстояние от центра координат используя дружественный класс.

Вариант №2 Задание 1

Создать класс ШЕСТНАДЦАТЕРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «А», «В», «C», «D», «E», «F». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ШЕСТНАДЦАТЕРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность произведения операции побитовой ИЛИ для двух строк.

Задание 2

Класс "Кошка":

Создайте класс "Кошка" с приватными переменными для имени, возраста и веса. Создайте дружественный класс «Food» для вычисления средней суточной нормы сухого корма.

Вариант №3

Задание 1

Создать класс ВОСЬМИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ВОСЬМИРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность объединения двух строк.

Задание 2

Класс "Пользователь":

Напишите класс "Пользователь" с приватными переменными для имени, email и пароля. Реализуйте дружественный класс «Safety», который будет показывать проверять надежность пароля (более 9 символов + наличие букв).

Вариант №4

Задание 1

Создать класс ТРОИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ТРОИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность представления значения строки в двоичной системе.

Задание 2

Класс "Компьютер":

Напишите класс "Компьютер" с приватными переменными для процессора, оперативной памяти и жесткого диска и дружественный класс «Info», который будет выводить сразу все переменные на экран.

Вариант №5

Задание 1

Создать класс ДВЕНАДЦАТИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «А», «В». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ДВЕНАДЦАТИРИЧНАЯ_СТРОКА принимает нулевое значение. Добавить возможность представления значения строки в десятичной системе.

Задание 2

Класс "Банковский счет"

Создайте класс "Банковский счет" с приватными переменными для номера счета, баланса и владельца. Пополните баланс через дружественный класс.

Вариант №6

Задание 1

Создать класс БИТОВАЯ СТРОКА. Строки данного класса могут содержать только символы «0» и «1». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, БИТОВАЯ_СТРОКА принимает нулевое значение. Добавить возможность инвертирования значения строки.

Задание 2

Класс "Фильм":

Создайте класс "Фильм" с приватными переменными для названия, режиссера и года выпуска. Вычислите возраст картины через дружественный класс.

Вариант №7

Задание 1

Создать класс ШЕСТНАДЦАТЕРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «А», «В», «C», «D», «E», «F». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ШЕСТНАДЦАТЕРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность произведения операции побитовой ИЛИ для двух строк.

Задание 2

Класс "Авиабилет":

Создайте класс "Авиабилет" с приватными переменными для пункта отправления, пункта назначения и даты вылета и даты прилета. Реализуйте дружественный класс «Flight», чтобы вычислить время полета.

Вариант №8

Задание 1

Создать класс ВОСЬМИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ВОСЬМИРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность объединения двух строк.

Задание 2

Класс "Шар":

Создайте класс "Шар" с приватной переменной для радиуса и дружественный класс "Info", который будет выводить площадь поверхности и объём шара.

Вариант №9

Задание 1

Создать класс ТРОИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ТРОИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность представления значения строки в двоичной системе.

Задание 2

Класс "Прямоугольник":

Создайте класс "Прямоугольник", у которого есть приватные переменные для длины и ширины. Измените переменные через дружественный класс.

Вариант №10

Задание 1

Создать класс ДВЕНАДЦАТИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7», «8», «9»,

«А», «В». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ДВЕНАДЦАТИРИЧНАЯ _СТРОКА принимает нулевое значение. Добавить возможность представления значения строки в десятичной системе.

Задание 2

Класс "Книжная полка":

Напишите класс "Книжная полка" с переменными количество книг, ширина книг, ширина полки. Создайте дружественный класс, который найдет количество полок необходимых для данного количества книг.

Вариант №11

Задание 1

Создать класс БИТОВАЯ СТРОКА. Строки данного класса могут содержать только символы «0» и «1». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, БИТОВАЯ_СТРОКА принимает нулевое значение. Добавить возможность инвертирования значения строки.

Задание 2

Класс "Банковский счет":

Напишите класс "Банковский счет" с приватными переменными для номера счета, баланса (в рублях) и типа счета. Реализуйте дружественный класс, который будет выводить баланс, но в долларах.

Вариант №12

Задание 1

Создать класс ШЕСТНАДЦАТЕРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «А», «В», «C», «D», «E», «F». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ШЕСТНАДЦАТЕРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность произведения операции побитовой ИЛИ для двух строк.

Задание 2

Класс "Треугольник":

Напишите класс "Треугольник" с приватными переменными для трех сторон. Вычислите возможен ли данный треугольник, используя дружественный класс.

Вариант №13

Задание 1

Создать класс ВОСЬМИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ВОСЬМИРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность объединения двух строк.

Задание 2

Класс "Задача":

Напишите класс "Задача" с приватными переменными для описания, срочности и статуса (выполнена/не выполнена), и дружественный класс, который выведет все срочные и невыполненные задания.

Вариант №14

Задание 1

Создать класс ТРОИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ТРОИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность представления значения строки в двоичной системе.

Задание 2

Класс "Книга":

Создайте класс "Книга" с приватными переменными для названия книги, автора и года издания. Реализуйте дружественный класс для подсчета количества книг одного года.

Вариант №15

Задание 1

Создать класс ТРОИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ТРОИЧНАЯ_СТРОКА принимает нулевое значение. Добавить возможность представления значения строки в двоичной системе.

Задание 2

Класс "Студент":

Напишите класс "Студент" с приватными переменными для имени, возраста и группы, и дружественный класс «Group”, который выведет переменные студентов одной группы.

Вариант №16

Задание 1

Создать класс ДВЕНАДЦАТИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «А», «В». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ДВЕНАДЦАТИРИЧНАЯ _СТРОКА принимает нулевое значение. Добавить возможность представления значения строки в десятичной системе.

Задание 2

Класс "Товар":

Создайте класс "Товар" с приватными переменными для названия, цены и количества на складе. Реализуйте дружественный метод, который будет возвращать общую стоимость товара на основе цены и количества.

Вариант №17

Задание 1

Создать класс БИТОВАЯ СТРОКА. Строки данного класса могут содержать только символы «0» и «1». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, БИТОВАЯ_СТРОКА принимает нулевое значение. Добавить возможность инвертирования значения строки.

Задание 2

Класс "Автомобиль":

Создайте класс "Автомобиль" с приватными переменными для марки, модели и года выпуска. Вычислите срок эксплуатации машины, используя дружественный класс.

Вариант №18

Задание 1

Создать класс ШЕСТНАДЦАТЕРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «А», «В», «C», «D», «E», «F». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ШЕСТНАДЦАТЕРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность произведения операции побитовой ИЛИ для двух строк.

Задание 2

Класс "Адрес":

Создайте класс "Адрес" с приватными переменными для улицы, города и почтового индекса. Реализуйте дружественный метод, который будет выводить адреса и индексы одного города.

Вариант №19

Задание 1

Создать класс ВОСЬМИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ВОСЬМИРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность объединения двух строк.

Задание 2

Класс "Календарь":

Напишите класс "Календарь" с приватными переменными для месяца и дня. Добавьте дружественный метод, который будет выводить день и месяц цифрами (к примеру, 12.02).

Вариант №20

Задание 1

Создать класс ВОСЬМИРИЧНАЯ_СТРОКА. Строки данного класса могут содержать только символы «0», «1», «2», «3», «4», «5», «6», «7». Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, ВОСЬМИРИЧНАЯ_ СТРОКА принимает нулевое значение. Добавить возможность объединения двух строк.

Задание 2

Класс "Заказ":

Создайте класс "Заказ" с приватными переменными для номера заказа, суммы(руб.) и статуса и дружественный класс, который выведет сумму выполненных заказов.


Лабораторная работа №5

Вариант №1

Создайте базовый класс Автомобиль, содержащий в себе информацию: марка автомобиля, модель, год выпуска. При помощи наследования реализуйте еще 2 производных класса: Легковые автомобили, Грузовые автомобили. Реализуйте следующие функции:

1) конструктор класса автомобиль должен принимать аргументы для инициализации марки, модели и года выпуска автомобилей;

2) класс Легковые автомобили должен иметь функцию, которая возвращает количество пассажирских мест в автомобиле;

3) класс Грузовые автомобили должен иметь функцию, которая возвращает тип двигателя.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №2

Создайте базовый класс Студент, содержащий в себе информацию: ФИО, группа, специальность. При помощи наследования реализуйте еще 2 производных класса: Бакалавриат, Специалитет. Реализуйте следующие функции:

1) конструктор класса Студент должен принимать аргументы для инициализации ФИО, группу и специальность студентов;

2) с помощью метода сортировки отсортируйте аргументы класса Студент по алфавиту;

3) класс Бакалавриат должен иметь функцию, которая возвращает количество студентов, учащихся на этой основе;

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

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №3

Создайте базовый класс Аквариум, содержащий в себе информацию: количество рыб, объем аквариума в литрах, температура воды. При помощи наследования реализуйте еще 2 производных класса: Морской аквариум, Пресноводный аквариум. Реализуйте следующие функции:

1) конструктор класса Аквариум должен принимать аргументы для инициализации количества рыб, объема аквариума в литрах, температуры воды;

2) класс Морской аквариум должен включать в себя дополнительные данные, такие как: Количество моллюсков, а также функцию установления солености воды;

3) класс Пресноводный аквариум должен включать в себя дополнительные данные, такие как: Количество растений.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №4

Создайте базовый класс Магазин, содержащий в себе информацию: наименование товара, дата изготовления. При помощи наследования реализуйте еще 2 производных класса: Овощной отдел, Молочный отдел. Реализуйте следующие функции:

1) конструктор класса Магазин должен принимать аргументы для инициализации наименования товаров, дату их изготовления;

2) класс Овощной отдел должен иметь дополнительную информацию: название, странапроизводитель, а также метод подсчета товаров из Китая;

3) класс Молочный отдел должен иметь дополнительную информацию: название товара, функцию, которая возвращает уровень (%) жирности продукта. Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №5

Создайте базовый класс Книга, содержащий в себе информацию: название, автор, год издания. При помощи наследования реализуйте еще 2 производных класса: Издательства, Жанр. Реализуйте следующие функции:

1) конструктор класса Книга должен принимать аргументы для инициализации названия, автора, года издания книг;

2) класс Издательства должен содержать дополнительную информацию: название издательства, название книги, количество страниц, а также метод, который подсчитывает среднее количество страниц у книг, изданных определенным издательством (на выбор);

3) класс Жанр должен иметь дополнительную информацию: название жанра, название книги, а также метод подсчета количества книг с жанром ужасы. Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №6

Создайте базовый класс Фигуры, содержащий в себе информацию: название, размеры сторон. При помощи наследования реализуйте еще 2 производных класса: Квадрат, Треугольник. Реализуйте следующие функции:

1) конструктор класса Фигуры должен принимать аргументы для инициализации названия, размер сторон фигур;

2) класс Квадрат должен иметь метод вычисления периметра и площади;

3) класс Треугольник должен содержать дополнительную информацию: тип треугольника (тупоугольный и т.п.).

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №7

Создайте базовый класс Животные, содержащий в себе информацию: название, тип обитания, тип питания (хищник, травоядный и т.п.). При помощи наследования реализуйте еще 2 производных класса: Млекопитающие, Птицы. Реализуйте следующие функции:

1) конструктор класса Животные должен принимать аргументы для инициализации названия, типа обитания, типа питания животных;

2) класс Животные должен содержать функцию, которая возвращает количество животных с типом питания травоядные;

3) класс Млекопитающее должен иметь дополнительную информацию: количество рождаемых детёнышей, а также функцию, которая возвращает среднее значение рождаемых детёнышей у всех млекопитающих;

4) класс Птицы должен иметь дополнительные данные: время бодрствования (ночное и т.п.).

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №8

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

1) конструктор класса Видеоигры должен принимать аргументы для инициализации названия, жанра, разработчика, года выпуска видеоигры;

2) класс Видеоигры должен иметь функцию вывода количества игр, выпущенных в 2005 году;

3) класс Одиночная игра должен иметь дополнительную информацию: длительность игры (время прохождения), а также метода подсчета среднего времени прохождения;

4) класс Кооперативная игра должен иметь дополнительную информацию: количество боссов, сложность игры.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №9

Создайте базовый класс Компания, содержащий в себе информацию о сотрудниках: ФИО, должность, зарплата. При помощи наследования реализуйте еще 2 производных класса: Продажи, Товары. Реализуйте следующие функции:

1) конструктор класса Компания должен принимать аргументы для инициализации ФИО, должности и з/п сотрудников, а также добавить метод подсчета количества всех сотрудников;

2) класс Продажи должен иметь дополнительную информацию: объем продаж, сотрудник, а также добавить метод для вычисления сотрудника, с наибольшим количеством продаж;

3) класс Товары должен содержать дополнительную информацию: наименование товара, цена, а также метод для подсчета средней цены товаров.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №10

Создайте базовый класс Страны, содержащий в себе информацию: название, столица, площадь. При помощи наследования реализуйте еще 2 производных класса: Население, Тип правления. Реализуйте следующие функции:

1) конструктор класса Страны должен принимать аргументы для инициализации названия, столицы, площади стран;

2) с помощью метода сортировки отсортируйте аргументы класса Страны по алфавиту;

3) класс Население должен иметь дополнительную информацию: население(количество), и функцию, которая возвращает количество студентов, учащихся на этой основе;

4) класс Тип правления должен иметь дополнительную информацию: тип правления, а также метод подсчета стран с типом правления монархия.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №11

Создайте базовый класс Планеты, содержащий в себе информацию: название, среднее расстояние от солнца, диаметр. При помощи наследования реализуйте еще 2 производных класса: Наземность, Гиганты. Реализуйте следующие функции:

1) конструктор класса Студент должен принимать аргументы для инициализации ФИО, группу и специальность студентов;

2) класс Планеты должен содержать метод вывода планет, со средним расстоянием больше 500 млн.км;

3) класс Наземность должен иметь дополнительную информацию: наличие атмосферы, наличие воды;

4) класс Гиганты должен иметь дополнительную информацию: название планеты, количество спутников, а также метод вывода планеты с наименьшим количеством спутников.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №12

Создайте базовый класс Фрукты, содержащий в себе информацию: наименование, цвет, цена. При помощи наследования реализуйте еще 2 производных класса: Яблоки, Ягоды. Реализуйте следующие функции:

1) конструктор класса Фрукты должен принимать аргументы для инициализации наименования, цвета, цены фруктов;

2) класс Яблоки должен иметь дополнительную информацию: вкус (кисло/сладко и т.п.), количество товара;

3) класс Ягоды должен иметь дополнительную информацию: название ягоды, цена за 100грамм, а также метод вычисления цены ягод на кг.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №13

Создайте базовый класс Лес, содержащий в себе информацию: название, площадь, тип леса. При помощи наследования реализуйте еще 2 производных класса: Деревья, Грибы. Реализуйте следующие функции:

1) конструктор класса Лес должен принимать аргументы для инициализации названия, площади, типа леса;

2) класс Деревья должен иметь дополнительную информацию: название, высота, порода (хвойные и т.п.), возраст, а также метод подсчета среднего возраста деревьев;

3) класс Грибы должен иметь дополнительную информацию: название, пищепрегодность (съедобные/несъедобные), а также метод подсчета количества съедобных грибов.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №14

Создайте базовый класс Напитки, содержащий в себе информацию: название, объем, цена. При помощи наследования реализуйте еще 2 производных класса: Сок, Газировка. Реализуйте следующие функции:

1) конструктор класса Напитки должен принимать аргументы для инициализации названия, объема, цены напитков;

2) класс Сок должен содержать дополнительную информацию: тип сока (яблочный и т.п.), наличие мякоти;

3) класс Газировка должен одержать дополнительную информацию: тип газировки (сильногазированная и т.п.), наличие сахара, а также функцию, которая возвращает массовую долю углекислого газа.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №15

Создайте базовый класс Духи, содержащий в себе информацию: название, объем (мл), цена. При помощи наследования реализуйте еще 2 производных класса: Женские ароматы, Мужские ароматы. Реализуйте следующие функции:

1) конструктор класса Женские ароматы должен принимать аргументы для инициализации названия, объема(мл), цены духов;

2) класс Женские ароматы должен содержать дополнительную информацию: тип аромата (цветочный и т.п.), страна производитель, а также функцию, которая возвращает количество;

3) класс Мужские ароматы должен содержать дополнительную информацию: тип духов (твердые, жидкие), а также функцию, которая возвращает концентрацию эфирных масел.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №16

Создайте базовый класс Цветы, содержащий в себе информацию: название, цвет, стоимость за 1 цветок. При помощи наследования реализуйте еще 2 производных класса: Букетные цветы, Комнатные растения. Реализуйте следующие функции:

1) конструктор класса Цветы должен принимать аргументы для инициализации названия, цвета, стоимости за 1 цветок;

2) класс Букетные цветы должен содержать дополнительную информацию: название, высоту(длину), а также метод подсчета цены цветка за 5 штук;

3) класс Комнатные растения должен иметь дополнительную информацию: название, частота полива в неделю, а также функцию, которая возвращает среднее значение частоты полива растений.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №17

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

1) конструктор класса Студент должен принимать аргументы для инициализации названия, количества, даты изготовления;

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

3) класс Сытная выпечка должен иметь дополнительную информацию: мука (ржаная и т.п.), начинка, количество, а также функцию, которая возвращает количество выпечки с «начинкой ветчина и сыр».

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №18

Создайте базовый класс Одежда, содержащий в себе информацию: название, размер, пол, цена. При помощи наследования реализуйте еще 2 производных класса: Верхняя одежда, Повседневная одежда. Реализуйте функции:

1) конструктор класса Одежда должен принимать аргументы для инициализации названия, размера, пола, цены одежды;

2) класс Верхняя одежда должен содержать дополнительную информацию: тип верхней одежды (куртка и т.п.), материал;

3) класс Повседневная одежда должен иметь дополнительную информацию: тип одежды (брюки и т.п.), материал, размер, а также функцию, которая возвращает количество вещей с содержанием шерсти.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №19

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

1) конструктор класса Шоколадная фабрика должен принимать аргументы для инициализации названия продукта, количества продукта, добавок;

2) класс Шоколад должен иметь функцию вывода количества (%) какао в продуктах;

3) класс Продажи должен иметь дополнительную информацию: название продукта, количество проданного, цена реализации, а также метод, который подсчитывает количество проданного товара.

Все классы должны иметь функцию getInfo(), выводящую аргументы.

Вариант №20

Создайте базовый класс Школа, содержащий в себе информацию: название учебного заведения, адрес, количество учащихся. При помощи наследования реализуйте еще 2 производных класса: Ученики, Преподаватели. Реализуйте следующие функции:

1) конструктор класса Школа должен принимать аргументы для инициализации названия учебного заведения, адреса, количества учащихся;

2) класс Ученики должен содержать дополнительную информацию: ФИО учащегося, класс, средний балл, а также функцию, которая выводит значение количества учеников 11а класса со средним баллом больше 4,5;

3) класс Преподаватели должен содержать дополнительную информацию: ФИО, возраст, какой предмет ведет, а также функцию, которая выводит преподавателей, имеющих классное руководство.

Все классы должны иметь функцию getInfo(), выводящую аргументы.


Лабораторная работа №6

Вариант №1

Создайте базовый класс Shape, который имеет виртуальную функцию calculateArea() для вычисления площади фигуры. От него унаследуйте классы Circle, Rectangle и Triangle, каждый из которых реализует метод calculateArea() для своего типа фигуры.

Вариант №2

Создайте абстрактный класс Animal, у которого есть виртуальный метод makeSound(). Наследуйте от него классы Lion, Elephant и Monkey, каждый из которых переопределяет метод makeSound() для издания своего уникального звука.

Вариант №3

Создайте базовый класс Account с методами deposit() и withdraw(). От него унаследуйте классы SavingsAccount и CheckingAccount, в которых переопределите методы в зависимости от типа счета.

Вариант №4

Создайте базовый интерфейс Formatter, который имеет виртуальный метод format(). От него унаследуйте классы BoldFormatter, ItalicFormatter и UnderlineFormatter, которые представляют различные способы форматирования текста.

Вариант №5

Создайте базовый класс Task с методом displayDetails(). От него унаследуйте классы WorkTask, HomeTask и StudyTask, каждый из которых реализует метод displayDetails(), чтобы отображать информацию о задаче в различном формате.

Вариант №6

Создайте абстрактный класс Game с чисто виртуальным деструктором и виртуальной функцией play(). Реализуйте классынаследники Chess и Poker, которые переопределяют метод play() для игры в соответствующую игру.

Вариант №7

Создайте абстрактный класс Vehicle, у которого есть поля для количества колес и максимальной скорости. Добавьте абстрактные методы для вывода информации о транспортном средстве. Затем создайте классы Car и Bicycle, которые наследуются от класса Vehicle. Реализуйте конструкторы для каждого из этих классов, которые будут вызывать конструктор базового класса Vehicle и передавать необходимые параметры для инициализации.

Вариант №8

Создайте базовый класс Fruit с методом getTaste(). Создайте классы Apple, Banana и Orange, которые наследуются от класса Fruit и переопределяют метод getTaste() для каждого фрукта.

Вариант №9

Создайте базовый класс Person с методом work(). Создайте классы Teacher, Student и Engineer, которые наследуются от класса Person и реализуют метод work() для каждой профессии.

Вариант №10

Создайте абстрактный класс Furniture, содержащий чисто виртуальную функцию displayInfo(). Реализуйте классынаследники Chair и Table, которые переопределяют функцию displayInfo() для отображения информации о соответствующей мебели.

Вариант №11

Создайте класс Sportsman с виртуальной функцией тренировки. Создайте классы Boxer и Runner, которые наследуются от класса Sportsman и реализуют метод тренировки.

Вариант №12

Создайте класс Colour с виртуальной функцией смешивания. Создайте классы Red, Blue и Yellow, которые наследуются от класса Colour и реализуют метод смешивания.

Вариант №13

Создайте абстрактный класс Drink с виртуальной функцией приготовления. Создайте классы Tea, Coffee и Cocktail, которые наследуются от класса Drink и реализуют метод приготовления.

Вариант №14

Создайте абстрактный класс Book с виртуальной функцией read(). Создайте подклассы Novel, Detective и Fantastic, переопределите функцию read().

Вариант №15

Создайте базовый класс Transport с виртуальной функцией Movement (передвижение). Создайте производные классы Car, Bicycle и Plane с их собственными реализациями функции передвижения. В main() создайте массив указателей на объекты разных классов и вызовите функцию передвижения для каждого объекта.

Вариант №16

Создайте базовый класс Animal с методом eat(). Создайте классы Dog, Cat и Bird, которые наследуются от класса Animal и переопределяют метод eat() для каждого животного, чтобы они ели соответствующую пищу.

Вариант №17

Создайте класс Moll с виртуальным методом CalculatePrice(). Напишите классынаследники Product и Service, переопределяющие метод CalculatePrice().

Вариант №18

Определите абстрактный класс Plant с виртуальным методом grow(). Реализуйте классынаследники Flower и Tree, переопределяющие метод grow().

Вариант №19

Создайте абстрактный класс Technique с виртуальной функцией use(). Реализуйте подклассы Computer, Smartphone и Tablet, переопределите функцию use().

Вариант №20

Создать базовый класс Fruit с виртуальным методом Weight. От этого класса унаследовать классы Apple, Pea и Orange. В основной программе создать массив указателей на объекты базового класса и вызвать для каждого элемента метод Weight.



Узнать стоимость этой работы