Задачи - ООП, Седмица 10, 22.04.2026
За решаване
Задача 1
Реализирайте клас User, който съдържа полета за:
- идентификационен код
- име
- парола
- година на създаване на акаунта
И публичен метод LogIn, който по подаден идентификационен код и парола връща дали данните са коректни (и потребителя може да влезе в акаунта си).
Реализирайте наследник Student на User, който допълнително съдържа полета:
- дали е завършил или не
- година на випуск
И публичен метод Graduate, с който се записва че е завършил.
Реализирайте наследник Teacher на User, който допълнително съдържа полета:
- име на предмет който преподава
- брой ученици на които преподава
И публичен метод ChangeStudents, с който се променя бройката студенти на които преподава.
Задача 2
Реализирайте клас Vehicle, който съдържа полета за:
- модел
- година на производство
- километраж
- еко категория (цяло число от 1 до 6 вкл.)
- тежест в килограми
- конски сили
Реализирайте наследник CombustionVehicle на Vehicle, който съдържа полета за:
- брой цилиндри в двигателя
- обем на двигателя в литри
Реализирайте наследник ElectricVehicle на Vehicle, който съдържа полета за:
- капацитет на батерия в киловатчаса
- пробег в километри
- количество поддържано захранване в киловатове
За всички класове реализирайте нужните селектори и мутатори, както и operator<< и operator>>.
От входа получавате цяло неотрицателно число: бройка превозни средства.
След това, за всяко превозно средство получавате буква определяща типа му (c за CombustionVehicle и e за ElectricVehicle) и след това всички нужни стойности (първо тези от Vehicle, модел, година на производство, ... и след това тези за съответния автомобил).
Запазете всички превозни средства в един масив.
Задача 3
Реализирайте клас Inventory, който съдържа неограничено количество продукти.
За всеки продукт съхранете име и количество.
Реализирайте наследник Shop на Inventory, който допълнително съхранява неограничено количество продажби.
Всяка продажба съдържа име на продукт, купено количество и дата (ден, месец, година).
Реализирайте негов метод Purchase, който по подадени данни съхранява нова продажба и намалява инвентарното наличество.
Реализирайте наследник Warehouse на Inventory, който допълнително съхранява неограничено количество доставки.
Всяка доставка съдържа най-много 8 продукта, датата на доставката (ден, месец, година) и номер за проследяване.
Реализирайте негов метод Receive, който по подадени данни съхранява нова доставката и увеличава инвентарното количество.
Всички неограничени количества трябва да са имплементирани в самия клас.
Не може да имплементирате