Projet : Gestionnaire de Tâches (To-Do List)

Objectif :

Développer un gestionnaire de tâches en ligne de commande qui permet à un utilisateur de gérer ses tâches quotidiennes : ajouter une tâche, marquer une tâche comme terminée, supprimer une tâche et afficher la liste des tâches. Les tâches doivent être sauvegardées dans un fichier texte.

Résultats attendus :

  1. Ajout de tâches :

    • L'utilisateur peut entrer une nouvelle tâche et l'ajouter à la liste des tâches.

    • Exemple : L'utilisateur entre "Faire les courses", et cette tâche est ajoutée à la liste.

  2. Affichage des tâches :

    • Lorsque l'utilisateur demande à voir ses tâches, toutes les tâches doivent s'afficher avec leur statut (par exemple, terminée ou non).

    • Exemple :

        1. Faire les courses
        2. Répondre aux emails (Terminée)
        3. Préparer le dîner
      
  3. Marquer une tâche comme terminée :

    • L'utilisateur peut marquer une tâche comme terminée en entrant son numéro.

    • Exemple : L'utilisateur marque la tâche "Faire les courses" comme terminée, et son statut devient "(Terminée)".

  4. Suppression de tâches :

    • L'utilisateur peut supprimer une tâche de la liste en entrant son numéro.

    • Exemple : L'utilisateur supprime "Préparer le dîner", et cette tâche est retirée de la liste.

  5. Sauvegarde et chargement des tâches :

    • Avant de quitter le programme, toutes les tâches sont sauvegardées dans un fichier texte.

    • Lors du prochain lancement du programme, les tâches sont chargées à partir du fichier et réaffichées à l'utilisateur.

  6. Interaction avec l'utilisateur :

    • Le programme affiche un menu simple permettant à l'utilisateur de choisir une option parmi : afficher les tâches, ajouter une tâche, marquer une tâche comme terminée, supprimer une tâche, ou quitter.

    • Exemple de menu :

        Menu :
        1. Afficher les tâches
        2. Ajouter une tâche
        3. Marquer une tâche comme terminée
        4. Supprimer une tâche
        5. Quitter
        Choisissez une option (1-5) :
      
  7. Erreurs et validation :

    • Si l'utilisateur entre un numéro de tâche invalide ou une entrée incorrecte, le programme affiche un message d'erreur et lui demande de réessayer.
  8. Sortie du programme :

    • Lorsque l'utilisateur choisit de quitter le programme, toutes les tâches sont sauvegardées et le programme se termine avec un message de confirmation.

    • Exemple de message : "Tâches sauvegardées. À bientôt !"

Bonus :

  • Ajouter des catégories de tâches (ex : personnel, travail).

  • Filtrer les tâches pour afficher seulement celles non terminées.

  • Permettre de modifier une tâche existante.