Композиция классов и объектов

Тип данных должен быть
реализован в виде класса с указанными закрытыми полями, где операции
реализуются в виде открытых методов класса. Требуется реализовать тип данных с
помощью класса. Во всех заданиях обязательно должны присутствовать:
·
Метод
инициализации Init(); метод должен контролировать значения аргументов на
корректность, при некорректных значения выводить
сообщение No и заканчивать
работу с этим экземпляром;
·
Ввод с клавиатуры
Read();
·
Вывод на экран Display(), в
котором выводятся поля экземпляра и результат вычислений специфического метода;
В головной функции требуется
создать один статический экземпляр описанного типа и вызвать для него все
перечисленные методы в указанном порядке.




Формат входных данных.
Ввод: в первой строке – размеры экрана по горизонтали и
вертикали, затем первоначальные параметры окна по шаблону:
<Заголовок>,
<координаты левого верхнего угла>, <размер по горизонтали>,
<размер по вертикали>, <цвет окна>, <состояние
«видимое(1)/невидимое(0)»>, <состояние «с рамкой (1)/без рамки(0)»>
<координаты курсора> <размер курсора> <курсор вертик/горизонт> <курсор видим/невидим>.
После этого построчно вводятся операции, производимые над окном по шаблону:
<код операции>
<параметры>
Где <код операции> = 0
– признак окончания ввода. После выполнения каждой операции выводить все
параметры окна. При невозможности выполнения операции параметры окна не
изменять.
Коды операций:
1 – передвижение окна по
горизонтали;
2 – передвижение окна по
вертикали;
3 – изменение ширины окна;
4 – изменение высоты окна;
5 – изменение цвета окна;
6 – изменение состояния
видимости;
7 – изменение состояния
рамки.
8 – передвижение курсора по
горизонтали;
9 – передвижение курсора по
вертикали;
10 – изменение размера
курсора;
11 – изменение вида курсора;
12 – гашение/восстановление.
Вывод: Первоначальные
параметры окна и курсора в нем, затем параметры окна и курсора после выполнения
каждой операции.
Пример входных данных:
640 400
window 50 50 300 100 5 1 1 20 30 5 1 1
1 200
2 200
3 100
4 200
5 6
6 0
7 0
8 100
9 50
10 12
11 0
12 0
0 0
Пример выходных данных:
window 50 50 300 100 5 1 1 20 30 5 1 1
window
250 50 300 100 5 1 1 20 30 5 1 1
window
250 250 300 100 5 1 1 20 30
5 1 1
window
250 250 100 100 5 1 1 20 30 5 1 1
window
250 250 100 100 5 1 1 20 30 5 1 1
window
250 250 100 100 6 1 1 20 30 5 1 1
window
250 250 100 100 6 0 1 20 30
5 1 1
window
250 250 100 100 6 0 0 20 30 5 1 1
window
250 250 100 100 6 0 0 120 30 5 1 1
window
250 250 100 100 6 0 0 120 80 5 1 1
window
250 250 100 100 6 0 0 120 80 12 1 1
window
250 250 100 100 6 0 0 120 80 12 0 1
window
250 250 100 100 6 0 0 120 80 12 0 0