Добавил:
владимир Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_С++ / Лабы / ООП_Лабораторная работа №4.doc
Скачиваний:
0
Добавлен:
17.08.2025
Размер:
207.36 Кб
Скачать

Контрольные вопросы

  1. Катко охарактеризуйте механизм наследования: для чего нужно, что дает программисту.

  2. Формат определения производного класса из базового, кратко поясните все элементы.

  3. Public-наследование: особенности доступа из производного класса к данным и методам базового класса

  4. Private-наследование: особенности доступа из производного класса к данным и методам базового класса

  5. Protected-наследование: особенности доступа из производного класса к данным и методам базового класса

  6. Конструкторы и деструкторы при наследовании : последовательность вызова из производного и базового классов.

  7. Передача параметров в конструктор базового класса, приведите простой пример.

  8. Одноименные поля в производном и базовых классах, правила обращения

  9. Для чего нужны виртуальные функции?

  10. Приведите простой пример полиморфизма, реализованного с помощью виртуальной функции.

Общие требования выполнения работы

  1. Для подготовки к лабораторной работе используйте данные из папок «Справочная информация» и «Теория»

  2. Вносим изменения в проект – добавляем новый, «родственный» класс и создаем иерархию классов, используя механизмы наследования

  3. В иерархии должны быть статические переменные для учета общего числа элементов в производных классах.

  4. Данные размещаются в динамической памяти.

  5. Диалоговый интерфейс, разработанный ранее, должен быть изменен с учетом работы с разными классами (с производными классами)

  6. При выполнении функции «выход из программы» нужно сохранить базу на диске

  7. Первичное создание базы – ввод данных с клавиатуры

  8. Если программа уже запускалась, то данные загружаются из файла перед выходом на диалог.

  9. Обязательные функции для всех вариантов:

  • добавить новые элементы производных классов

  • распечатка данных в табличном виде

  • выход из программы

  1. Все функции, реализованные в базе данных переделать для работы с производными классами

  2. В классе должны быть все необходимые элементы для работы тестовой программы.

К БДЗ предъявляются большие требования, чем к лабораторной работе.

Оценка проходит по 2 критериям:

  1. оценка проекта – 50%

  2. оценка реализации (сама программа) – 50%

    • Оформление ввода-вывода на экране

    • Надежность работы программы (она должна работать с разнообразными данными, реагировать на ошибки оператора)

Защита БДЗ (ответы на вопросы, по требованию преподавателя – внесение небольших изменений в программу во время защиты)

Номер компьютера

Варианты заданий

1,11,

21

При выполнении задания используйте общие требования выполнения работы

Видоизменить базу данных: Банк (депозит)

На основе 2-х классов (bank, bank1) спроектировать и реализовать иерархию из одного базового (account) и 2-х производных классов (deposit, credit).

Информация о 2-х классах для проектирования иерархии:

  1. class bank, разработанный в лабораторной работе №3

  2. Новый class bank1 со следующими характеристиками:

Элементы-данные класса (все данные private):

Клиент: объект класса fio

Номер кредитной карты : целое число

Сумма кредита: дробное число

Процент по кредиту: дробное число

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

2,12,

22

При выполнении задания используйте общие требования выполнения работы

Видоизменить базу данных: Поликлиника

