- •Наследование классов, виртуальные функции
- •Теоретические сведения
- •Передача параметров в базовый класс
- •Типы наследования (уровни доступа к базовому классу)
- •Public – наследование
- •Использование методов
- •Private – наследование
- •Использование методов
- •Protected – наследование
- •Виртуальные функции и полиморфизм
- •Контрольные вопросы
- •Общие требования выполнения работы
Контрольные вопросы
Катко охарактеризуйте механизм наследования: для чего нужно, что дает программисту.
Формат определения производного класса из базового, кратко поясните все элементы.
Public-наследование: особенности доступа из производного класса к данным и методам базового класса
Private-наследование: особенности доступа из производного класса к данным и методам базового класса
Protected-наследование: особенности доступа из производного класса к данным и методам базового класса
Конструкторы и деструкторы при наследовании : последовательность вызова из производного и базового классов.
Передача параметров в конструктор базового класса, приведите простой пример.
Одноименные поля в производном и базовых классах, правила обращения
Для чего нужны виртуальные функции?
Приведите простой пример полиморфизма, реализованного с помощью виртуальной функции.
Общие требования выполнения работы
Для подготовки к лабораторной работе используйте данные из папок «Справочная информация» и «Теория»
Вносим изменения в проект – добавляем новый, «родственный» класс и создаем иерархию классов, используя механизмы наследования
В иерархии должны быть статические переменные для учета общего числа элементов в производных классах.
Данные размещаются в динамической памяти.
Диалоговый интерфейс, разработанный ранее, должен быть изменен с учетом работы с разными классами (с производными классами)
При выполнении функции «выход из программы» нужно сохранить базу на диске
Первичное создание базы – ввод данных с клавиатуры
Если программа уже запускалась, то данные загружаются из файла перед выходом на диалог.
Обязательные функции для всех вариантов:
добавить новые элементы производных классов
распечатка данных в табличном виде
выход из программы
Все функции, реализованные в базе данных переделать для работы с производными классами
В классе должны быть все необходимые элементы для работы тестовой программы.
К БДЗ предъявляются большие требования, чем к лабораторной работе.
Оценка проходит по 2 критериям:
оценка проекта – 50%
оценка реализации (сама программа) – 50%
Оформление ввода-вывода на экране
Надежность работы программы (она должна работать с разнообразными данными, реагировать на ошибки оператора)
Защита БДЗ (ответы на вопросы, по требованию преподавателя – внесение небольших изменений в программу во время защиты)
Номер компьютера |
Варианты заданий
|
1,11, 21 |
При выполнении задания используйте общие требования выполнения работы Видоизменить базу данных: Банк (депозит) На основе 2-х классов (bank, bank1) спроектировать и реализовать иерархию из одного базового (account) и 2-х производных классов (deposit, credit). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private): Клиент: объект класса fio Номер кредитной карты : целое число Сумма кредита: дробное число Процент по кредиту: дробное число
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
2,12, 22
|
При выполнении задания используйте общие требования выполнения работы Видоизменить базу данных: Поликлиника На основе 2-х классов (clinic, clinic1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (doctor,reception). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private): Врач: объект класса fio Число пациентов : целое число Дата приема: объект класса date
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
3,13, 23 |
При выполнении задания используйте общие требования выполнения работы Видоизменить базу данных: Склад (товары) На основе 2-х классов (storage, storage1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (storage,stock). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private):: Название товара: текстовая строка Цена: дробное число Количество: целое число Дата прихода товара : объект класса date
Поля класса date: day: числовое поле month: текстовая строка year: числовое поле
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
4,14, 24 |
При выполнении задания используйте общие требования выполнения работы Видоизменить базу данных: Поезд (заказ билетов) На основе 2-х классов (ticket, ticket1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (storage,stock). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private):: Пассажир : объект класса fio Цена билета : дробное число Номер вагона : целое число Номер места : целое число Дата поездки : объект класса date
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
5,15, 25 |
При выполнении задания используйте общие требования выполнения работы Видоизменить базу данных: Работник (зарплата) На основе 2-х классов (worker,worker1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (work, personnel). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private): Работник : объект класса fio Профессия : текстовая строка Дата поступления : объект класса date
Поля класса date: day: числовое поле month: текстовая строка year: числовое поле
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
6,16, 26 |
При выполнении задания используйте общие требования выполнения работы Видоизменить базу данных: Почта (ценное письмо) На основе 2-х классов (letter, letter1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (letter, delivery). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private): Получатель : объект класса fio Адрес получателя: текстовая строка Дата вручения письма : объект класса date
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
7,17,27
|
При выполнении задания используйте общие требования выполнения работы Видоизменить базу данных: Производство (поставщики) На основе 2-х классов (supplier, supplier1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (delivery1, delivery2). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private): Продавец : объект класса fio Сальдо : дробное число Дата продажи : объект класса date
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
8,18, 28 |
При выполнении задания используйте общие требования Видоизменить базу данных: Студент На основе 2-х классов (student, teacher) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (leaner, prepod). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private): Преподаватель : объект класса fio Кафедра : перечисляемый тип (например-spintex,bms,pkims) Учебный курс : текстовая строка
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
9,19, 29 |
При выполнении задания используйте общие требования Видоизменить базу данных: Преподаватель На основе 2-х классов (prepod, leaner) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (teacher, student). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private): Студент : Объект класса man Факультет : перечисляемый тип (например-pin, pm, kt) Номер группы : целое число
Студент : два строковых поля (фамилия, имя) Номер курса : целое число (год обучения)
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
10,20, 30
|
При выполнении задания используйте общие требования Видоизменить базу данных: Пищевое производство (расчеты) На основе 2-х классов (food, food1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (product1, product2). Информация о 2-х классах для проектирования иерархии:
Элементы-данные класса (все данные private):
Название изделия : текстовая строка Количество : целое число Стоимость : дробное число Дата производства : Объект класса date Дата продажи : Объект класса date
Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код). Сделайте виртуальными и переопределите в производных классах те методы, для которых это целесообразно и возможно. Тестовая программа : Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов |
