Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / Lab_1_1

.pdf
Скачиваний:
26
Добавлен:
03.03.2016
Размер:
65.38 Кб
Скачать

Лабораторная работа №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.Поясните, какие уровни доступа могут быть указаны для операций и

атрибутов класса? Какие использованы в данной программе.

Соседние файлы в папке ООП