void CMenu::p_menu_ins()// добавление
⇐ ПредыдущаяСтр 3 из 3 { string author, title; int year; cout << "\nВведите название -> "; getline(cin,title); if (m_p -> find(title) < 0) { cout << "\nВведите автора -> "; getline(cin,author); cout << "\nВведите год издания -> "; cin >> year; if (m_p->ins(author, title, year)) cout << "\nINSERTION IS COMPLETED!\n"; } else cout << title << " - INSERTION IS IMPOSSIBLE\n"; } Void CMenu::p_menu_del() // удаление { string title; cout << "\nEnter Title -> "; getline(cin, title); if (m_p -> del(title)) cout << "\nDELETION IS COMPLETED!\n"; else cout << title << " - DELETION IS IMPOSSIBLE\n"; } Void CMenu::p_menu_sort() // сортировка { m_p -> sort(); cout << "\nSORTING IS COMPLETED!\n"; } Void CMenu::align(int n) const // выравнивание { cout.width(n); cout.setf(ios_base::left);} Int main(void) { CMenu menu; menu.showMenuAndSelect(); return 0; }
Рисунок 2.2 – Добавление книги
Рисунок 2.3 – Сортировка и просмотр каталога книг
Рисунок 2.4 – Поиск книги по названию
Рисунок 2.5 – Удаление книги
Задание 1:Разработать консольную программу на языке С++, в которой необходимо определить базовый класс и на его основе производные классы. Кроме закрытых полей с данными в классах должны быть методы доступа, конструкторы с параметрами, деструктор, также методы и функции-друзья в соответствии с индивидуальным вариантом задачи. С использование массива указателей на базовый класс создать массив объектов производных классов и организовать работу с ним. В программе необходимо продемонстрировать механизм динамического полиморфизма. 1. Базовый класс «СТУДЕНТ» описывает следующие данные о студентах университета: ФИО, год поступления, курс, номер группы, размер стипендии, оценки по n предметам. В состав класса входят следующие функции: виртуальный метод просмотра информации о студенте, функция-друг, которая вычисляет средний балл и выводит ФИО студента, у которого он максимальный. Производный класс «СТУДЕНТ-ОБЩЕСТВЕННИК» содержит следующие элементы: общественная работа, процент надбавки к стипендии, переопределенный метод просмотра информации о студентах-общественниках. Производный класс «СТУДЕНТ-СПОРТСМЕН» содержит следующие элементы: вид спорта, переопределенный метод просмотра информации о студентах-спортсменах.
2. Базовый класс «СОТРУДНИК» описывает следующие данные о сотрудниках фирмы: ФИО сотрудника; табельный номер; количество отработанных часов за месяц; почасовой тариф. В состав класса входят следующие функции: виртуальная функция просмотра данных о сотрудниках; функция-друг, которая позволяет вывести размер заработанной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 13 % от суммы заработка. Производный класс «СОТРУДНИК-КОМАНДИРОВКИ» содержит следующие элементы: количество командировочных дней в течение месяца; процент надбавки к зарплате за каждый день командировки; переопределенную функцию просмотра информации о сотрудниках, которые в текущем месяце побывали в командировке. Производный класс «СОТРУДНИК-ОБЩЕСТВЕННИК» содержит следующие элементы: общественная работа; переопределенную функцию просмотра информации о сотрудниках-общественниках. 3. Базовый класс «АБИТУРИЕНТ» описывает следующие данные об абитуриентах, сдавших вступительные экзамены в университет: ФИО; адрес; оценки по предметам. В состав класса входят следующие функции: виртуальная функция просмотра данных о абитуриентах; функция-друг, позволяющая определить количество абитуриентов, проживающих в заданном городе. Производный класс «АБИТУРИЕНТ-ЛЬГОТНИК» содержит следующие данные: описание льготы и переопределенную функцию просмотра информации об абитуриентах, имеющих льготы при поступлении. Производный класс «АБИТУРИЕНТ-СПОРТСМЕН» содержит следующие данные: вид спорта, соревнования, награды и переопределенный метод вывода данных об абитуриентах- спортсменах.
4. Базовый класс «АВТОБУСНЫЙ РЕЙС» описывает следующие данные-элементы: номер рейса, пункт назначения, цена билета, дата и время отправления, дата и время прибытия на конечный пункт и следующие методы: виртуальную функцию просмотра информации об автобусных рейсах, функцию-друга, которая должна вывести информацию о рейсах, позволяющих добраться до указанного пункта. Производный класс «РЕЙС-ЭКСПРЕСС» содержит следующие данные: процентная надбавка на цену билета и переопределенную функцию просмотра данных о рейсах экспресс. Производный класс «МЕЖДУНАРОДНЫЙ РЕЙС» содержит следующие данные: страна и переопределенную функцию просмотра данных о международных автобусных рейсах. 5. Базовый класс «ТЕЛЕФОН» описывает данные о разговорах на междугородней АТС: дату разговора, код и название города, продолжительность разговора, тариф, номер телефона в этом городе, номер телефона абонента. В класс входят следующие функции: виртуальная функция просмотра данных о разговорах на междугородней АТС, функция-друг, которая подсчитает суммарное время разговора с указанным городом. Производный класс «ТЕЛЕФОН-ЛЬГОТЫ» содержит следующие данные о льготных тарифах: вид льгот, процент для льготного тарифа, переопределенную функцию просмотра данных о льготных разговорах на междугородней АТС. Производный класс «СРОЧНЫЕ ВЫЗОВЫ» содержит следующие данные: надбавка к тарифу за срочность вызова, переопределенную функцию просмотра данных о срочных разговорах на междугородней АТС. 6. Базовый класс «ТОВАР» описывает данные о товарах, имеющихся на складе: наименование товара, фирма-изготовитель. В класс входят следующие функции: виртуальная функция просмотра данных о товарах, имеющихся на складе; функция-друг, которая позволяет вывести товары и их данные для указанной фирмы-изготовителя. Производный класс «ИМПОРТИРУЕМЫЙ ТОВАР» содержит следующие данные: страна-поставщик; дата поставки; количество единиц товара; переопределенную функцию просмотра информации об импортируемых товарах. Производный класс «ЭКСПОРТИРУЕМЫЙ ТОВАР» содержит следующие данные: страна-заказчик; количество единиц товара, переопределенную функцию просмотра информации об экспортируемых товарах.
7. Базовый класс «ДЕТАЛЬ» описывает данные о партиях деталей, выпускаемых различными цехами завода: наименование детали; количество деталей; номер цеха, где они были изготовлены. В класс входят следующие функции: виртуальная функция просмотра данных о партиях деталей, выпускаемых различными цехами завода; функция-друг, позволяющая вычислить общее количество изделий указанного наименования. Производный класс «ДЕТАЛЬ_1» имеет следующие элементы: наличие дополнительного антикоррозийного покрытия; переопределенная функция просмотра данных о партиях деталей. Производный класс «ДЕТАЛЬ_2» имеет следующие элементы: коэффициент надежности в процентах для разных типов деталей; переопределенная функция просмотра данных о партиях деталей. 8. Базовый класс «ТОВАР» описывает данные о товарах, имеющихся в компьютерном магазине: шифр товара, дата поступления товара; фирма-поставщик, фирма-изготовитель, количество единиц товара. В класс входят следующие функции: виртуальная функция просмотра данных о товарах, имеющихся в магазине; функция-друг, которая выводит информацию о фирмах-поставщиках, которые поставили больше всего товаров. Производный класс «ТОВАР-КОМПЬЮТЕР» содержит следующие данные: тип компьютера (портативный, настольный); производитель; тип процессора; частота процессора; емкость ОЗУ; емкость винчестера, переопределенную функцию просмотра информации о товарах - компьютерах. Производный класс «ТОВАР-МОНИТОР» содержит следующие данные: размер монитора, тип монитора, переопределенную функцию просмотра информации о товарах - мониторах. 9. Базовый класс «УЧАСТНИК СОРЕВНОВАНИЙ» описывает данные об участниках спортивных соревнований: название соревнования, ФИО спортсмена, возраст, рост, вес. В класс входят следующие элементы-функции: виртуальная функция просмотра информации об участниках спортивных соревнований; функция-друг, которая выведет информацию о самом легком спортсмене. Производный класс «УЧАСТНИК СОРЕВНОВАНИЙ ПО ПЛАВАНИЮ» содержит элементы-данные: результирующее время и переопределенную функцию просмотра данных об участниках соревнований по плаванию. Производный класс «УЧАСТНИК СОРЕВНОВАНИЙ ПО СТРЕЛЬБЕ» содержит элементы-данные: набранные балы и переопределенную функцию просмотра данных об участниках соревнований по стрельбе.
10. Базовый класс «АВИА-РЕЙСЫ» описывает следующие данные-элементы: номер рейса; пункт назначения; цена билета; время отправления; время прибытия на конечный пункт. В класс входят следующие функции: виртуальная функция просмотра информации об авua - рейсах; функция-друг для вывода информации о рейсах, отправляющихся в указанный пункт назначения по указанной цене билета. Производный класс «АВИА-РЕЙСЫ ПО СТРАНЕ» содержит следующие данные: дни вылета; переопределенную функцию просмотра данных о внутренних авua-рейсах. Производный класс «МЕЖДУНАРОДНЫЕ АВИА-РЕЙСЫ» содержит: страна, дата отправления и дата прибытия, переопределенную функцию просмотра данных о международных авua-рейсах. 11. Базовый класс «БИБЛИОГРАФ» описывает следующие данные: ФИО сотрудника библиотеки, год рождения, год поступления на работу, категория (библиограф, старший библиограф, главный библиограф, заведующий отделом), название отдела. В класс входят следующие функции: виртуальная функция вывода всех данных о сотруднике библиотеки; функция-друг, которая позволяет вывести ФИО старших библиографов отдела, название которого вводится с клавиатуры. Производный класс «БИБЛИОГРАФ_1» имеет следующие элементы: количество выполняемых справок-заказов в день и переопределенную функцию вывода всех данных о сотруднике библиотеки. Производный класс «БИБЛИОГРАФ_2» имеет следующие элементы: количество выполняемых тематических справок в месяц и переопределенную функцию вывода всех данных о сотруднике библиотеки. 12. Базовый класс «ПРЕПОДАВАТЕЛЬ» описывает данные: ФИО преподавателя, должность, кафедра. В класс входят следующие функции: виртуальная функция просмотра данных о преподавателе; функция-друг, которая позволяет вывести список преподавателей для указанной кафедры. Производный класс «КУРАТОР» содержит следующие данные: название курируемой группы, номер курса; переопределенную функцию просмотра информации о преподавателях-кураторах. Производный класс «НАУЧНЫЙ РУКОВОДИТЕЛЬ» содержит следующие данные: тема, ФИО студента, переопределенную функцию просмотра информации о преподавателях - научных руководителях.
Задание 2 Для каждого индивидуального варианта необходимо создать консольную программу на С++, реализующую отношение ассоциации (агрегации или композиции) между классами и объектами. 1. Класс «КОМНАТА», содержит закрытые поля: сведения о метраже, высоте потолков и количестве окон и метод подсчета площади комнаты. Класс «КВАРТИРА», содержит закрытые поля: номер этажа, массив объектов класса «КОМНАТА», метод подсчета площади квартиры и метод вывода информации о комнатах квартиры.
2. Класс «СТУДЕНТ» содержит закрытые поля: номер студенческого билета, Фамилия, Имя, Отчество, дата рождения, массив из пяти оценок и метод подсчета среднего балла. Класс «СТУДЕНЧЕСКАЯ ГРУППА» содержит закрытые поля: название группы, курс, массив объектов класса «СТУДЕНТ», метод подсчета среднего балла для группы и метод вывода списка студентов, отсортированный по фамилиям в алфавитном порядке.
3. Класс «АВТОМОБИЛЬ» содержит закрытые поля: гос. номер, цвет, фамилия владельца и признак присутствия на стоянке и метод вывода сведений об автомобиле. Класс «АВТОСТОЯНКА», содержит закрытые поля: название автостоянки, массив объектов класса «АВТОМОБИЛЬ», методы поиска автомобиля по разным критериям и методы вывода списка присутствующих и отсутствующих на стоянке автомобилей.
4. Класс «ЗАПИСЬ» содержит закрытые поля: фамилия, имя, номер телефона, дата рождения. Класс «ЗАПИСНАЯ КНИЖКА», содержащий закрытые поля: фамилия и инициалы владельца, массив объектов класса «ЗАПИСЬ», метод поиска номера телефона и даты рождения по фамилии и имени, а также метод получения списка людей, номер телефона которых начинается на три заданные цифры.
5. Класс «САМОЛЕТ» содержит закрытые поля: шестизначный номер рейса, название пункта назначения, время отправления и метод вывода сведений о самолете. Класс «АЭРОПОРТ» содержит закрытые поля: название аэропорта, массив объектов класса «САМОЛЕТ», метод поиска информации о самолетах, отправляющихся в течении часа после введенного с клавиатуры времени и метод вывода информации о самолетах, отправляющихся в заданный пункт назначения. Информация должна быть отсортирована по времени отправления.
6. Класс «КОМПЛЕКТУЮЩЕЕ» содержит закрытые поля: название, цена, гарантийный срок и метод вывода сведений о комплектующем. Класс «КОМПЬЮТЕР» содержит закрытые поля: серийный номер, марка, массив объектов класса «КОМПЛЕКТУЮЩЕЕ», метод замены комплектующих компьютера и метод вывода списка комплектующих компьютера.
7. Класс «ПЕСНЯ» содержит закрытые поля: номер песни, название песни, композитор, поэт, исполнитель и метод вывода сведений о песне. Класс «ДИСКИ» содержит закрытые поля: название диска, цена, массив объектов класса «ПЕСНЯ», метод поиска песни по названию, метод поиска песни по исполнителю и метод вывода списка песен диска, упорядоченный по названию песни.
8. Класс «ПОЕЗД» содержит закрытые поля: номер поезда, название пункта назначения, время отправления и метод вывода сведений о поезде. Класс «ВОКЗАЛ» содержит закрытые поля: название вокзала, массив объектов класса «ВОКЗАЛ», метод поиска информации о поездах, отправляющихся после введенного с клавиатуры времени и метод вывода информации о поездах, отправляющихся в заданный пункт назначения. Информация должна быть отсортирована по времени отправления.
9. Класс «ТОВАР» содержит закрытые поля: название товара, стоимость единицы товара в рублях, количество единиц товара и метод подсчета стоимости товара. Класс «СКЛАД» содержит закрытые поля: название склада и массив объектов класса «ТОВАР», метод подсчета стоимости всего товара и метод вывода списка товаров, отсортированный по названию товара.
10. Класс «ЛЕКАРСТВО» содержит закрытые поля: название лекарства, цена, показания к применению, противопоказания и метод вывода сведений о лекарстве. Класс «АПТЕКА» содержит закрытые поля: название аптеки, номер аптеки, массив объектов класса «ЛЕКАРСТВО», метод поступления новых лекарств в аптеку, метод поиска лекарства по названию и метод вывода списка лекарств аптеки.
11. Класс «АВТОБУС» содержит закрытые поля: номер автобуса название пункта назначения, время отправления и метод вывода сведений об автобусе. Класс «АВТОВОКЗАЛ» содержит закрытые поля: название автовокзала, массив объектов класса «АВТОБУС», метод поиска информации об автобусах, отправляющихся после введенного с клавиатуры времени в заданный пункт назначения. Информация должна быть отсортирована по времени отправления.
12. Класс «ЖИВОТНОЕ» содержит закрытые поля: кличка животного, название вида, возраст, вес и метод вывода сведений о животном. Класс «ЗООПАРК» содержит закрытые поля: название зоопарка, массив объектов класса «ЖИВОТНОЕ», метод поступления новых животных в зоопарк, метод убытия животных из зоопарка и метод вывода списка животных зоопарка.
Читайте также: Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|