commit 19abaeff8566b45a87a1b27fa21658af78119f3b Author: bouchane Date: Sat May 24 12:06:20 2025 +0200 Ajout du Gestionnaire de Tâches en Java diff --git a/TaskManagerCLI/Task.class b/TaskManagerCLI/Task.class new file mode 100644 index 0000000..b664687 Binary files /dev/null and b/TaskManagerCLI/Task.class differ diff --git a/TaskManagerCLI/TaskManager.class b/TaskManagerCLI/TaskManager.class new file mode 100644 index 0000000..2f4fa65 Binary files /dev/null and b/TaskManagerCLI/TaskManager.class differ diff --git a/TaskManagerCLI/TaskManager.java b/TaskManagerCLI/TaskManager.java new file mode 100644 index 0000000..fad89c8 --- /dev/null +++ b/TaskManagerCLI/TaskManager.java @@ -0,0 +1,133 @@ +import java.io.*; +import java.util.*; + +// Classe interne, non publique +class Task implements Serializable { + private static final long serialVersionUID = 1L; + private String description; + private boolean done; + + public Task(String description) { + this.description = description; + this.done = false; + } + + public void markDone() { + this.done = true; + } + + public boolean isDone() { + return done; + } + + public String getDescription() { + return description; + } + + @Override + public String toString() { + return (done ? "[X] " : "[ ] ") + description; + } +} + +// Classe principale, publique +public class TaskManager { + private static final String FILE_NAME = "tasks.dat"; + private List tasks; + + public TaskManager() { + tasks = loadTasks(); + } + + public void addTask(String description) { + tasks.add(new Task(description)); + saveTasks(); + } + + public void listTasks() { + if (tasks.isEmpty()) { + System.out.println("Aucune tâche."); + return; + } + for (int i = 0; i < tasks.size(); i++) { + System.out.println((i + 1) + ". " + tasks.get(i)); + } + } + + public void markTaskDone(int index) { + if (index >= 1 && index <= tasks.size()) { + tasks.get(index - 1).markDone(); + saveTasks(); + } else { + System.out.println("Index invalide."); + } + } + + public void deleteTask(int index) { + if (index >= 1 && index <= tasks.size()) { + tasks.remove(index - 1); + saveTasks(); + } else { + System.out.println("Index invalide."); + } + } + + private void saveTasks() { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(FILE_NAME))) { + out.writeObject(tasks); + } catch (IOException e) { + System.out.println("Erreur lors de la sauvegarde des tâches."); + } + } + @SuppressWarnings("unchecked") + private List loadTasks() { + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(FILE_NAME))) { + return (List) in.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + TaskManager manager = new TaskManager(); + + System.out.println("=== Gestionnaire de Tâches ==="); + + while (true) { + System.out.println("\n1. Ajouter une tâche"); + System.out.println("2. Marquer une tâche comme terminée"); + System.out.println("3. Supprimer une tâche"); + System.out.println("4. Lister les tâches"); + System.out.println("5. Quitter"); + System.out.print("Choix: "); + String choice = scanner.nextLine(); + + switch (choice) { + case "1": + System.out.print("Description de la tâche: "); + String desc = scanner.nextLine(); + manager.addTask(desc); + break; + case "2": + manager.listTasks(); + System.out.print("Numéro de la tâche à marquer comme terminée: "); + manager.markTaskDone(Integer.parseInt(scanner.nextLine())); + break; + case "3": + manager.listTasks(); + System.out.print("Numéro de la tâche à supprimer: "); + manager.deleteTask(Integer.parseInt(scanner.nextLine())); + break; + case "4": + manager.listTasks(); + break; + case "5": + System.out.println("Au revoir !"); + return; + default: + System.out.println("Choix invalide."); + } + } + } +} diff --git a/TaskManagerCLI/tasks.dat b/TaskManagerCLI/tasks.dat new file mode 100644 index 0000000..29e16a8 Binary files /dev/null and b/TaskManagerCLI/tasks.dat differ