Задача за поправителен изпит по ООП-практикум (втора част)
Unix time е формат за време, с който чрез едно единствено цяло число се представя момент във времето. Числото съответства на изтеклите секунди от 1 януари 1970 до дадения момент. Например, числото 1598618400 съответства на 15:40 часа на 28 август 2020 година.
1. Да се реализира абстрактен клас WorkItem, описващ задача със следните операции:
-
bool status(long now) – връща true, ако задачата е приключила към момента now (в unix time формат) и false в противен случай
-
std::string name() – описание на задачата
2. Да се дефинира клас SingleTask, наследник на WorkItem, който да дефинира задача със следните допълнителни характеристики, задавани по време на конструиране на задачата:
-
Начален момент от време(unix time)
-
Продължителност (в милисекунди)
3. Да се дефинира клас TaskGroup, наследник на WorkItem. Обектите от клас TaskGroup да поддържат списък с до 10 произволни задачи (прости и групови), които могат да принадлежат на повече от една група. Груповата задача се счита за приключена, когато всички нейни подзадачи за приключени. Класът да реализира следните допълнителни операции:
-
addTask – добавяне на нова подзадача. В случай, че в груповата задача вече има максималния брой 10 задачи, функцията да връща false. За списъка с подзадачи можете да използвате std::vector или друга готова структура от данни
-
print – извежда имената на всички подзадачи
Да се реализира примерна програма, която създава групова задача, която съдържа в себе си както единични задачи, така и поне една друга групова задача със собствени подзадачи.
Примерната програма да е съставена така, че всички заделени обекти да се унищожат коректно преди приключването ѝ.