Compare commits

5 Commits
Author SHA1 Message Date
a-limasov 1c9e4a3ba8 Тема 2. Коммит 2: Интерактивное меню
- Полная переработка main.py
- Добавлено интерактивное меню
- Интеграция с TaskManager
- Демонстрационные задачи при запуске
2026-08-28 12:22:39 +03:00
a-limasov 7e236a5782 Тема 2. Коммит 1: Класс TaskManager
- Создан модуль task_manager.py
- Класс TaskManager для управления списком задач
- Методы: add_task, list_tasks, get_task_by_index, remove_task
- Статистика: get_completed_count, get_pending_count
2026-08-28 12:22:27 +03:00
a-limasov 0284f12908 Тема 1. Коммит 3: Функция создания задачи
- Добавлена функция create_task()
- Интеграция класса Task в main.py
- Демонстрация создания задачи
2026-08-28 12:22:16 +03:00
a-limasov e03731f188 Тема 1. Коммит 2: Добавление класса Task
- Создан модуль task.py
- Реализован класс Task с полями title, description, completed
- Метод mark_complete() для завершения задачи
- Метод __str__() для красивого отображения
2026-08-28 12:22:05 +03:00
a-limasov dd7dba4d7c Тема 1. Коммит 1: Начальная структура проекта
- Добавлен README с описанием проекта
- Создан основной файл main.py с функцией main()
- Базовая структура приложения
2026-08-28 12:21:54 +03:00
4 changed files with 140 additions and 2 deletions

No files matched your search

+14 -2
View File
@@ -1,3 +1,15 @@
# course-students # Менеджер задач - Учебный проект
Публичный репозиторий для студентов образовательного курса Приложение для управления задачами в рамках образовательного курса по программированию.
## Структура курса
- **Тема 1**: Основы Python, создание проекта
- **Тема 2**: Работа со списками задач
- **Тема 3**: Сохранение данных в файл
## Запуск
```bash
python main.py
```
+63
View File
@@ -0,0 +1,63 @@
"""
Менеджер задач - Версия 2.0
Тема 2: Работа со списком задач
"""
from task import Task
from task_manager import TaskManager
def print_menu():
"""Вывести меню программы"""
print("\n=== Менеджер задач ===")
print("1. Добавить задачу")
print("2. Показать все задачи")
print("3. Завершить задачу")
print("4. Статистика")
print("0. Выход")
def main():
manager = TaskManager()
# Добавим несколько демонстрационных задач
manager.add_task("Изучить Python", "Основы языка")
manager.add_task("Сделать проект", "Менеджер задач")
while True:
print_menu()
choice = input("Выберите действие: ")
if choice == "1":
title = input("Название задачи: ")
desc = input("Описание (необязательно): ")
manager.add_task(title, desc)
print("Задача добавлена!")
elif choice == "2":
tasks = manager.list_tasks()
if tasks:
for i, task in enumerate(tasks, 1):
print(f"{i}. {task}")
else:
print("Список задач пуст")
elif choice == "3":
idx = int(input("Номер задачи: ")) - 1
task = manager.get_task_by_index(idx)
if task:
task.mark_complete()
print("Задача выполнена!")
elif choice == "4":
print(f"Всего задач: {len(manager.list_tasks())}")
print(f"Выполнено: {manager.get_completed_count()}")
print(f"В ожидании: {manager.get_pending_count()}")
elif choice == "0":
print("До свидания!")
break
if __name__ == "__main__":
main()
+20
View File
@@ -0,0 +1,20 @@
"""
Модуль для работы с задачами
"""
class Task:
"""Класс, представляющий одну задачу"""
def __init__(self, title, description=""):
self.title = title
self.description = description
self.completed = False
def mark_complete(self):
"""Отметить задачу как выполненную"""
self.completed = True
def __str__(self):
status = "✓" if self.completed else "○"
return f"[{status}] {self.title}"
+43
View File
@@ -0,0 +1,43 @@
"""
Менеджер списка задач
Управление коллекцией задач
"""
from task import Task
class TaskManager:
"""Класс для управления списком задач"""
def __init__(self):
self.tasks = []
def add_task(self, title, description=""):
"""Добавить новую задачу в список"""
task = Task(title, description)
self.tasks.append(task)
return task
def list_tasks(self):
"""Вернуть список всех задач"""
return self.tasks
def get_task_by_index(self, index):
"""Получить задачу по индексу"""
if 0 <= index < len(self.tasks):
return self.tasks[index]
return None
def remove_task(self, index):
"""Удалить задачу по индексу"""
if 0 <= index < len(self.tasks):
return self.tasks.pop(index)
return None
def get_completed_count(self):
"""Вернуть количество выполненных задач"""
return sum(1 for task in self.tasks if task.completed)
def get_pending_count(self):
"""Вернуть количество ожидающих задач"""
return len(self.tasks) - self.get_completed_count()