Proyecto¶
En una empresa quieren guardar información sobre los clientes, y de éstos se desea almacena:
- Clave del cliente, que estará formada por las dos primeras letras del nombre del cliente, las tres primeras letras de cada apellido, los tres números de su DNI y su letra. Por ejemplo, si un cliente se llama Rosa Velázquez Martínez, con DNI 32050698G, su clave sería **rovema698G*.
- Nombre del cliente
- Apellidos del cliente
- DNI
- Dirección, compuesta por la el tipo de vía (calle, avenida, pasaje, km, otro), el nombre de la vía, número de la vía, código postal, municipio, provincia y otra información relevante.
- Importe total comprado.
- Lista de fechas de compra.
Crea aun aplicación Java que le permita al usuario realizar las siguientes operaciones:
- Añadir clientes
- Consultar clientes por nombre
- Consultar clientes por DNI
- Eliminar clientes
- Mostrar todos los clientes
- Filtrar por fecha de compra
- Top 5 de clientes que más dinero han comprado
Realizar la misma aplicación con diferentes versiones.
- La primera versión se hará uso de la interfaz List.
- La segunda versión se hará uso de la interfaz Set.
- La tercera versión se hará uso de la interfaz SortedSet.
- La cuarta versión se hará uso de la interfaz Map.
- La quinta versión se hará uso de la interfaz SortedMap.
Ten en cuenta que el orden de natural de los clientes es ordenado primero por su apellido de forma ascendente, en caso de ser repetido, seguirá ordenado por nombre de forma ascendente, en caso de que haya dos personas que se llamen igual, se ordenará por las veces que ha realizado un comprar de forma descendente, y por último lugar, el DNI de forma descendiente.
Para realizar este proyecto se tendrá en cuenta:
- Se deberá entregar un diagrama de clase que represente las relaciones entre las clases y las interfaces.
- Se valorará la complejidad de un Main que ponga aprueba los métodos y clases creadas, así como la complejidad de la estructura de la aplicación.
- Se podrá usar la librería common realiza en proyectos anteriores, haciendo uso de JARs.
- El nombre de las funciones será en inglés y deberán ser lo suficiente claras para poder identificarlas con facilidad.
- El código se comentará haciendo uso de los comentarios JavaDoc además, de comentarios normales para dar una explicación a la parte del código más importante.
- El repositorio de GitHub tendrá el siguiente nombre
pr11java-NOMBRE-collections
siendo NOMBRE el nombre del alumno. - Se declarará aquellas variables que sean necesarias inicializándolas si es necesario, indicando el tipo correspondiente.
- Se hará uso de funciones y procedimientos donde sea oportuno.
- La entrega de este proyecto se realizará a través de un enlace a un repositorio de GitHub, realizando siempre más de un commit.
- Se valorará la limpieza, la claridad, y la estructura del proyecto.