Enunciado:
El club de fútbol "Java FC" desea desarrollar una aplicación de consola para gestionar sus jugadores,
entrenadores y los partidos jugados. Tú eres el encargado de desarrollar esta aplicación.
Requisitos funcionales:
Clases requeridas:
Jugador: dni, nombre, posicion, edad, golesMarcados
Validar dni (formato español) y que la edad esté entre 16 y 40 años con expresiones regulares y control
lógico.
Entrenador: dni, nombre, nivelLicencia (A, B o C)
Validar dni con regex y que la licencia sea A, B o C con expresión regular.
Partido: fecha, rival, lista de jugadores que participaron, golesEquipo, golesRival.
Interfaz obligatoria:
Participante con método String getIdentificador() implementado por Jugador y Entrenador.
Clase de gestión ClubFutbol:
Almacena jugadores en un HashMap<String, Jugador> usando el DNI como clave.
Almacena entrenadores en un ArrayList<Entrenador>.
Almacena los partidos jugados en un ArrayList<Partido>.
Funcionalidades requeridas desde menú por consola:
Añadir jugador (validando datos).
Añadir entrenador.
Registrar un partido con fecha, rival, goles y lista de DNIs de jugadores que participaron.
Mostrar estadísticas de jugadores (por ejemplo, total de goles marcados).
Ordenar y mostrar jugadores por número de goles usando expresiones lambda.
Guardar la lista de jugadores y partidos en archivos de texto.
Cargar jugadores desde archivo al iniciar el programa.
Requisitos técnicos obligatorios:
Uso de:
HashMap, ArrayList
Expresiones regulares para validar campos (dni, licencia)
Expresiones lambda para ordenación por goles
Archivos de texto para guardar/cargar datos
Criterios de Evaluación (100 puntos):
Criterio Puntos
Diseño de clases e interfaz 25
Validaciones con regex 10
Uso correcto de colecciones (HashMap, ArrayList) 15
Gestión de partidos y estadísticas 10
Uso de expresiones lambda 10
Menú funcional por consola 15
Gestión de archivos (guardar/cargar) 10
Código limpio, organizado y comentado 5