Files
course-students/main.py
T
a-limasov fb3874d58f Тема 3. Коммит 3: Обновление main.py с сохранением
- Добавлены пункты меню: Сохранить, Загрузить
- Автозагрузка при старте приложения
- Автосохранение перед выходом
- Добавлено удаление задач (пункт 4)
2026-08-28 12:23:30 +03:00

84 lines
2.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Менеджер задач - Версия 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()