Примеры практического задания №2

 

1) Создать абстрактный базовый класс Figure (фигура) с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle (Прямоугольник), Circle (Круг), Trapezium (Трапеция), переопределить в них функции вычисления площади и периметра. Площадь трапеции S=h*(a+b)/2. Написать главную функцию, демонстрирующую работу созданных классов. В методах всех классов предусмотреть проверки на корректность передаваемых параметров.

 

2) Создать абстрактный класс Currency (валюта) для работы с денежными суммами. Определить виртуальные функции перевода в рубли и вывода на экран. Реализовать производные классы Dollar (Доллар), Euro (Евро) со своими функциями перевода и вывода средств на экран. Курс перевода определяется соответствующими константами внутри класса. Написать главную функцию, демонстрирующую работу созданных классов. В методах всех классов предусмотреть проверки на корректность передаваемых параметров.

 

3) Создать абстрактный базовый класс Oven (Печь) с виртуальным методом определения времени приготовления различных блюд. Этот класс должен иметь свойства для хранения режима (Mode). Каждый режим имеет свою мощность. Определить производные классы Microwave (Микроволновая печь), ЕlectricFire (электрическая печь), GasFurnace (Газовая печь) с собственными режимами и функциями вычисления времени приготовления блюда в зависимости от выбранного режима. Время приготовления для микроволновой печи вычислять по формуле t=Q*m/P. Время приготовления для электрической печи вычислять по формуле t=0,6*Q*m/P. Время приготовления для газовой печи вычислять по формуле t=0,8*Q*m/P. Здесь Q, m – количество полезной энергии, поглощаемой блюдом и масса блюда, P – мощность печи в зависимости от режима. Параметры Q, m и Mode задаются пользователем. Написать главную функцию, демонстрирующую работу созданных классов. В методах всех классов предусмотреть проверки на корректность передаваемых параметров.

 

4) Различные виды мячей катятся по ровной поверхности. Создать абстрактный класс Ball (мяч) с виртуальным методом определения тормозного пути в зависимости от начальной скорости. Создать классы Football (футбольный мяч), Volleyball (Волейбольный мяч), Tennisball (теннисный мячик), которые переопределяют метод определения тормозного пути. Вычисление тормозного пути производится по формуле L = mv2/2F, где v – начальная скорость (м/c), m – масса мяча (кг), F – сила трения мяча (Н). Начальная скорость задается пользователем. Сила трения мяча определяется константой внутри класса (для футбольного – 0,1 Н, для волейбольного – 0,05 H, для теннисного – 0,07 H). Масса футбольного и волейбольного мячей определяется по формуле m = 1200 * 4/3 * Pi * (R1 – R2)3, где 1200 – плотность резины в кг/м3, R1 – наружный радиус мяча, R2 – внутренний радиус мяча, R2 = R1 – B, B – толщина стенки мяча. Для футбольного мяча R1 = 0,1м, B = 0,005м. Для волейбольного мяча R1 = 0,15м, B = 0,0025м. Масса теннисного мяча (он не имеет внутри воздуха) определяется по формуле m = 1200 * 4/3 * Pi * R3. Для теннисного мяча R = 0,03м. Написать главную функцию, демонстрирующую работу созданных классов. В методах всех классов предусмотреть проверки на корректность передаваемых параметров.

 

5) Создать абстрактный базовый класс Auto (Автомобиль) с виртуальным методом определения количества топлива, требуемого для осуществления поездки на N километров для типа местности T и обычным методом, возвращающим логическое значение, указывающее возможна ли такая поездка (хватит ли топлива). Текущее количество топлива должно храниться в свойстве класса Auto. Создать классы Truck (грузовой автомобиль), Car (легковой автомобиль), Moped (мопед), которые переопределяют метод расчета количества топлива. Расчет количества топлива производится по формуле K = p * S / R, где p – коэффициент, зависящий от типа местности, S – расстояние, которое требуется проехать, R – расход топлива. Параметр S задается пользователем. Параметр R определяется константой внутри класса (для грузового автомобиля R = 15 л/100 км, для легкового автомобиля R = 10 л/100 км, для мопеда R = 2 л/100 км). Для трасс значение p=1, для пересеченной местности p=0,8, для бездорожья p=0,7, для города p=0,5. Написать главную функцию, демонстрирующую работу созданных классов. В методах всех классов предусмотреть проверки на корректность передаваемых параметров