. Diseño de la aplicación:
Funcionalidades principales: Agregar una nueva tarea a la lista. Marcar una tarea como completada. Eliminar una tarea de la lista. Mostrar la lista de tareas (separando las completadas de las pendientes). Estructura de datos: Utilizaremos un ArrayList para almacenar las tareas. Cada tarea será representada por un objeto de una clase Tarea, que tendrá los siguientes atributos: descripcion: String que describe la tarea. completada: Boolean que indica si la tarea está completada o no.
import java.util.ArrayList; import java.util.Scanner;
class Tarea { String descripcion; boolean completada;
public Tarea(String descripcion) {
this.descripcion = descripcion;
this.completada = false;
}
}
public class ListaDeTareas {
public static void main(String[] args) {
ArrayList<Tarea> tareas = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
int opcion;
do {
System.out.println("\n--- Lista de Tareas ---");
System.out.println("1. Agregar tarea");
System.out.println("2. Marcar tarea como completada");
System.out.println("3. Eliminar tarea");
System.out.println("4. Mostrar tareas");
System.out.println("0. Salir");
System.out.print("Ingrese su opción: ");
opcion = scanner.nextInt();
scanner.nextLine(); // Consumir el salto de línea
switch (opcion) {
case 1:
agregarTarea(tareas, scanner);
break;
case 2:
marcarTareaCompletada(tareas, scanner);
break;
case 3:
eliminarTarea(tareas, scanner);
break;
case 4:
mostrarTareas(tareas);
break;
case 0:
System.out.println("¡Hasta luego!");
break;
default:
System.out.println("Opción inválida. Intente nuevamente.");
}
} while (opcion != 0);
scanner.close();
}
// ... (implementación de los métodos agregarTarea, marcarTareaCompletada, eliminarTarea y mostrarTareas)
}
Implementación de los métodos:
agregarTarea: Solicita al usuario la descripción de la tarea y la agrega a la lista. marcarTareaCompletada: Pide al usuario el índice de la tarea a marcar como completada y la actualiza en la lista. eliminarTarea: Solicita el índice de la tarea a eliminar y la remueve de la lista. mostrarTareas: Muestra las tareas pendientes y completadas por separado.