Лабораторная работа №2 по ООП. Создание класса с учетом правил предметной области.

Лабораторная работа №2 по ООП. Создание класса с учетом правил предметной области.

Лабораторная работа №2 по ООП. Создание класса с учетом правил предметной области.

Лабораторная работа №2 по ООП. Создание класса с учетом правил предметной области.


Общее задание

Создать класс, имеющий заданные свойства, обеспечить доступ к свойствам (запись и чтение значений свойств) с учетом заданных ограничений. Все конструкторы класса так же должны обеспечивать создание объекта с учетом заданных ограничений. Написать программу, демонстрирующую сохранение ограничений при любых действиях внешней программы над объектом.


Класс

свойства

Правила ПО

1

Монстр

здоровье, сила

Суммарное значение здоровья и силы должно лежать в диапазоне от 50 до 150, каждое свойство должно лежать в диапазоне от 1 до 100. Если задаваемое значение не будет соответствовать условию, то автоматически присвоить ближайшее разрешенное.

2

Почтовый адрес

улица, дом, квартира

Первые символы до пробела свойства «улица» указывают на тип. «ул» - улица, «пр» - проспект, «пер» - переулок. На переулке номера домов лежат в диапазоне от 1 до 30, на улице от 1 до 100, на проспекте от 1 до 1000. Если дом частный, то квартира не указывается.

3

Результат Зачетной недели

Студент, семестр предметы, зачеты

Семестр может быть от 1 до 9. На 3, 7 семестрах студенты сдают по 3 зачета, на 5 и 6 по 4 зачета, на остальных по 5 зачетов. Написать функцию, определяющую можно ли студенту поставить штамп «зачтено», который ставится только при всех сданных зачетах.

4

Сессия ВУЗа

(простое)

Семестр, Количество зачетов, количество экзаменов

Суммарное количество зачетов и экзаменов не должно быть от 7 до 9.

5

Человек

(сложное)

Голова, туловище, руки, ноги

Голова задается окружностью с заданными координатами центра и радиусом. Туловище задается прямоугольником: координатами верхнего левого угла, высотой и шириной. Руки и ноги задаются длинами и углами положения. Все члены не должны быть отделены друг от друга. Руки растут из верхних углов прямоугольника, ноги из нижних. Написать функцию определения роста человека.

6

Система прямоугольников


Прямоугольник1,

Прямоугольник2

Прямоугольники задаются координатами.

Площади прямоугольников не должны пересекаться и должны лежать в координатах от (0, 0) до (1000, 1000). Размеры прямоугольников не должны превышать 500.

7

Система фигур

Прямоугольник, окружность.

Прямоугольник задается координатами.

Окружность задается координатами центра и радиусом. Площади фигур должны пересекаться. Написать функцию определения общей площади занимаемой фигурами.

8

Дата рождения пациента больницы

День, месяц, год

Год должен лежать в диапазоне от 1900 до 2014. Месяц может принимать значения от «январь» до «декабрь», день в зависимости от месяца и года (учитывая високосные года).

Написать функцию для определения возраста пациента.

9

Отрезок

Точка 1, Точка2

Точки задаются координатами (x1, y1), (x2, y2) соответственно. При смене координат одной точки, координаты другой точки меняются по принципу: расстояние между точками не меняется, смещение другой точки минимально. Формулы для использования:

где x12, y12 новые координаты точки1, x22, y22 новые координаты точки2, L – длина отрезка.

Аналогично при смене координат точка2.