blob: 243ee930934a4fb655ccbf9663edde70c3367ad8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
'def title Задачи - ООП, Седмица 12, 13.05.2026
'def desc Условията на задачите за упражнение.
# {title}
{pagenav 2 min;13 May 2026;13 May 2026}
## За решаване
### Задача 1
.warn
Първо реализирайте архитектурно решение на задачата!
Ще разгледаме система за менажиране на прозорци в операционна система.
За всеки прозорец съхраняваме:
.unordered
- неотрицателни координати на горния ляв ъгъл на прозореца в пиксели.
На координат (0,0) отбелязваме пиксела в горния ляв ъгъл на екрана.
- ширина и височина на прозореца в пиксели
- име на прозореца с максимална дължина от 255 букви
Прозореца трябва да има нужните селектори, мутатори, методи за центриране (хоризонтално, вертикално и двете), реоразмеряване на цял екран и обратно.
Разглеждаме също прозорци с рамка.
Рамката заема част от всяка страна на прозореца.
Трябва да се съхрняват два размера на рамката: този на горната страна (който в реалния свят би съхранявал името на прозореца, бутони за отваряне/затваряне и так. нат.) и този на останалите страни (който е много тънък и се използва главно за реоразмеряване).
Прозреца с рамка допълнително трябва да имплементира метод, който връща областта в която се намира съдържанието: размера и координатите на прозореца с извадени размерите на рамките.
Имаме и формулярен прозорец: прозорец с рамка, който съхранява неограничено количество от динамично-заделени данни по подаден тип.
Реализирайте всички нужни методи и оператори за обработка на тези данни.
Имаме и диалогов прозорец: прозорец с рамка, който съхранява низово съобщение с неограничен размер.
Реализирайте селектор и мутатор на това съобщение.
Финално имаме графичен прозорец: прозорец без рамка, който съхранява изображение.
Всеки пиксел в изображението се представя чрез произволна целочислена стойност.
Размерите на изображението са запазени в типа на прозореца.
|