""" Менеджер задач - Версия 3.0 Тема 3: Сохранение данных в файл """ from task import Task from task_manager import TaskManager def print_menu(): """Вывести меню программы""" print("\n=== Менеджер задач ===") print("1. Добавить задачу") print("2. Показать все задачи") print("3. Завершить задачу") print("4. Удалить задачу") print("5. Сохранить") print("6. Загрузить") print("7. Статистика") print("0. Выход") def main(): manager = TaskManager() # Автоматическая загрузка при старте manager.load() print("Данные загружены!") 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": idx = int(input("Номер задачи для удаления: ")) - 1 if manager.remove_task(idx): print("Задача удалена!") else: print("Задача не найдена") elif choice == "5": manager.save() print("Данные сохранены в tasks.json") elif choice == "6": manager.load() print("Данные загружены из tasks.json") elif choice == "7": print(f"Всего задач: {len(manager.list_tasks())}") print(f"Выполнено: {manager.get_completed_count()}") print(f"В ожидании: {manager.get_pending_count()}") elif choice == "0": # Автосохранение перед выходом manager.save() print("Данные сохранены. До свидания!") break if __name__ == "__main__": main()