Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






1. Создать абстрактный базовый класс уравнения с виртуальной функцией печать корней уравнения. Создать производные классы: линейное уравнение и квадратное уравнение. Определить функцию вычисления корней уравнений. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

2. Создать абстрактный базовый класс фигура с виртуальной функцией – печать объёма фигуры. Создать производные классы: параллелепипед, пирамида, тетраэдр, шар со своими функциями печати объема. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

3. Создать абстрактный базовый класс фигура с виртуальной функцией – вычисление площади фигуры. Создать производные классы: прямоугольник, круг, прямоугольный треугольник, трапеция со своими функциями вычисления площади. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

4. Создать абстрактный базовый класс фигура с виртуальной функцией – печать площади поверхности. Создать производные классы: параллелепипед, тетраэдр, шар со своими функциями печати площади поверхности. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов, а затем печатаются площади всех фигур, входящих в список.

5. Создать абстрактный базовый класс прогрессия с виртуальной функцией – вычисление суммы прогрессии. Создать производные классы: арифметическая прогрессия и геометрическая прогрессия. Каждый класс имеет два поля типа double: первый член прогрессии u и постоянная разность (для арифметической) и постоянное отношение (для геометрической). Определить функцию вычисления суммы, где параметром является количество элементов прогрессии.

6. Создать абстрактный класс – млекопитающее, с чисто виртуальной функцией info(), которая возвращает строку с описанием объекта. Определить производные классы - животное и человек. У животных определить производные классы собака и корова. Определить виртуальные функции описания человека, собаки и коровы. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов, а затем печатается информация обо всех млекопитающих из списка.

7. Создать абстрактный класс кривая с виртуальной функцией вычисления координаты y для некоторой x. Создать производные классы: прямая, эллипс, гипербола со своими функциями вычисления y в зависимости от входного параметра x. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов, а затем печатается информация обо всех конкретных элементах списка.

8. Создать абстрактный класс структура данных с виртуальной функцией: норма. Создать производные классы: комплексные числа, вектор из 10 элементов, матрица (2х2). Определить функцию нормы - для комплексных чисел - модуль в квадрате, для вектора - корень квадратный из суммы элементов по модулю, для матрицы - максимальное значение по модулю. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов, а затем печатается информация обо всех конкретных элементах списка.

9. Создать абстрактный базовый класс - Предок, с строковым параметром имя. определить виртуальную функцию печати имени. Создать производный класс Ребенок, у которого функция печати дополнительно к имени предка выводит имя ребёнка. Создать производный класс от последнего класса - Внук, у которого есть отчество. Написать для него свою функцию печати. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов, а затем печатается информация обо всех конкретных элементах списка.

10. Создать абстрактный базовый класс - работник и производные классы - служащий с почасовой оплатой, служащий в штате и служащий с процентной ставкой. Определить функцию начисления зарплаты. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов, а затем печатается информация обо всех конкретных элементах списка.

11. Создать абстрактный базовый класс фигура с виртуальной функцией – возврат количества углов в фигуре. Создать производные классы: параллелепипед, пирамида, тетраэдр, треугольник со своими функциями. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

12. Создать абстрактный базовый класс список. Реализовать на его базе классы стек и очередь с виртуальными функциями добавления и удаления элементов.

13. Создать абстрактный класс объект мироздания. Определить наследуемые классы - лиса, кролик и трава. Лиса может “съесть” кролика. Кролик “ест” траву. Лиса и кролик могут “умереть” - определен их возраст. Кроме этого определен класс - отсутствие жизни. Если в окрестности имеется больше травы, чем кроликов, то трава остается, иначе трава съедена. Если лис слишком старый он может умереть. Если лис слишком много (больше 5 в окрестности), лисы больше не появляются. Если кроликов меньше лис, то лис ест кролика.

14. Создать абстрактный класс человек, и производные от него девушка и юноша. Определить виртуальную функцию реакции человека на вновь увиденного другого человека. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

15. Создать абстрактный базовый класс данные. Создать производные классы сигнал, результат обработки и вспомогательные данные. Все данные имеют виртуальные функции отображения, сохранения и обработки.

