Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2025 / week10 / index.du
diff options
context:
space:
mode:
1 files changed, 27 insertions, 28 deletions
-rw-r--r--src/teaching/oop-2025/week10/index.du55
diff --git a/src/teaching/oop-2025/week10/index.du b/src/teaching/oop-2025/week10/index.du
index ca1825c..e99f572 100644
--- a/src/teaching/oop-2025/week10/index.du
+++ b/src/teaching/oop-2025/week10/index.du
@@ -1,71 +1,71 @@
-# Задачи - ООП, Седмица 10, 22.04.2026
+'def title Задачи - ООП, Седмица 10, 22.04.2026
+'def desc Условията на задачите за упражнение.
-'define expected-reading 3 min
-'define created 22 April 2026
-'define edited 29 April 2026
-[$pagenav]
+# {title}
+
+{pagenav 3 min;22 April 2026;29 April 2026}
## За решаване
### Задача 1
-.solution-link [url https://github.com/Syndamia/oop-2025-solutions/tree/main/Week10/Exercise01 Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week10/Exercise01}
-Реализирайте клас [`User`], който съдържа полета за:
+Реализирайте клас {` User}, който съдържа полета за:
.bulleted
- идентификационен код
- име
- парола
- година на създаване на акаунта
-И публичен метод [`LogIn`], който по подаден идентификационен код и парола връща дали данните са коректни (и потребителя може да влезе в акаунта си).
+И публичен метод {` LogIn}, който по подаден идентификационен код и парола връща дали данните са коректни (и потребителя може да влезе в акаунта си).
-Реализирайте наследник [`Student`] на [`User`], който допълнително съдържа полета:
+Реализирайте наследник {` Student} на {` User}, който допълнително съдържа полета:
.bulleted
- дали е завършил или не
- година на випуск
-И публичен метод [`Graduate`], с който се записва че е завършил.
+И публичен метод {` Graduate}, с който се записва че е завършил.
-Реализирайте наследник [`Teacher`] на [`User`], който допълнително съдържа полета:
+Реализирайте наследник {` Teacher} на {` User}, който допълнително съдържа полета:
.bulleted
- име на предмет който преподава
- брой ученици на които преподава
-И публичен метод [`ChangeStudents`], с който се променя бройката студенти на които преподава.
+И публичен метод {` ChangeStudents}, с който се променя бройката студенти на които преподава.
### Задача 3
-.solution-link [url https://github.com/Syndamia/oop-2025-solutions/tree/main/Week10/Exercise03 Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week10/Exercise03}
-Реализирайте клас [`Inventory`], който съдържа неограничено количество продукти.
+Реализирайте клас {` Inventory}, който съдържа неограничено количество продукти.
За всеки продукт съхранете име и количество.
-Реализирайте наследник [`Shop`] на [`Inventory`], който допълнително съхранява неограничено количество продажби.
+Реализирайте наследник {` Shop} на {` Inventory}, който допълнително съхранява неограничено количество продажби.
Всяка продажба съдържа име на продукт, купено количество и дата (ден, месец, година).
-Реализирайте негов метод [`Purchase`], който по подадени данни съхранява нова продажба и намалява инвентарното наличество.
+Реализирайте негов метод {` Purchase}, който по подадени данни съхранява нова продажба и намалява инвентарното наличество.
-Реализирайте наследник [`Warehouse`] на [`Inventory`], който допълнително съхранява неограничено количество доставки.
+Реализирайте наследник {` Warehouse} на {` Inventory}, който допълнително съхранява неограничено количество доставки.
Всяка доставка съдържа най-много 8 продукта, датата на доставката (ден, месец, година) и номер за проследяване.
-Реализирайте негов метод [`Receive`], който по подадени данни съхранява нова доставката и увеличава инвентарното количество.
+Реализирайте негов метод {` Receive}, който по подадени данни съхранява нова доставката и увеличава инвентарното количество.
.warn
Всички неограничени количества трябва да са имплементирани в самия клас.
-Не може да имплементирате [`ProductArray`], който да е член-данна в [`Inventory`] например.
+Не може да имплементирате {` ProductArray}, който да е член-данна в {` Inventory} например.
## За любознателните
### Задача 2
-.solution-link [url https://github.com/Syndamia/oop-2025-solutions/tree/main/Week10/Exercise02 Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week10/Exercise02}
.warn
-[*(29.04.2026)*]
+{i (29.04.2026)}
Тази задача избързва с материала, затова е преместена тук.
-Реализирайте клас [`Vehicle`], който съдържа полета за:
+Реализирайте клас {` Vehicle}, който съдържа полета за:
.bulleted
- модел
- година на производство
@@ -74,21 +74,20 @@
- тежест в килограми
- конски сили
-Реализирайте наследник [`CombustionVehicle`] на [`Vehicle`], който съдържа полета за:
+Реализирайте наследник {` CombustionVehicle} на {` Vehicle}, който съдържа полета за:
.bulleted
- брой цилиндри в двигателя
- обем на двигателя в литри
-Реализирайте наследник [`ElectricVehicle`] на [`Vehicle`], който съдържа полета за:
+Реализирайте наследник {` ElectricVehicle} на {` Vehicle}, който съдържа полета за:
.bulleted
- капацитет на батерия в киловатчаса
- пробег в километри
- количество поддържано захранване в киловатове
-За всички класове реализирайте нужните селектори и мутатори, както и [`operator<<`] и [`operator>>`].
+За всички класове реализирайте нужните селектори и мутатори, както и {` operator<<} и {` operator>>}.
От входа получавате цяло неотрицателно число: бройка превозни средства.
-След това, за всяко превозно средство получавате буква определяща типа му ([`c`] за [`CombustionVehicle`] и [`e`] за [`ElectricVehicle`]) и след това всички нужни стойности (първо тези от [`Vehicle`], модел, година на производство, ... и след това тези за съответния автомобил).
-
-Запазете всички превозни средства в [=един=] масив.
+След това, за всяко превозно средство получавате буква определяща типа му ({` c} за {` CombustionVehicle} и {` e} за {` ElectricVehicle}) и след това всички нужни стойности (първо тези от {` Vehicle}, модел, година на производство, ... и след това тези за съответния автомобил).
+Запазете всички превозни средства в {b един} масив.