40 lines
2.1 KiB
Markdown
40 lines
2.1 KiB
Markdown
### Задача 7. Система управления задачами (ООП, Композиция, Enum)
|
||
|
||
**Постановка**
|
||
|
||
* **Приоритет:** Enum с уровнями LOW, MEDIUM, HIGH.
|
||
* **Задача:** Имеет название, описание, приоритет и статус (выполнена/не выполнена).
|
||
* **Менеджер задач:** Управляет списком задач, может фильтровать по приоритету.
|
||
|
||
**Задание**
|
||
|
||
**Enum `Priority`:**
|
||
|
||
1. Импортируйте `Enum` из модуля `enum`.
|
||
2. Создайте класс `Priority(Enum)` с тремя значениями: `LOW = 1`, `MEDIUM = 2`, `HIGH = 3`.
|
||
|
||
**Класс `Task`:**
|
||
|
||
1. Создайте класс `Task`.
|
||
2. В `__init__(self, title, description, priority)` сохраните параметры и установите `completed = False`.
|
||
3. Метод `mark_completed(self)` — устанавливает `completed = True`.
|
||
4. Метод `__str__(self)` — возвращает строку: `"[HIGH] Задача: Исправить баг (Не выполнена)"`.
|
||
|
||
**Класс `TaskManager`:**
|
||
|
||
1. Создайте класс `TaskManager`.
|
||
2. В `__init__(self)` создайте пустой список `tasks`.
|
||
3. Метод `add_task(self, task)` — добавляет задачу в список.
|
||
4. Метод `get_by_priority(self, priority)` — возвращает список задач с указанным приоритетом.
|
||
5. Метод `get_incomplete(self)` — возвращает список невыполненных задач.
|
||
6. Метод `show_all(self)` — выводит все задачи циклом через `print`.
|
||
|
||
**Тесты:**
|
||
|
||
1. Создайте менеджер задач
|
||
2. Добавьте 5 задач с разными приоритетами
|
||
3. Отметьте 2 задачи как выполненные
|
||
4. Получите все задачи с приоритетом HIGH
|
||
5. Получите все невыполненные задачи
|
||
6. Выведите все задачи
|