Задачи - ООП, Седмица 12, 13.05.2026
За решаване
Задача 1
Ще разгледаме система за менажиране на прозорци в операционна система.
За всеки прозорец съхраняваме:
- неотрицателни координати на горния ляв ъгъл на прозореца в пиксели. На координат (0,0) отбелязваме пиксела в горния ляв ъгъл на екрана.
- ширина и височина на прозореца в пиксели
- име на прозореца с максимална дължина от 255 букви
Прозореца трябва да има нужните селектори, мутатори, методи за центриране (хоризонтално, вертикално и двете), реоразмеряване на цял екран и обратно.
Разглеждаме също прозорци с рамка. Рамката заема част от всяка страна на прозореца. Трябва да се съхрняват два размера на рамката: този на горната страна (който в реалния свят би съхранявал името на прозореца, бутони за отваряне/затваряне и так. нат.) и този на останалите страни (който е много тънък и се използва главно за реоразмеряване).
Прозреца с рамка допълнително трябва да имплементира метод, който връща областта в която се намира съдържанието: размера и координатите на прозореца с извадени размерите на рамките.
Имаме и формулярен прозорец: прозорец с рамка, който съхранява неограничено количество от динамично-заделени данни по подаден тип. Реализирайте всички нужни методи и оператори за обработка на тези данни.
Имаме и диалогов прозорец: прозорец с рамка, който съхранява низово съобщение с неограничен размер. Реализирайте селектор и мутатор на това съобщение.
Финално имаме графичен прозорец: прозорец без рамка, който съхранява изображение. Всеки пиксел в изображението се представя чрез произволна целочислена стойност. Размерите на изображението са запазени в типа на прозореца.
Първо реализирайте архитектурно решение на задачата!