Методические рекомендации для выполнения зачетного задания по
Курсу ООП
Требования к заданию
При разработке программы использовать механизм позднего связывания (виртуальные функции). Иерархия должна состоять из четырех-пяти классов. Использовать множественное наследование.
Разработаная программа должна иметь возможности:
а) добавлять объекты в массив, удалять и редактировать их;
б)осуществлять сохранение результатов выполнения программы в файле и считывания их из файла;
В) выводить результаты на экран в виде таблицы.
Г)осуществлять сортировку по указанному полю, осуществлять ввод/вывод через поток
Д) программа должна содержать конструкторы с параметрами и деструкторы (использовать динамический захват памяти и косвенную адресацию).
Требования к образуемым классам:
- каждый класс должен иметь собственный конструктор и деструктор;
- назначение каждого элемента (данного и метода) класса должно сопровождаться комментариями; коды методов - вне пространства класса.
Номер варианта выдается преподавателем-консультантом
Варианты заданий
Начальный состав классов
Вариант 1
Создать программу с классом Student1 порождающим объекты – анкетные данные о студентах.
Класс включает в себя следующие данные-элементы:
-ФИО;
-год поступления;
-курс;
-номер группы;
-размер стипендии;
-оценки по N предметам.
(номер для каждого создаваемого студента запрашивается, а массив оценок создается в динамической памяти операцией New).
В состав класса входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, которая вычисляет средний балл и выводит Ф.И.О. студента с максимальным его значением;
- виртуальная функция просмотра текущего объекта print().
Производный класс Student2 содержит следующие элементы:
- общественная работа;
-процент надбавки к стипендии;
- переопределенную функцию вывода данных об общественниках.
Вариант 2
Создать программу с классом Firm порождающим объекты - данные о сотрудниках фирмы.
Класс включает в себя следующие данные-элементы:
- Ф. И. О. сотрудника;
- табельный номер;
- количество проработанных часов за месяц;
- почасовой тариф.
В состав класса входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, которая позволяет вывести размер заработанной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка. Необходимо учесть, что рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере;
- виртуальная функция просмотра текущего объекта print().
Производный класс Firm1 содержит следующие элементы:
- количество командировочных дней в течение месяца;
- процент надбавки к зарплате за каждый день командировки;
- переопределенную функцию просмотра состояния объектов - сотрудников, которые в текущем месяце побывали в командировке.
Вариант 3
Создать программу с классом Devise порождающим объекты - данные об устройствах, входящих в данное оборудование.
Класс включает в себя следующие данные-элементы:
- завод поставщик;
- стоимость;
- дата поставки;
В состав класса входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, позволяющая определить общую стоимость устройств, входящих в оборудование;
- виртуальная функция просмотра текущего объекта print().
Производный класс Block содержит следующие данные:
- время наработки на отказ;
- потребляемая мощность;
-переопределенную функцию просмотра состояния объектов.
Вариант 4
Создать программу с классом Student порождающим объекты – данные о студентах, желающих получить места в общежитии. Общежитие в первую очередь предоставляется тем студентам, у кого доход на члена семьи меньше двух минимальных зарплат.
Класс включает в себя следующие данные-элементы:
- Ф.И.О. студента;
- номер группы (буква и четыре цифры);
- средний балл;
- доход на одного члена семьи.
В класс входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов;
- функция-друг, которая должна вывести Ф.И.О. студентов со средним баллом выше указанного с клавиатуры;
- виртуальная функция просмотра текущего объекта print().
Производный класс Stud1 содержит следующие данные на внеочередников:
- вид общественной нагрузки;
- количество членов семьи;
- переопределенную функцию просмотра состояния объектов - студентов внеочередников.
Вариант 5
Создать программу с классом Bus порождающим объекты - данные о конкретных автобусных рейсах.
Класс включает в себя следующие данные-элементы:
- номер рейса;
- тип автобуса;
- пункт назначения;
- цена билета;
- время отправления;
- время прибытия на конечный пункт.
В класс входят следующие элементы-функции:
- конструктор с ограниченным числом параметров (номер рейса);
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция установки текущего состояния объектов для остальных элементов;
- функция-друг должна вывести информацию о рейсах позволяющих обраться до указанного с клавиатуры пункта;
- виртуальная функция просмотра текущего объекта print().
Производный класс Express содержит следующие данные об автобусах -экспрессах:
- дни недели работы;
- процентная надбавка на цену билета;
- выигрыш во времени;
- переопределенную функцию просмотра состояния объектов.
Вариант 6
Создать программу с классом Sport порождающим объекты - данные о конкретных участниках спортивных соревнований
Класс включает в себя следующие данные-элементы:
- Ф. И. О. игрока;
- игровой номер;
- возраст;
- рост;
- вес.
В класс входят следующие элементы-функции:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, которая поможет вывести информацию о самом легком спортсмене в команде;
- виртуальная функция просмотра текущего объекта print().
Производный класс Dop содержит следующие данные:
-разряд спортсмена;
-категория (кандидат, мастер и т.д.);
-призер (Республика, Европа и т.д.);
-переопределенную функцию просмотра состояния объектов.
Вариант 7
Создать программу с классом Phone порождающим объекты - данные о конкретных разговорах на междугородней АТС
Класс включает в себя следующие данные-элементы:
- дату разговора;
- код и название города;
- продолжительность разговора;
- тариф;
- номер телефона в этом городе;
- номер телефона абонента.
Класс содержит следующие функции-члены класса:
- конструктор по умолчанию;
- деструктор;
- функция установки текущего состояния объектов PRINT();
- функция просмотра текущего состояния объектов;
- функция, которая позволяет вывести по номеру телефона название города;
- функция-друг, которая поможет подсчитать суммарное время разговора с указанным городом;
- виртуальная функция просмотра текущего объекта print().
Производный класс Phone1 содержит следующие данные:
- вид льгот,
- процент для льготного тарифа;
- надбавка к тарифу за срочность вызова;
- переопределенную функцию просмотра состояния объектов.
Вариант 8
Создать программу с классом Tovar порождающим объекты - данные о товарах, имеющихся на складе.
Класс включает в себя следующие данные-элементы:
- страна-изготовитель;
- фирма-изготовитель;
- наименование товара;
- количество единиц товара.
В класс входят следующие функции-члены класса:
- конструктор с параметром для инициализации страны-изготовителя;
- деструктор;
- функция инициализации текущего состояния объектов остальных элементов;
- функция просмотра текущего состояния объектов PRINT();
- функция подсчета общего количества товара указанной фирмы
- функция-друг, которая позволяет вывести товары и их данные для указанной страны;
- виртуальная функция просмотра текущего объекта print().
Производный класс Zakaz содержит следующие элементы:
- страна заказчик;
- дата заказа;
- количество заказанного товара;
- переопределенную функцию просмотра состояния объектов.
Вариант 9
Создать программу с классом Воок порождающим объекты - данные о книгах хранящихся в библиотеке.
Класс включает в себя следующие данные-элементы:
- регистрационный номер книги,
- автор;
- название;
- год издания;
- издательство;
- количество страниц.
В класс входят следующие функции-члены класса:
- конструктор с параметром для инициализации автора;
- деструктор;
- функция инициализации текущего состояния объектов;
- функция для просмотра текущего состояния объектов PRINT();
- функция-друг, которая позволяет вывести все книги указанного автора и подсчитать общее количество их страниц;
- виртуальная функция просмотра текущего объекта print().
Производный класс Type имеет следующие элементы:
- тематика книг;
- тип литературы (отечественная или зарубежная);
- переопределенную функцию просмотра состояния объектов.
Вариант 10
Создать программу с классом Detal порождающим объекты -
данные о партиях деталей выпускаемых различными цехами завода
Класс включает в себя следующие элементы-данные:
- наименование детали;
- количество деталей;
- номер цеха, где они изготовлены.
В класс входят следующие функции-члены класса:
-конструктор по умолчанию;
-деструктор;
-функция инициализации текущего состояния объектов;
-функция просмотра текущего состояния объектов PRINT();
-функция-друг, позволяющая подсчитать общее количество изделий указанного наименования;
- виртуальная функция просмотра текущего объекта print().
Производный класс Det1 имеет следующие элементы:
- дополнительное антикоррозийное покрытие;
- увеличение надежности в процентах для разных типов деталей;
- переопределенную функцию просмотра текущего состояния деталей.
Вариант 11
Создать программу с классом Tovar порождающий обьекты - данные
о товарах, имеющихся на складе
Класс включает в себя следующие элементы
- наименование товара;
- количество единиц товара;
- цену единицы товара;
- дату поступления товара на склад.
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния обьектов;
метод подсчета общей стоимости указанного товара(код метода вне класса)
Создать программу с классом Student порождающий обьекты - данные
об студентах желающих получить места в общежити
Класс включает в себя следующие элементы
- Ф.И.О. студента;
- номер группы ( буква и четыре цифры);
- средний балл;
- доход на одного члена семьи;
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния обьектов;
Производный класс Student2 содержит следующие элементы:
- участие в спортивной секции;
- разряд;
-процент надбавки к стипендии;
- переопределенную функцию вывода данных об общественниках.
Вариант 13
Создать программу с классом Bus порождающий обьекты - данные о
конкретном автобусном рейсе
Класс включает в себя следующие элементы
- номер рейса
- тип автобуса
- пункт назначения
- время отправления
- время прибытия на конечный пункт
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния обьектов;
функция друг должна ВЫВЕСТИ ИНФОРМАЦИЮ О РЕЙСАХ
КОТОРЫМИ МОЖНО ВОСПОЛЬЗОВАТЬСЯ ДЛЯ ПРИБЫТИЯ В ПУНКТ НАЗНАЧЕНИЯ
РАНЬШЕ ЗАДАННОГО ВРЕМЕНИ
Производный класс Express содержит следующие данные об автобусах южного направления
- дни недели работы;
- длительность круиза
- переопределенную функцию просмотра состояния объектов.
Вариант 14
Создать программу с классом Fone порождающий обьекты - данные о
конкретном разговоре на междугородней АТС
Класс включает в себя следующие элементы
- дату разговора
- код и название города
- время разговора
- тариф
- номер телефона в этом городе
- номер телефона абонента
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния обьектов;
метод который позволяет ВЫВЕСТИ ПО КАЖДОМУ ГОРОДУ ОБЩЕЕ ВРЕМЯ
РАЗГОВОРА С НИМ;
Производный класс Phone1 содержит следующие данные:
- количество минут сверх допустимого лимита в 3 минуты;
- добавочная плата за превышение лимита;
- ;
- переопределенную функцию просмотра состояния объектов.
Вариант 15
Создать программу с классом Firma порождающий обьекты - данные о
конкретном сотруднике фирмы
Класс включает в себя следующие элементы
- Ф И О сотрудника
- табельный номер
- количество проработанных часов за месяц
- почасовой тариф
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния обьектов;
Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере
Производный класс Firm1 содержит следующие элементы:
- количество дней в течение месяца, со сверхурочной работой;
- процент надбавки к зарплате за каждый день;
- переопределенную функцию просмотра состояния объектов - сотрудников, которые работали сверхурочно.
Вариант 16
Создать программу с классом Sport порождающий обьекты - данные о
конкретном участнике спортивных соревнований по футболу
Класс включает в себя следующие элементы
- Ф И О игрока
- игровой номер
- возраст
- рост
- вес
конструктор с параметрами
деструктор;
метод просмотра текущего состояния обьектов;
Производный класс Dop содержит следующие данные:
- количество матчей;
- количество голевых передач;
- количество голов;
- переопределенную функцию просмотра состояния объектов.
Вариант 17
Создать программу с классом Воок порождающий обьекты - данные о
книгах хранящихся в библиотеке
Класс включает в себя следующие элементы
- регистрационный номер книги
- автор
- название
- год издания
- издательство
- количество страниц
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния обьектов;
Производный класс Prog имеет следующие элементы:
- уровень (на кого рассчитана);
- язык программирования;
- переопределенную функцию просмотра состояния объектов.
Вариант 18
Создать программу с классом Detal порождающий обьекты -
данные о партиях деталей выпускаемых различными цехами завода
Класс включает в себя следующие элементы
- наименование
- количество
- номер цеха
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
-функция инициализации текущего состояния объектов;
-функция просмотра текущего состояния объектов PRINT();
-функция-друг, позволяющая подсчитать общее количество изделий указанного цеха;
- виртуальная функция просмотра текущего объекта print().
Производный класс Det1 имеет следующие элементы:
- материал;
- сорт деталей;
- переопределенную функцию просмотра текущего состояния деталей.
Вариант 19
Создать программу с классом Sotr порождающий обьекты -
c информацией о сотрудниках предприятия
Класс включает в себя следующие элементы
- Ф И О
- номер отдела
- должность
- стаж работы
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
-функция инициализации текущего состояния объектов;
-функция просмотра текущего состояния объектов PRINT();
-функция-друг, позволяющая подсчитать общее количество сотрудников указанной должности;
- виртуальная функция просмотра текущего объекта print().
Производный класс D1 имеет следующие элементы:
- ветеран фирмы
- процентная надбавка к окладу
- переопределенную функцию просмотра текущего состояния объектов.
Вариант 20
Создать программу с классом Abitr порождающий обьекты -
данные об абитуриентах сдавших втупительные экзамены в БГУИР
Класс включает в себя следующие элементы
- Ф И О
- адрес
- оценки по трем предметам
и следующие функции-члены класса:
конструктор с параметрами;
деструктор;
-функция инициализации текущего состояния объектов;
-функция просмотра текущего состояния объектов PRINT();
-функция-друг, позволяющая подсчитать общий средний балл группы;
- виртуальная функция просмотра текущего объекта print().
Производный класс D1 имеет следующие элементы:
- победитель олимпиады
- медалист
- переопределенную функцию просмотра текущего состояния объектов.
Вариант 21
Создать программу с классом Student1 порождающим объекты – анкетные данные о студентах.
Класс включает в себя следующие данные-элементы:
-ФИО,
-год поступления,
-курс,
-номер группы,
-размер стипендии,
-оценки по N предметам.
(N для каждого создаваемого студента запрашивается, а массив оценок создается в динамической памяти операцией New).
В состав класса входят следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния объектов;
функция-друг, которая вычисляет средний балл и выводит ФИО студента с максимальным его значением.
Производный класс Student2 содержит следующие элементы:
-Название общественной работы
-процент надбавки к стипендии, а также переопределенную функцию вывода данных об общественниках.
Вариант 22
Создать программу с классом Firma, порождающим объекты - данные о сотрудниках фирмы.
Класс включает в себя следующие данные-элементы:
- Ф И О сотрудника,
- табельный номер,
- количество проработанных часов за месяц,
- почасовой тариф,
В состав класса входят следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния объектов;
функция друг, которая позволяет вывести размер заработанной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка. Необходимо учесть, что рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере.
Производный класс Firma1 содержит следующие элементы:
- количество командировочных дней в течение месяца,
- процент надбавки к зарплате за каждый день командировки,
а также переопределенную функцию просмотра состояния объектов- сотрудников, которые в текущем месяце побывали в командировке.
Вариант 23
Создать программу с классом Abitr порождающий объекты - данные об абитуриентах сдавших вступительные экзамены в БГУИР.
Класс включает в себя следующие данные-элементы:
- Ф И О,
- адрес,
- оценки по N сданным предметам (N для каждого создаваемого абитуриента запрашивается, а массив оценок создается в динамической памяти операцией New).
В состав класса входят следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния объектов;
функция-друг позволяющая определить количество абитуриентов проживающих в г Минске
Производный класс Abitr1 содержит следующие данные о льготах:
- тип медали (золотая или серебряная),
- призовое место на Республиканской олимпиаде,
- а также переопределенную функцию просмотра состояния объектов-абитуриентов, имеющих льготы при поступлении.
Вариант 24
Создать программу с классом Student порождающим объекты – данные о студентах, желающих получить места в общежитии.
Класс включает в себя следующие данные-элементы:
- Ф.И.О. студента;
- номер группы (буква и четыре цифры);
- средний балл;
- доход на одного члена семьи.
В класс входят следующие функции-члены класса:
конструктор с параметрами, (тело конструктора вне класса);
деструктор;
метод просмотра текущего состояния объектов;
Функция друг должна ВЫВЕСТИ ФИО студентов со средним баллом выше указанного с клавиатуры.
Производный класс Stud1 содержит следующие данные на вне очередников:
- вид общественной нагрузки,
- неполная семья (отсутствие отца или матери)
- количество членов семьи для многодетных семей.
Общежитие также в ПЕРВУЮ очередь предоставляется тем студентам, у кого доход на члена семьи меньше двух минимальных зарплат,
.а также переопределенную функцию просмотра состояния объектов - студентов внеочередников.
Вариант 25
Создать программу с классом Bus порождающим объекты - данные о конкретных автобусных рейсах.
Класс включает в себя следующие данные-элементы:
- номер рейса,
- тип автобуса,
- пункт назначения,
- цена билета,
- время отправления,
- время прибытия на конечный пункт.
В класс входят следующие элементы-функции:
- конструктор с ограниченным числом параметров (номер рейса)
(тело конструктора вне класса);
- деструктор;
- метод просмотра текущего состояния объектов;
- метод установки текущего состояния объектов для остальных элементов;
- функция друг должна ВЫВЕСТИ ИНФОРМАЦИЮ О РЕЙСАХ позволяющих
добраться до указанного с клавиатуры пункта
Производный класс Express содержит следующие данные об автобусах -экспрессах:
- дни недели работы,
- процентная надбавка на цену билета,
- выигрыш во времени.
а также переопределенную функцию просмотра состояния объектов.
Вариант 26
Создать программу с классом Sport, порождающим объекты - данные о конкретных участниках спортивных соревнований
Класс включает в себя следующие данные-элементы:
- Ф И О игрока,
- игровой номер,
- возраст,
- рост,
- вес,
В класс входят следующие элементы-функции:
конструктор с параметрами (тело конструктора вне класса);
деструктор;
метод просмотра текущего состояния объектов;
функция-друг, которая поможет вывести информацию о самом легком спортсмене в команде.
Производный класс Dop содержит следующие данные:
- разряд спортсмена,
- категория (кандидат, мастер и т.д.),
- призер (Республика, Европа и т.д.),
а также переопределенную функцию просмотра состояния объектов.
Вариант 27
Создать программу с классом Fone, порождающим объекты - данные о конкретных разговорах на междугородней АТС
Класс включает в себя следующие данные-элементы:
- дату разговора,
- код и название города,
- продолжительность разговора,
- тариф,
- номер телефона в этом городе
- номер телефона абонента
Класс содержит следующие функции-члены класса:
конструктор по умолчанию;
деструктор;
метод установки текущего состояния объектов;
метод просмотра текущего состояния объектов;
(тела методов вне класса)
метод который позволяет ВЫВЕСТИ ПО НОМЕРУ ТЕЛЕФОНА НАЗВАНИЕ ГОРОДА;
функция-друг, которая поможет подсчитать СУММЫ разговора с указанным городом.
Производный класс Fun1 содержит следующие данные:
- вид льгот,
- процент для льготого тарифа,
_ надбавка к тарифу за срочность вызова,
а также переопределенную функцию просмотра состояния объектов.
Вариант 28
Создать программу с классом Tovar, порождающим объекты - данные о товарах, имеющихся на складе.
Класс включает в себя следующие данные-элементы:
- страна-изготовитель;
- фирма-изготовитель;
- наименование товара;
- количество единиц товара;
В класс входят следующие функции-члены класса:
- конструктор с параметром для инициализации страны-изготовителя;
- деструктор;
- метод инициализации текущего состояния объектов остальных элементов;
- метод просмотра текущего состояния объектов;
- метод подсчета общего количества товара указанной фирмы
(тела методов вне класса)
- функция-друг, которая позволяет ВЫВЕСТИ ТОВАРЫ И ИХ ДАННЫЕ ДЛЯ УКАЗАННОЙ СТРАНЫ.
Производный класс Zakaz содержит следующие элемнты:
- страна заказчик,
- дата заказа,
- количество заказанного товара,
а также переопределенную функцию просмотра состояния объектов.
Вариант 29
Создать программу с классом Воок, порождающим объекты - данные о книгах хранящихся в библиотеке.
Класс включает в себя следующие данные-элементы:
- регистрационный номер книги,
- автор,
- название,
- год издания,
- издательство,
- количество страниц,
В класс входят следующие функции-члены класса:
- конструктор с параметром для инициализации автора;
- деструктор;
- метод инициализации текущего состояния объектов;
- метод для просмотра текущего состояния объектов;
- функция-друг, которая позволяет вывести все книги указанного автора и подсчитать общее количество их страниц.
Производный класс Type имеет следующие элементы:
- тематика книг,
- тип литературы (отечественная или зарубежная),
а также переопределенную функцию просмотра состояния объектов.
Вариант 30
Создать программу с классом Detal, порождающим объекты -
данные о партиях деталей выпускаемых различными цехами завода
Класс включает в себя следующие элементы-данные:
- наименование детали,
- количество деталей,
- номер цеха, где они изготовлены,
и следующие функции-члены класса:
конструктор по умолчанию;
деструктор;
метод инициализации текущего состояния объектов;
метод просмотра текущего состояния объектов;
(тела функций вне класса)
функция-друг, позволяющая подсчитать общее количество изделий указанного наименования.
Производный класс Det1 имеет следующие элементы:
- дополнительное антикоррозийное покрытие,
- увеличение надежности в процентах для разных типов деталей, а также переопределенную функцию просмотра текущего состояния таких деталей.
Вариант 31.
Создать программу с классом Student1 порождающий объекты – анкетные данные о студентах.
Класс включает в себя следующие данные-элементы:
- ФИО,
- год поступления,
- курс,
- номер группы,
- массив средних баллов, полученных за N семестров
- размер стипендии (N для каждого создаваемого студента запрашивается, а массив оценок создается в динамической памяти операцией New).
В состав класса входят следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния объектов;
функция-друг, которая вычисляет средний балл за все семестры и выводит ФИО студента, у которого он максимальный.
Производный класс Student2 содержит следующие элементы:
Название общественной работы и процент надбавки к стипендии, а также переопределенную м-функцию вывода данных об общественниках.
Вариант 32.
Создать программу с классом Firma порождающий объекты - данные о сотрудниках фирмы.
Класс включает в себя следующие данные-элементы:
- Ф И О сотрудника
- табельный номер
- занимаемая должность
- стаж работы
- зарплата
В состав класса входят следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния объектов;
функция друг, которая позволяет вывести размер заработанной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка.
Производный класс Firma1 содержит следующие элементы:
- количество командировочных дней в течение месяца,
- процент надбавки к зарплате за каждый день командировки
а также переопределенную функцию просмотра состояния объектов.
Вариант 33.
Создать программу с классом Abitr порождающий объекты - данные об абитуриентах сдавших вступительные экзамены в БГУИР.
Класс включает в себя следующие данные-элементы
- Ф И О
- адрес
- оценки по N сданным предметам (N для каждого создаваемого абитуриента запрашивается, а массив оценок создается в динамической памяти операцией New).
В состав класса входят следующие функции-члены класса:
конструктор с параметрами;
деструктор;
метод просмотра текущего состояния объектов;
функция друг позволяющая Определить количество абитуриентов
проживающих в г Минске
Производный класс Abitr1 содержит следующие данные:
- занимается ли абитуриент спортом
- вид спорта
- а также переопределенную функцию просмотра состояния объектов.
Вариант 34.
Создать программу с классом Student порождающий объекты – данные о студентах, желающих получить места в общежитии.
Класс включает в себя следующие данные-элементы:
- Ф.И.О. студента;
- номер группы ( буква и четыре цифры);
- средний балл;
- доход на одного члена семьи.
В класс входят следующие функции-члены класса:
конструктор с параметрами
(тело конструктора вне класса);
деструктор;
метод просмотра текущего состояния объектов;
Функция друг должна ВЫВЕСТИ ФИО студентов со средним баллом выше указанного с клавиатуры.
Производный класс Stud1 содержит следующие данные на внеочередников:
- вид общественной нагрузки,
- неполная семья (отсутствие отца или матери)
- количество членов семьи для многодетных семей.
Общежитие также в ПЕРВУЮ очередь предоставляется тем студентам, у кого доход на члена семьи меньше двух минимальных зарплат.
а также переопределенную функцию просмотра состояния объектов.
Вариант 35
Создать программу с классом Student1 порождающим объекты – анкетные данные о студентах.
Класс включает в себя следующие данные-элементы:
-ФИО;
-год поступления;
-курс;
-номер группы;
-размер стипендии;
-оценки по N предметам.
(номер для каждого создаваемого студента запрашивается, а массив оценок создается в динамической памяти операцией New).
В состав класса входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, которая вычисляет средний балл и выводит Ф.И.О. студентов, у которых средний балл ниже полученного значения;
- виртуальная функция просмотра текущего объекта print().
Производный класс Student2 содержит следующие элементы:
- общественная работа;
-процент надбавки к стипендии;
- переопределенную функцию вывода данных об общественниках.
Вариант 36
Создать программу с классом Firm порождающим объекты - данные о сотрудниках фирмы.
Класс включает в себя следующие данные-элементы:
- Ф. И. О. сотрудника;
- табельный номер;
- количество проработанных часов за месяц;
- почасовой тариф.
В состав класса входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, которая позволяет вывести размер средне заработанной платы сотрудников фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка. Необходимо учесть, что рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере;
- виртуальная функция просмотра текущего объекта print().
Производный класс Firm1 содержит следующие элементы:
- количество командировочных дней в течение месяца;
- процент надбавки к зарплате за каждый день командировки;
- переопределенную функцию просмотра состояния объектов - сотрудников, которые в текущем месяце побывали в командировке.
Вариант 37
Создать программу с классом Devise порождающим объекты - данные об устройствах, входящих в данное оборудование.
Класс включает в себя следующие данные-элементы:
- завод поставщик;
- стоимость;
- дата поставки;
В состав класса входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, позволяющая определить общую стоимость до указанной даты поставки;
- виртуальная функция просмотра текущего объекта print().
Производный класс Block содержит следующие данные:
- время наработки на отказ;
- потребляемая мощность;
-переопределенную функцию просмотра состояния объектов.
Вариант 38
Создать программу с классом Student порождающим объекты – данные о студентах, желающих получить места в общежитии. Общежитие в первую очередь предоставляется тем студентам, у кого доход на члена семьи меньше двух минимальных зарплат.
Класс включает в себя следующие данные-элементы:
- Ф.И.О. студента;
- номер группы (буква и четыре цифры);
- средний балл;
- доход на одного члена семьи.
В класс входят следующие функции-члены класса:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов;
- функция-друг, которая должна вывести Ф.И.О. студентов со средним баллом выше указанного с клавиатуры;
- виртуальная функция просмотра текущего объекта print().
Производный класс Stud1 содержит следующие данные на внеочередников:
- вид общественной нагрузки;
- количество членов семьи;
- переопределенную функцию просмотра состояния объектов - студентов внеочередников.
Вариант 39
Создать программу с классом Bus порождающим объекты - данные о конкретных автобусных рейсах.
Класс включает в себя следующие данные-элементы:
- номер рейса;
- тип автобуса;
- пункт назначения;
- цена билета;
- время отправления;
- время прибытия на конечный пункт.
В класс входят следующие элементы-функции:
- конструктор с ограниченным числом параметров (номер рейса);
- деструктор;
- функция просмотра текущего состояния объектов print();
- функция установки текущего состояния объектов для остальных элементов;
- функция-друг должна вывести информацию о рейсах позволяющих добраться до указанного с клавиатуры пункта до конкретного времени суток;
- виртуальная функция просмотра текущего объекта print().
Производный класс Express содержит следующие данные об автобусах -экспрессах:
- дни недели работы;
- процентная надбавка на цену билета;
- выигрыш во времени;
- переопределенную функцию просмотра состояния объектов.
Вариант 40
Создать программу с классом Sport порождающим объекты - данные о конкретных участниках спортивных соревнований
Класс включает в себя следующие данные-элементы:
- Ф. И. О. игрока;
- игровой номер;
- возраст;
- рост;
- вес.
В класс входят следующие элементы-функции:
- конструктор с параметрами;
- деструктор;
- функция просмотра текущего состояния объектов PRINT();
- функция-друг, которая поможет вывести информацию о самом молодом спортсмене в команде;
- виртуальная функция просмотра текущего объекта print().
Производный класс Dop содержит следующие данные:
-разряд спортсмена;
-категория (кандидат, мастер и т.д.);
-призер (Республика, Европа и т.д.);
-переопределенную функцию просмотра состояния объектов.
ПРИМЕРЫ, ИЛЛЮСТРИРУЮЩИЕ ВЫПОЛНЕНИЕ ЭЛЕМЕНТОВ
ЗАДАНИЕ: Разработать программу учета страховых полисов с базовым классом Man (челорвек), который порождает объекты о конкретном клиенте. Класс включает в себя следующие элементы – ФИО, домашний адрес, возраст, клиента …
Разработки архитектуры классов
Для разработки архитектуры классов необходимо продумать:
· какие данные будут использованы в программе
· какие операции буду производиться над ними.
(
Для создания структуры для класса:человекдобавим классы:клиент, страховая фирма, страховой полис.
Определим основные данные, которые должен содержать каждый класс (элементы-данные объекта).
Базовый класс человек (Man) обладает информацией отличающей одного человека от другого. Такая информация: его имя и фамилия, его место жительства (адрес), возраста. Этой информации вполне достаточно. Нет необходимости учитывать всю теоретически возможную информацию типа: семейное положение, количество детей, номер паспорта и т.д., т.к. эта информация не имеет никакого отношения к учету страховых полисов.
Класс клиент должен обладать информацией не только отличающей одного человека от другого, но информацией позволяющей отличать одного клиента от другого. Информация, характеризующая конкретного человека, такая же, что и у класса «человек». Для отличия клиентов, как правило, в страховых фирмах присваивают код. Код может представляться в виде числа, но и может содержать буквенные значения (сокращенное название области или района).
Класс страховая фирма должен обладать информацией отличающей одну страховую фирму от другой. Эта информация о названии фирмы, юридический адрес, номер лицензии.
Класс страховой полис должен обладать информацией о конкретном страховом полисе. Эта информация о клиенте страховой фирмы, о страховой фирме выдавшей данный страховой полис, о сумме страховки, о страховом агенте, выдавшем данный страховой полис.
Программа должна обеспечивать редактирование всей доступной информации: добавление, удаление, редактировании и вывода списка на экран в виде таблицы. Это значит, что необходима возможность оперирования любым типом информации (человек, клиент, страховая фирма, страховой полис).
Существует два основных подхода к созданию программы управления данными (учета страховых полисов):
1. создание на каждый тип информации отдельного списка и образования связей между ними (модель реляционной базы данных),
2. путем наследования классов, выделить главный класс, образованный наследованием от всех остальных классов, т.е. содержащий полную и определяющую информацию об объекте, информационного хранилища (забегая вперед, таким объектом является страховой полис).
Наиболее простым является второй способ реализации.
Создания структуры наследования классов
По той информации, которая заключена в каждом классе, можно судить о структуре наследования классов (о наследовании данных и методов).
Анализируя классы «человек» и «клиент», можно заметить, что в классе клиент помимо информации позволяющей отличать одного клиента от другого, присутствует информация о человеке. Из свойств объектно-ориентированного программирования при наследовании одного класса от другого, происходит наследование данных, т.е. при наследовании класса клиент от класса человек, необходимо в классе клиент определить только данные (информацию) об отличии клиентов между собой (код под которым числится данный человек в архиве страховой фирмы).
Аналогично анализируя классы «клиент», «страховая фирма», «страховой полис», можно заметить, что класс «страховой полис» содержит информацию о клиенте и страховой фирме. На этом основании, имеем возможность произвести множественное наследование страхового полиса от клиента и страховой фирмы. При этом в страховом полисе необходимо доопределить данные о сумме страховки, о страховом агенте (имени или внутреннем коде). На основании вышесказанного, можно построить схему наследования классов, которая изображена на рисунке.