16. Поступающие звонки оператор классифицирует (т.е. в какой город, регион, страну и т.д. поступил звонок), заносит соответствующие данные и добавляет запись к абоненту. Необходимо реализовать унифицированные функции подсчета общего времени и стоимости как для абонента (звонящий) так и для всех абонентов, выдать на экран специфическую информацию о вызовах. Для этого реализовать абстрактный базовый класс звонок с виртуальной функцией стоимость, и наследники этого класса входящий звонок и исходящий звонок.

17. Реализовать распознавание объектов из некоторого множества (расширяемого) на основе вопросов и ответов. Для этого реализовать абстрактный базовый класс объект распознавания и 2-3 его наследника. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

18. Реализовать обработку сообщений и информацию о типе в базовом классе. Создать производные классы. При отправке сообщений проверять существование объекта. Для проверки определить массив указателей на абстрактный класс, которым Lприсваиваются адреса различных объектов.

19. Создать абстрактный базовый класс data и производные целое, вещественное, строка для чтения и записи информации, как в текстовом, так и в бинарном формате. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

20. Разработать абстрактный базовый класс object, для него предусмотреть чисто виртуальные функции: возврата уникального идентификатора класса, возврата указателя на строку с именем класса, сравнения двух объектов, клонирования объекта. Реализовать не менее 3 наследников с полной функциональностью. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

21. Разработать абстрактный базовый класс object, для него предусмотреть чисто виртуальные функции: возврата уникального идентификатора класса, загрузки объекта из текстовой строки, сравнения двух объектов, выгрузки объекта в текстовую строку в динамической памяти. Реализовать не менее 3 наследников с полной функциональностью. Для проверки определить массив указателей на абстрактный класс, которым присваиваются адреса различных объектов.

22. Реализовать программу, имитирующую работу автосервиса. Через автосервис проходят машины, требующие различных видов работ. Всего по России существует сеть автосервисов (но не больше 10). Реализовать следующие функции:

− Добавление автосервиса (сначала 0)

− Удаление автосервиса (по названию)

Для каждого автосервиса реализовать следующие функции:

− Добавление заявки

− Удаление заявки

− Вывод общей информации (кол-во заявок каждого типа)

− Очистка списка заявок

− Подсчёт выручки за определённый день (сумма цен за заданную дату)

− Вывод всех записей

В данном случае автосервис – класс-итератор, заявка – абстрактный базовый класс, от которого необходимо реализовать не менее 3 наследников.

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

− Добавление записи

− Удаление записи

− Полная очистка списка

− Определение, кого больше, М или Ж

− Определение среднего возраста

− Печать полного списка записей

− Сортировка по имени, возрасту

В данном случае телефонная книга – класс-итератор, запись – абстрактный базовый класс, от которого необходимо реализовать не менее 3 наследников.

24. Реализовать программу, имитирующую список товаров магазина бытовой электроники. В неё можно добавлять различные элементы.

Для каждого магазина:

− Добавление товара

− Удаление товара

− Полная очистка списка

− Вывод всех товаров

− Вывод товаров выбранного типа

− Сортировка товаров по дате производства

В данном случае список товаров – класс-итератор, товар – абстрактный базовый класс, от которого необходимо реализовать не менее 3 наследников.

25. Реализовать программу, имитирующую список игр. В неё можно вносить различные игры. Реализовать следующие функции:

− Добавление игры

− Удаление игры

− Полная очистка списка

− Определение, каких игр больше

− Определить, игр какого издателя больше

− Отсортировать игры по имени

− Вывод списка

В данном случае список игр – класс-итератор, игра – абстрактный базовый класс, от которого необходимо реализовать не менее 3 наследников.

26. Реализовать программу, имитирующую склад продуктов. В неё можно добавлять различные элементы. Все продукты подразделяются по складам. Складов – не более 4. Реализовать следующие функции:

− Добавление склада

− Удаление склада

− Сортировка складов по алфавиту

Для каждого типа:

− Добавление продукта

− Удаление продукта

− Полная очистка списка

− Вывод списка

В данном случае склад продуктов – класс-итератор, продукт – абстрактный базовый класс, от которого необходимо реализовать не менее 3 наследников.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.