Задачи - ООП, Седмица 12, 09.05.2024

GitHub classroom: classroom.github.com/a/o7hNz1pr

Задача 1

< Решение >

Реализирайте клас Publication, който пази:

Реализирайте клас TextDocument, който пази неоразмеряем низ с текстово съдържание и неговия размер.

Реализирайте наследник на двата класа ScientificPaper, който допълнително пази и низ от максимално 511 знака, съдържащ име на научна дисциплина. За всички класове реазлизирайте оператор <<.

Задача 2

Не говорим за нея, условието беше толкова сбъркано, че се наложи да я сваля

Задача 3

< Решение >

Реализирайте абстрактен клас MobileDevice, който запазва:

Допълнително нека:

Реализирайте негов наследник Telephone, за който Show изкарва съобщението на екрана.

Реализирайте втори негов наследник Pager1, който съхранява име на файл (като динамично-заделен низ) и Show изкарва съобщението в съответния файл. Разбира се, имплементирайте голяма петица.

Реализирайте клас TelecommunicationCompany, който съхранява динамично-заделен и оразмеряем масив от (указатели към) MobileDevice. Имплементирайте всичко от голяма петица.

Задача 4

< Решение >

Реализирайте клас Employee, който запазва:

Производителността е множител на заплатата, тоест ако има производителност 0.5 значи работи като човек на който му плащат с половината заплата.

Реализирайте абстрактен клас Person, който запазва:

Допълнително задължава реализацията на член-функция Workload, връщаща стойност с плаваща запетая. Разбира се имплементирайте голяма петица.

Реализирайте наследник на двата класа на име Developer, който допълнително запазва:

Реализирайте оператори ++ и --, като префиксните променят броя проекти на които ще се пуска нова версия, докато постфиксните променя броя проекти в които участва.
За него Workload се определя като 1.1 по всеки проект и допълнително по 2.3 за всеки проект на който ще се пуска нова версия.

Реализирайте наследник на двата класа на име Manager, който допълнително запазва динамично-заделен и оразмеряем масив от Person, които менижира.

Имплементирайте голяма петица и:

Workload се определя като 0.6 на човек който менижира.

Финално реализирайте клас Company, който запазва масив от 128 указателя Person в компанията. Имплементирайте негова член-функция:


  1. От времето без мобилни телефони, хората са си купували пейджъри, които ти пращат нотификация ако някой ти звънне и не вдигнеш. Пейджърите са “заключени” за определени региони, тоест някой ти се обажда, не вдигаш, и всички телекомуникционни кули в региона изпращат съобщение “на теб ти звънна този”, и пейджъра като засече сигнала ти писука. Мисля че също можеш да пращаш кратки съобщения. Не е било хич сигурна система, все още се ползва от болници в някои държави.