- •1 Изучить теоретический материал и дать ответы на контрольные вопросы.
- •3 Выполнить программу на компьютере.
- •1 Базовый уровень
- •1 Изучить теоретический материал и дать ответы на контрольные вопросы.
- •3 Выполнить программу на компьютере.
- •1 Базовый уровень
- •1 Изучить теоретический материал и дать ответы на контрольные вопросы.
- •3 Выполнить программу на компьютере.
- •1 Базовый уровень
- •1 Изучить теоретический материал и дать ответы на контрольные вопросы.
- •3 Выполнить программу на компьютере.
1 Изучить теоретический материал и дать ответы на контрольные вопросы.
2 Составить программу на языке С++ в соответствии с индивидуальным заданием для базового, среднего и высокого уровней.
3 Выполнить программу на компьютере.
1 Базовый уровень
Для всех вариантов заданий создать иерархию классов (не менее четырех), соблюдая следующий принцип: базовый класс - 2 и более классов-потомков 1 уровня - класс-потомок 2 уровня. Определить необходимые поля, конструкторы и деструкторы, сеттеры и геттеры. Использовать виртуальный базовый класс.
В основной программе вводить значения полей каждого объекта и выводить результаты.
1. геометрические фигуры (прямоугольник, трапеция, эллипс, круг, треугольник, ромб)-пирамида; 2. мебель - (шкаф, стол, диван, стул, кровать)- комплект; 3. электроника - (радиоприемник, видеомагнитофон, плеер)- телевизор; 4. транспорт (легковые и грузовые автомобили , автобус) -троллейбус; 5. компьютеры -(системный блок, дисплей, клавиатура, мышь)-ноутбук; 6. инструмент(молоток, пила, дрель, рубанок, плоскогубцы)-дрель; 7. медицина (врач, поликлиника, лекарство, пациент, аптека) - карта пациента; 8. образование (школа, предметы, учитель, ученик) - расписание; 9. спорт - (футбол, баскетбол, хоккей, формула 1, плавание, волейбол) - гандбол; 10. торговля (магазин, товар, продавец, покупатель, склад) - чек; 11. кино (кинофильм, кинотеатр, репертуар) - билет; 12. литература - (писатель, книга, издательство) - библиотека; 13. отдых - (туристическая фирма, курорт, отель) - путевка; 14. строительство - (фирма, дом, покупатель, комната, кухня) -квартира; 15. музыка (композитор, ансамбль, стихи) - песня; 16. производство - (продукт, производитель, магазин) - закупка; 17. ателье - (клиент, мастер, материал, продукция)- заказ.
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 (футбольный мяч), Волейбол (Волейбольный мяч), 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. Главную написать функцию, которая демонстрирует работу созданных классов. В методах всех классов предусмотреть проверки на корректность переданных параметров. 6) Создать класс CPoint - точка. На его основе создать классы CcoloredPoint и CLine. На основе класса CLine создать класс CColoredLine и класс CPolyLine - многоугольник. Все классы должны иметь методы для установки и получения значений всех координат, а также изменения цвета и получения текущего цвета. Написать демонстрационную программу, в которой будет использоваться список объектов этих классов в динамической памяти. 7) Создать абстрактный класс CVehicle. На его основе реализовать классы CPlane, ССаг и CShip. Классы должны иметь возможность задавать и получать координаты наты, параметры средств передвижения (цена, скорость, год выпуска). Именно Для лета должна быть определена высота, для самолета и корабля - количество пассажиров. Для корабля - порт приписки. Написать программу, которая создает список объектов этих классов в динамической памяти. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов. 8) Создать абстрактный базовый класс Нумер с реализацией арифметических операторов и классы-потомки Цели и Дробні. 9) Создать абстрактный базовый класс Тело с реализацией функции которая вычисляет площадь фигуры, объем и поверхность и классы-потомки Шар и Параллелепипед. 10) Создать абстрактный базовый класс Треугольник с полями сторона1, сторона2, угол, с реализацией поиска площади и периметру. Классы-потомки Прямоугольный треугольник, Равносторонний треугольник, Равнобедренный треугольник. 11) Создать абстрактный базовый класс Корень с реализацией поиска корней уравнения. Классы-потомки Линейное уравнение, Квадратное уравнение. 12) Создать абстрактный базовый класс Функция с реализацией поиска зависимости. Классы-потомки Эллипс, Гипербола. 13) Создать абстрактный базовый класс Пары с арифметическими операторами. Классы-потомки Комплексное, Рациональное. 14) Создать абстрактный базовый класс Пары с арифметическими операторами. Классы-потомки Комплексное, Деньги. 15) Создать абстрактный базовый класс Пары с арифметическими операторами. Классы-потомки Дата, Время.
Итоговая СРС
Тема: Шаблоны классов
Цель работы. Изучить шаблоны классов.
Контрольные вопросы
1. Что такое шаблоны функций?
2. Использование шаблонов функций?
3. Что такое шаблоны классов?
4. Синтаксис объявления шаблона класса?
5. Предназначение шаблона класса?
6. Синтаксис создания объекта на основе шаблона класса?
7. Преимущества использования шаблона класса?
Ход работы:
