ООП / Lab_1_2
.pdfЛабораторная работа №2 Тема: Классы, связь ассоциации
Цель работы: получить навыки по организации простых взаимодействий между объектами разных классов в объектно-ориентированной программе. Научится правильно определять и реализовывать связи ассоциации, агрегации и композиции.
Порядок выполнения лабораторной работы №2
В соответствии с вариантом задания выявить классы и связи между ними. Определить характер и тип связи между классами. Два класса должны быть связаны отношением агрегации или композиции (часть-целое). Третий класс – обработчик (управляющий класс).
Для связей агрегации и композиции определить и задать множественность.
Разработать классы и программу, которая демонстрирует указанные в задании возможности.
Требования к классу «целое»:
продумать атрибуты и операции класса;
определить в классе по крайней мере 2 конструктора: конструктор по умолчанию и конструктор с параметрами;
задать методы для работы с «частью»;
задать методы для доступа к атрибутам класса. Требования к классу «часть»:
продумать атрибуты и операции класса;
определить в классе по крайней мере 2 конструктора: конструктор по умолчанию и конструктор с параметрами;
задать по крайней мере один метод обработки даннях реализуемого класса;
задать методы для доступа к атрибутам класса. Требования к классу обработчику:
продумать атрибуты и операции класса;
реализовать заданные в задании методы класса обработчика.
Помимо индивидуальных операций для всех вариантов необходимо показать:
создание экземпляра класса «целое» и «часть» двумя способами: без параметров с последующим заполнением полей, с вызовом конструктора с параметрами.
работу операций обработчика;
вывод информации на экран.
Варианты заданий Варианты заданий Группа ИУС-10а
1.Классы полка и книга. Класс обработчик размещает книги согласно коду на нужную полку, поиск книг с заданными атрибутами на полках.
2.Классы отдел и сотрудник. Класс обработчик реализует перевод сотрудника в другой отдел, расчет стажа сотрудника.
3.Классы табель выходов и сотрудник. Класс обработчик реализует заполнение табеля выходов и расчет заработной платы сотрудник на основании информации о отработанном времени.
4.Классы документ и позиция документа. Класс обработчик реализует проверку позиций документа на содержание запрещенных символов, подпись заполненного документа.
5.Классы комната и студент. Класс обработчик реализует поселение студентов в комнату с соблюдением условий: в комнате студенты одного пола и одинаковой специальности, подсчет количества мальчиков и девочек, проживающих во всех комнатах.
6.Классы маршрут и остановка. Класс обработчик реализует сравнение маршрутов на идентичность, расчет времени прохождения всего маршрута .
7.Классы программа телепередач и телепередача. Класс обработчик реализует трансляцию телепередачи в заданное время, проверку программы телепередач на целостность.
8.Классы игровое поле и фигура. Класс обработчик реализует движение фигуры по полю клавишами управления курсором, переворот фигуры по нажатию клавиши «пробел».
9.Классы участок и растение. Класс обработчик реализует высадку растений на участки, сбор и подсчет урожая.
10.Классы рюкзак и учебники. Класс обработчик реализует формирование расписания предметов и заполнение рюкзака согласно этому расписанию.
11.Классы док и корабль. Класс обработчик реализует выдачу разрешения на вход корабля в порт и помещает корабль в заданный свободный док.
12.Классы комната и окна. Класс обработчик реализует проветривание комнаты при достижении критических значений температуры и влажности внутри комнаты.
13.Классы водопровод и кран. Класс обработчик реализует подсчет утекшей воды и расчет ее стоимости.
14.Классы клавиатура и клавиши. Класс обработчик задает алфавит для клавиатуры и позволяет формировать слова из этого алфавита.
15.Классы товар и категория. Класс-обработчик определяет категорию товаров с наиболее широким ассортиментом и выводит пять товаров с наибольшей ценой.
16.Классы таблица и столбец. Класс-обработчик позволяет изменять структуру таблицы.
17.Классы таблица и строка. Класс-обработчик позволяет выводить список записей таблицы, отсортированных по заданному полю.
18.Классы футболист и команда. Класс-обработчик выводит троих наиболее результативных футболистов.
19.Классы торговый зал и товар. Класс-обработчик позволяет определить стоимость товаров в каждом торговом зале, а также перемещение товаров из одного зала в другой.
20.Классы клиент банка (физ. лица) и кредит. Класс-обработчик должен вывести список клиентов, которые имеют задолженности по погашению кредитов.
21.Классы АТП и автобусы. Класс-обработчик должен вывести список автобусов, не прошедших техосмотр и определить возможности АТП по перевозке пассажиров за рабочую смену, если считать все маршруты одинаковыми и требующими 30 минут для ходки в одну сторону.
22.Классы цех и сотрудник. Класс-обработчик должен вывести на экран список сотрудников, которые работают в цеху более заданного количества лет и обеспечить перевод сотрудника из цеха в цех.
23.Классы шахматист и турнирная таблица. Класс-обработчик должен определить трѐх шахматистов, имеющих наименьшее количество поражений.
Группа ИУС-10б
1.Классы монитор и пиксель. Класс обработчик реализует проверку битых пикселей путем вывода черного, белого, красного, синего и зеленого цветов и проверки результата отображения. Кроме этого класс обработчик выполняет подсчет битых пикселей.
2.Классы турнирная таблица и команды. Класс обработчик реализует составление турнирной таблицы с учетом того, что все команды должны сыграть друг с другом по два матча, с заданным промежутком между матчами.
3.Класс команда и игрок. Класс обработчик реализует выбор заданного числа игроков на игру с учетом их состояния и амплуа.
4.Классы здание и квартира. Класс обработчик реализует подбор квартир по параметрам: площадь, количество комнат, этаж, наличие балкона, высота потолков.
5.Классы оборудование и деталь. Деталь входит в оборудование. Класс обработчик заставляет оборудование работать и считает наработку часов. Через заданное число часов нужно поставить новую деталь.
6.Классы человек и адрес. Класс обработчик реализует отображение адресов, по которым может проживать заданный с клавиатуры человек, выдает список людей с которыми он зарегистрирован в одной квартире.
7.Классы город и аэропорт. Класс обработчик проверяет наличие указанного рейса в аэропортах города, выдает ближайшие рейсы по каждому аэропорту.
8.Классы стадион и сектор. Класс обработчик реализует расчет наполненности сектора во время футбольного матча.
9.Классы треугольник и сторона треугольника. Класс обработчик реализует преобразование указанного треугольника в равнобедренный
треугольник путем изменения длин сторон исходного треугольника, сохраняя при этом площадь, занимаемую исходным треугольником.
10.Классы заказ и строка заказа. Класс обработчик реализует расчет общей стоимости заказа, проверку наличия товаров и их срока годности.
11.Классы журнал и статья. Класс обработчик реализует распределение журналов на группы в соответствии с темами статей.
12.Классы отдел и служащий. Класс обработчик формирует список имени служащих со стажем не ниже заданного.
13.Классы континент и страна. Класс обработчик формирует список стран выбранного континента в порядке уменьшения их площади и населения.
14.Классы команда и футболист. Класс обработчик позволяет переводить футболиста из одной команды в другую и сформировать историю переходов футболиста из одной команды в другую.
15.Классы бассейн и дорожка. Класс обработчик реализует принятие решения, добавить человека на дорожку (число людей на дорожке ограничено), пустить человека в зависимости от его возраста и умения плавать в бассейн или нет.
16. Классы участок и растение. Класс обработчик осуществляет полив растений и сбор урожая, если растения политы недостаточное или лишнее число раз, то урожая собирается меньше.
17.Ботанический сад и цветы. Цветы цветут при соблюдении ряда условий: время года, температура и влажность. Класс обработчик реализует поиск цветов, которые должны цвести при существующих начальных данных.
18.Классы тест и вопрос. Обработчик реализует получение ответов на вопросы и расчет итогового результата, учитывая при этом веса вопросов.
19. Классы раздача (файл) и пиры. Класс обработчик реализует определение, какие пиры содержат нужные части раздачи и получение этих частей.
20.Классы книга и лист электронной таблицы. Класс обработчик просматривает формулы на каждом листе и выдает структуру связей между листами.
21.Мебельное изделие и элемент изделия. Класс обработчик определяет количественный состав элементов мебельного изделия и вычисляет суммарную площадь всего изделия, а также стоимость материала.
22.Классы комната и батарея отопления. Класс обработчик позволяет задать температуру на улице, размеры комнаты и площадь окон в комнате, рассчитывает температуру в комнате на основании температуры батареи и числа радиаторов в батареи.
23.Классы аквариум и обогреватель. Класс обработчик реализует поддержание заданной температуры в аквариуме путем включения и выключения обогревателя, а также измерение температуры.
24.Классы папка и файл. Класс обработчик реализует создание нового файла в папке, перемещение файла в указанную папку, создание, перемещение и удаление папки.
Группа ИУС-10в
1.Классы шахматная доска и фигуры. Класс обработчик рассчитывает победу игроков в зависимости от «стоимости» белых и черных фигур.
2.Классы табло и рейс. Класс обработчик реализует вывод на табло ближайшего рейса вместо ушедшего.
3.Классы торговый автомат и напитки. Класс обработчик реализует выдачу напитков, учитывая внесенную сумму, стоимость и наличие напитка.
4.Классы книга и глава. Класс обработчик реализует составление содержания книги, установку закладки, вывод списка глав, в которых установлены закладки.
5.Классы тема сообщение. Класс обработчик реализует возможность заблокировать указанное сообщение и просмотр всех разрешенных сообщений в теме.
6.Классы компьютерная сеть и компьютер. Класс обработчик реализует отсылку сообщения от одного компьютера другому, подсчет сообщений отосланных и полученных каждым компьютером, вывод самого активного (отправляющий сообщения) и востребованного (получающий сообщения) компьютера.
7.Классы химическая реакция и реактивы. Класс обработчик реализует смешивание реактивов, проверку на возможность создания нового реактива, создание химических реакций.
8.Классы шахта лифта и лифт. Класс обработчик реализует вызов лифта на указанный этаж и расчет направления движения лифта.
9.Классы будильник и мелодия. Класс обработчик реализует создание расписания звонков с назначением времени и молоди; звонок может назначаться на день, ежедневно, через неделю, через день. Будильник отвечает за проигрывание мелодии в указанное время.
10.Классы кодовый замок и барабан. Класс обработчик реализует задание открывающей кодовой комбинации, формирование кодового слова для открытия замка.
11.Классы игровое поле и ячейки. Класс обработчик реализует составление слов на игровом поле (для каждой ячейки своя буква) и расчет числа набранных очков в зависимости от стоимости ячеек и букв.
12.Классы неделя и день. Класс обработчик реализует создание расписания на каждый день недели, выдавать диапазоны свободного времени на выбранный день недели.
13.Классы журнал и ученик. Класс обработчик должен выдавать число пропусков занятий по каждому ученику в списке, реализует расчет оценки за четверть на основании текущих оценок.
Контрольные вопросы
1.Что такое агрегация?
2.Чем агрегация отличается от композиции?
3.Как агрегация и композиция реализуются в С++?
4.Как лучше передавать объекты в функции и методы и почему?