- Добавлены пункты меню: Сохранить, Загрузить - Автозагрузка при старте приложения - Автосохранение перед выходом - Добавлено удаление задач (пункт 4)
84 lines
2.7 KiB
Python
84 lines
2.7 KiB
Python
"""
|
||
Менеджер задач - Версия 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()
|