-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGestorDeTareasAvanzado.java
More file actions
113 lines (94 loc) · 3.79 KB
/
GestorDeTareasAvanzado.java
File metadata and controls
113 lines (94 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import java.util.*;
public class GestorDeTareasAvanzado {
private static final Scanner sc = new Scanner(System.in);
private static final ArrayList<Tarea> listaTareas = new ArrayList<>();
private static final HashMap<String, Tarea> mapaTareas = new HashMap<>();
private static int acumuladorPrioridades = 0;
public static void main(String[] args) {
int opcion;
do {
mostrarMenu();
opcion = Integer.parseInt(sc.nextLine());
switch (opcion) {
case 1 -> agregarTarea();
case 2 -> listarTareas();
case 3 -> buscarTarea();
case 4 -> eliminarTarea();
case 5 -> mostrarAcumulador();
case 6 -> System.out.println("Saliendo del programa...");
default -> System.out.println("Opción inválida.");
}
} while (opcion != 6);
}
private static void mostrarMenu() {
System.out.println("=== Menú de Tareas ===");
System.out.println("1. Agregar tarea");
System.out.println("2. Listar tareas");
System.out.println("3. Buscar tarea por ID");
System.out.println("4. Eliminar tarea por ID");
System.out.println("5. Ver total acumulado de prioridades");
System.out.println("6. Salir");
System.out.print("Elegí una opción: ");
}
private static void agregarTarea() {
System.out.print("ID de la tarea: ");
var id = sc.nextLine(); // var local
if (mapaTareas.containsKey(id)) {
System.out.println("Ya existe una tarea con ese ID.");
return;
}
System.out.print("Nombre de la tarea: ");
var nombre = sc.nextLine(); // ✅ var local
System.out.print("Prioridad (1 a 5): ");
var prioridad = Integer.parseInt(sc.nextLine()); // var local
if (prioridad < 1 || prioridad > 5) {
System.out.println("Prioridad no válida.");
return;
}
var nueva = new Tarea(nombre, prioridad); // var local
listaTareas.add(nueva);
mapaTareas.put(id, nueva);
acumuladorPrioridades += prioridad;
System.out.println("Tarea agregada con éxito.");
System.out.println("Total acumulado de prioridades: " + acumuladorPrioridades);
}
private static void listarTareas() {
if (mapaTareas.isEmpty()) {
System.out.println("No hay tareas para mostrar.");
return;
}
System.out.println("\n=== Tareas Registradas ===");
// lambda + forEach
mapaTareas.forEach((id, tarea) -> {
System.out.print("ID: " + id + " - ");
tarea.ejecutar();
});
}
private static void buscarTarea() {
System.out.print("Ingresá el ID de la tarea a buscar: ");
var id = sc.nextLine();
var t = mapaTareas.get(id);
if (t != null) {
System.out.print("Tarea encontrada: ");
t.ejecutar();
} else {
System.out.println("No se encontró ninguna tarea con ese ID.");
}
}
private static void eliminarTarea() {
System.out.print("Ingresá el ID de la tarea a eliminar: ");
var id = sc.nextLine();
var eliminada = mapaTareas.remove(id);
if (eliminada != null) {
listaTareas.remove(eliminada);
acumuladorPrioridades -= eliminada.getPrioridad();
System.out.println("Tarea eliminada correctamente.");
System.out.println("Total acumulado actualizado: " + acumuladorPrioridades);
} else {
System.out.println("No se encontró ninguna tarea con ese ID.");
}
}
private static void mostrarAcumulador() {
System.out.println("Acumulador de prioridades: " + acumuladorPrioridades);
}
}