Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Vvod(title1, year1);



p[i++] = new CBook(title1, year1, author1); break;

case 2: vvod(title1, year1);

cout << "\nНомер журнала:"; cin >> number1;

p[i++] = new CJournal(title1, year1, number1); break;

default: flag = 0; break;

}

}

// вывод описаний изданий

for (int id = 0; id < kol; id++)

{ p[id]->Display();

delete p[id];

}

}

Рисунок 2.1 – Результат выполнения программы

Задание 1:Разработать консольную программу на языке С++, в которой необходимо определить базовый класс и на его основе производные классы. Кроме закрытых полей с данными в классах должны быть методы доступа, конструкторы с параметрами, деструктор, также методы и функции-друзья в соответствии с индивидуальным вариантом задачи. С использованием массива указателей на базовый класс создать массив объектов производных классов и организовать работу с ним..

1. Базовый класс «СТУДЕНТ» описывает следующие данные о студентах университета: ФИО, год поступления, курс, номер группы, размер стипендии, оценки по n предметам. В состав класса входят следующие функции: виртуальный метод просмотра информации о студенте, функция-друг, которая вычисляет средний балл и выводит ФИО студента, у которого он максимальный. Производный класс «СТУДЕНТ-ОБЩЕСТВЕННИК» содержит следующие элементы: общественная работа, процент надбавки к стипендии, переопределенный метод просмотра информации о студентах-общественниках. Производный класс «СТУДЕНТ-СПОРТСМЕН» содержит следующие элементы: вид спорта, переопределенный метод просмотра информации о студентах-спортсменах.

2. Базовый класс «СОТРУДНИК» описывает следующие данные о сотрудниках фирмы: ФИО сотрудника; табельный номер; количество отработанных часов за месяц; почасовой тариф. В состав класса входят следующие функции: виртуальная функция просмотра данных о сотрудниках; функция-друг, которая позволяет вывести размер заработанной платы каждого сотрудни­ка фирмы за вычетом подоходного налога, который составляет 13 % от суммы заработка. Производный класс «СОТРУДНИК-КОМАНДИРОВКИ» содержит следующие элементы: количество командировочных дней в течение месяца; процент надбавки к зарплате за каждый день командировки; переопределенную функцию просмотра информации о сотрудниках, которые в теку­щем месяце побывали в командировке. Производный класс «СОТРУДНИК-ОБЩЕСТВЕННИК» содержит следующие элементы: общественная работа; переопределенную функцию просмотра информации о сотрудниках-общественниках.

3. Базовый класс «АБИТУРИЕНТ» описывает следующие данные об абитуриентах, сдавших вступительные экзамены в университет: ФИО; адрес; оценки по предметам. В состав класса входят следующие функции: виртуальная функция просмотра данных о абитуриентах; функция-друг, позволяющая определить количество абитуриентов, проживающих в заданном городе. Производный класс «АБИТУРИЕНТ-ЛЬГОТНИК» содержит следующие данные: описание льготы и переопределенную функцию просмотра информации об абитуриентах, имеющих льготы при поступлении. Производный класс «АБИТУРИЕНТ-СПОРТСМЕН» содержит следующие данные: вид спорта, соревнования, награды и переопределенный метод вывода данных об абитуриентах- спортсменах.

4. Базовый класс «АВТОБУСНЫЙ РЕЙС» описывает следующие данные-элементы: номер рейса, пункт назначения, цена билета, дата и время отправления, дата и время прибытия на конечный пункт и следующие методы: виртуальную функцию просмотра информации об автобусных рейсах, функцию-друга, которая должна вывести информацию о рейсах, позволяющих добраться до указан­ного пункта. Производный класс «РЕЙС-ЭКСПРЕСС» содержит следующие данные: процентная надбавка на цену билета и переопределенную функцию просмотра данных о рейсах экспресс. Производный класс «МЕЖДУНАРОДНЫЙ РЕЙС» содержит следующие данные: страна и переопределенную функцию просмотра данных о международных автобусных рейсах.

5. Базовый класс «ТЕЛЕФОН» описывает данные о разговорах на междугородней АТС: дату разговора, код и название города, продолжительность разговора, тариф, номер телефона в этом городе, номер телефона абонента. В класс входят следующие функции: виртуальная функция просмотра данных о разговорах на междугородней АТС, функция-друг, которая подсчитает суммарное время разговора с указанным городом. Производный класс «ТЕЛЕФОН-ЛЬГОТЫ» содержит следующие данные о льготных тарифах: вид льгот, процент для льготного тарифа, переопределенную функцию просмотра данных о льготных разговорах на междугородней АТС. Производный класс «СРОЧНЫЕ ВЫЗОВЫ» содержит следующие данные: надбавка к тарифу за срочность вызова, переопределенную функцию просмотра данных о срочных разговорах на междугородней АТС.

6. Базовый класс «ТОВАР» описывает данные о товарах, имеющихся на складе: наименование товара, фирма-изготовитель. В класс входят следующие функции: виртуальная функция просмотра данных о товарах, имеющихся на складе; функция-друг, которая позволяет вывести товары и их данные для указанной фирмы-изготовителя. Производный класс «ИМПОРТИРУЕМЫЙ ТОВАР» содержит следующие данные: страна-поставщик; дата поставки; количество единиц товара; переопределенную функцию просмотра информации об импортируемых товарах. Производный класс «ЭКСПОРТИРУЕМЫЙ ТОВАР» содержит следующие данные: страна-заказчик; количество единиц товара, переопределенную функцию просмотра информации об экспортируемых товарах.