На основе 2-х классов (clinic, clinic1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (doctor,reception).

Информация о 2-х классах для проектирования иерархии:

  1. class clinic, разработанный в лабораторной работе №3

  2. Новый class clinic1 со следующими характеристиками:

Элементы-данные класса (все данные private):

Врач: объект класса fio

Число пациентов : целое число

Дата приема: объект класса date

  1. Создать класс date: три числовых поля (day,month,year) для встраивания в класс clinic1

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии (для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

3,13,

23

При выполнении задания используйте общие требования выполнения работы

Видоизменить базу данных: Склад (товары)

На основе 2-х классов (storage, storage1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (storage,stock).

Информация о 2-х классах для проектирования иерархии:

  1. class storage, разработанный в лабораторной работе №3

  2. Новый class storage1 со следующими характеристиками:

Элементы-данные класса (все данные private)::

Название товара: текстовая строка

Цена: дробное число

Количество: целое число

Дата прихода товара : объект класса date

  1. Создать класс date: для встраивания в класс storage1

Поля класса date:

day: числовое поле

month: текстовая строка

year: числовое поле

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

4,14,

24

При выполнении задания используйте общие требования выполнения работы

Видоизменить базу данных: Поезд (заказ билетов)

На основе 2-х классов (ticket, ticket1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (storage,stock).

Информация о 2-х классах для проектирования иерархии:

  1. class ticket, разработанный в лабораторной работе №3

  2. Новый class ticket1 со следующими характеристиками:

Элементы-данные класса (все данные private)::

Пассажир : объект класса fio

Цена билета : дробное число

Номер вагона : целое число

Номер места : целое число

Дата поездки : объект класса date

  1. Создать класс date: три числовых поля (day,month,year) для встраивания в класс ticket1

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

5,15,

25

При выполнении задания используйте общие требования выполнения работы

Видоизменить базу данных: Работник (зарплата)

На основе 2-х классов (worker,worker1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (work, personnel).

Информация о 2-х классах для проектирования иерархии:

  1. class worker, разработанный в лабораторной работе №3

  2. Новый class worker1 со следующими характеристиками:

Элементы-данные класса (все данные private):

Работник : объект класса fio

Профессия : текстовая строка

Дата поступления : объект класса date

  1. Создать класс date: для встраивания в класс worker 1

Поля класса date:

day: числовое поле

month: текстовая строка

year: числовое поле

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

6,16,

26

При выполнении задания используйте общие требования выполнения работы

Видоизменить базу данных: Почта (ценное письмо)

На основе 2-х классов (letter, letter1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (letter, delivery).

Информация о 2-х классах для проектирования иерархии:

  1. class letter, разработанный в лабораторной работе №3

  2. Новый class letter1 со следующими характеристиками:

Элементы-данные класса (все данные private):

Получатель : объект класса fio

Адрес получателя: текстовая строка

Дата вручения письма : объект класса date

  1. Создать класс date: три числовых поля (day,month,year) для встраивания в класс letter1

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

7,17,27

При выполнении задания используйте общие требования выполнения работы

Видоизменить базу данных: Производство (поставщики)

На основе 2-х классов (supplier, supplier1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (delivery1, delivery2).

Информация о 2-х классах для проектирования иерархии:

  1. class supplier, разработанный в лабораторной работе №3

  2. Новый class supplier1 со следующими характеристиками:

Элементы-данные класса (все данные private):

Продавец : объект класса fio

Сальдо : дробное число

Дата продажи : объект класса date

  1. Создать класс fio: три строковых поля (фамилия, имя, отчество) для встраивания в класс supplier1

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

8,18,

28

При выполнении задания используйте общие требования

Видоизменить базу данных: Студент

На основе 2-х классов (student, teacher) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (leaner, prepod).

Информация о 2-х классах для проектирования иерархии:

  1. class student, разработанный в лабораторной работе №3

  2. Новый class teacher со следующими характеристиками:

Элементы-данные класса (все данные private):

Преподаватель : объект класса fio

Кафедра : перечисляемый тип (например-spintex,bms,pkims)

Учебный курс : текстовая строка

  1. Создать класс fio: три строковых поля (фамилия, имя, отчество) для встраивания в класс teacher

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

9,19,

29

При выполнении задания используйте общие требования

Видоизменить базу данных: Преподаватель

На основе 2-х классов (prepod, leaner) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (teacher, student).

Информация о 2-х классах для проектирования иерархии:

  1. class prepod, разработанный в лабораторной работе №3

  2. Новый class leaner со следующими характеристиками:

Элементы-данные класса (все данные private):

Студент : Объект класса man

Факультет : перечисляемый тип (например-pin, pm, kt)

Номер группы : целое число

  1. Создать класс man для встраивания в класс leaner со следующими полями:

Студент : два строковых поля (фамилия, имя)

Номер курса : целое число (год обучения)

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов

10,20,

30

При выполнении задания используйте общие требования

Видоизменить базу данных: Пищевое производство (расчеты)

На основе 2-х классов (food, food1) спроектировать и реализовать иерархию из одного базового (common) и 2-х производных классов (product1, product2).

Информация о 2-х классах для проектирования иерархии:

  1. class food, разработанный в лабораторной работе №3

  2. Новый class food1 со следующими характеристиками:

Элементы-данные класса (все данные private):

Название изделия : текстовая строка

Количество : целое число

Стоимость : дробное число

Дата производства : Объект класса date

Дата продажи : Объект класса date

Все методы и перегруженные операторы, реализованные в лабораторной работе №3, должны использоваться во вновь созданной иерархии

(для этого внесите необходимо изменения в существующий программный код).

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

Тестовая программа :

Используйте тестовую программу из лабораторной работы №3 с вариациями для производных классов