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