7. Базовый класс «ДЕТАЛЬ» описывает дан­ные о партиях деталей, выпускаемых различными цехами завода: наименование детали; количество деталей; номер цеха, где они были изготовлены. В класс входят следующие функции: виртуальная функция просмотра дан­ных о партиях деталей, выпускаемых различными цехами завода; функция-друг, позволяющая вычислить общее количество изделий указанного наимено­вания. Производный класс «ДЕТАЛЬ_1» имеет следующие элементы: наличие дополнительного антикоррозийного покрытия; переопределенная функция просмотра дан­ных о партиях деталей. Производный класс «ДЕТАЛЬ_2» имеет следующие элементы: коэффициент надежности в процентах для разных типов деталей; переопределенная функция просмотра дан­ных о партиях деталей.

8. Базовый класс «ТОВАР» описывает данные о товарах, имеющихся в компьютерном магазине: шифр товара, дата поступления товара; фирма-поставщик, фирма-изготовитель, количество единиц товара. В класс входят следующие функции: виртуальная функция просмотра данных о товарах, имеющихся в магазине; функция-друг, которая выводит информацию о фирмах-поставщиках, которые поставили больше всего товаров. Производный класс «ТОВАР-КОМПЬЮТЕР» содержит следующие данные: тип компьютера (портативный, настольный); производитель; тип процессора; частота процессора; емкость ОЗУ; емкость винчестера, переопределенную функцию просмотра информации о товарах - компьютерах. Производный класс «ТОВАР-МОНИТОР» содержит следующие данные: размер монитора, тип монитора, переопределенную функцию просмотра информации о товарах - мониторах.

9. Базовый класс «УЧАСТНИК СОРЕВНОВАНИЙ» описывает данные об участниках спортивных соревнований: название соревнования, ФИО спортсмена, возраст, рост, вес. В класс входят следующие элементы-функции: виртуальная функция просмотра информации об участниках спортивных соревнований; функция-друг, которая выведет информацию о самом легком спортсмене. Производный класс «УЧАСТНИК СОРЕВНОВАНИЙ ПО ПЛАВАНИЮ» содержит элементы-данные: результирующее время и переопределенную функцию просмотра данных об участниках соревнований по плаванию. Производный класс «УЧАСТНИК СОРЕВНОВАНИЙ ПО СТРЕЛЬБЕ» содержит элементы-данные: набранные балы и переопределенную функцию просмотра данных об участниках соревнований по стрельбе.

10. Базовый класс «АВИА-РЕЙСЫ» описывает следующие данные-элементы: номер рейса; пункт назначения; цена билета; время отправления; время прибытия на конечный пункт. В класс входят следующие функции: виртуальная функция просмотра информации об авua - рейсах; функция-друг для вывода информации о рейсах, отправляющихся в указанный пункт назначения по указанной цене билета. Производный класс «АВИА-РЕЙСЫ ПО СТРАНЕ» содержит следующие данные: дни вылета; переопределенную функцию просмотра данных о внутренних авua-рейсах. Производный класс «МЕЖДУНАРОДНЫЕ АВИА-РЕЙСЫ» содержит: страна, дата отправления и дата прибытия, переопределенную функцию просмотра данных о международных авua-рейсах.

11. Базовый класс «БИБЛИОГРАФ» описывает следующие дан­ные: ФИО сотрудника библиотеки, год рождения, год поступления на работу, категория (библиограф, старший библиограф, главный библиограф, заведующий отделом), название отдела. В класс входят следующие функции: виртуальная функция вывода всех данных о сотруднике библиотеки; функция-друг, которая позволяет вывести ФИО старших библиографов отдела, название которого вводится с клавиатуры. Производный класс «БИБЛИОГРАФ_1» имеет следующие элементы: количество выполняемых справок-заказов в день и переопределенную функцию вывода всех данных о сотруднике библиотеки. Производный класс «БИБЛИОГРАФ_2» имеет следующие элементы: количество выполняемых тематических справок в месяц и переопределенную функцию вывода всех данных о сотруднике библиотеки.

12. Базовый класс «ПРЕПОДАВАТЕЛЬ» описывает данные: ФИО преподавателя, должность, кафедра. В класс входят следующие функции: виртуальная функция просмотра данных о преподавателе; функция-друг, которая позволяет вывести список преподавателей для указанной кафедры. Производный класс «КУРАТОР» содержит следующие данные: название курируемой группы, номер курса; переопределенную функцию просмотра информации о преподавателях-кураторах. Производный класс «НАУЧНЫЙ РУКОВОДИТЕЛЬ» содержит следующие данные: тема, ФИО студента, переопределенную функцию просмотра информации о преподавателях - научных руководителях.

2.2 Отношение между классами «содержит»

Класс может включать в себя объекты других классов в качестве элементов. В листинге 2.2 представлена программа, в которой реализовано взаимодействие объектов трех классов. Класс CMenu описывает пользовательский интерфейс. Класс CСatalogue описывает массив указателей на объекты класса CBook. Класс CBook описывает книги.

Результат выполнения программы в различных вариантах представлен на рисунках 2.2 – 2.5.





Дата публикования: 2015-04-07; Прочитано: 287 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...