diff options
1 files changed, 27 insertions, 28 deletions
| -rw-r--r-- | src/teaching/oop-2025/week10/index.du | 55 |
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 един} масив. |