Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

void CMenu::p_menu_ins()// добавление




{ 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...