Skip to content

RA4 - CEf

< volver a actividades

Empaquetar actividades

Empaqueta las actividades, dentro de la carpeta ut05, en la carpeta actividades/ce4f.

Actividad 21

paquete _05_reservasLibreria

Se quiere realizar una aplicación para implementar una librería.
Empaqueta las clases de las actividades: 21, 22 23, 24 y 25 en el paquete _05_reservasLibreria dentro de actividades.

Cuando un cliente pide un libro y la librería no lo tiene, el cliente puede hacer una reserva de manera que cuando lo reciban en la librería le avisen por teléfono.

De cada reserva se almacena:

  • Nif del cliente (String).

  • Nombre del cliente (String).

  • Teléfono del cliente (String).
  • Código del libro reservado. (entero).
  • Numero de ejemplares (entero).

Actividad 22

Diseñar la clase Reserva, de manera que contemple la información descrita e implementar:

  • public Reserva(String nif, String nombre, String tel, int codigo, int ejemplares): Constructor que recibe todos los datos de la reserva.
  • public Reserva(String nif, String nombre, String tel, int codigo): Constructor que recibe los datos del cliente y el código del libro. Establece el número de ejemplares a uno.
  • Consultores de todos los atributos.
  • public void setEjemplares(int ejemplares): Modificador del número de ejemplares. Establece el número de ejemplares al valor indicado como parámetro.
  • public String toString(): que devuelva unString` con los datos de la reserva
  • public boolean equals(Object o): Dos reservas son iguales si son del mismo cliente y reservan el mismo libro.
  • public int compareTo(Object o): Es menor la reserva cuyo código de libro es menor. El parámetro es de tipo Object así que revisa si debes hacer alguna "adaptación".

Actividad 23

Diseñar una clase Java TestReservas que permita probar la clase Reserva y sus métodos.

Para ello se desarrollará el método main en el que:

  • Se creen dos reservas con los datos que introduce el usuario. Las reservas no pueden ser iguales (equals). Si la segunda reserva es igual a la primera se pedirá de nuevo los datos de la segunda al usuario.
  • Se incremente en uno el número de ejemplares de ambas reservas.
  • Se muestre la menor y a continuación la mayor.

Actividad 24

Diseñar una clase ListaReservas que implemente una lista de reservas. Como máximo puede haber 100 reservas en la lista. Se utilizará un array de Reservas que ocuparemos a partir de la posición 0 y un atributo que indique el número de reservas. Las reservas existentes ocuparán las primeras posiciones del array (sin espacios en blanco). Implementar los siguientes métodos:

  • public void reservar(String nif, String nombre, String telefono, int libro, int ejemplares) throws ListaLlenaException, ElementoDuplicadoException: Crea una reserva y la añade a la lista. Lanza ElementoDuplicadoException si la reserva ya estaba en la lista. Lanza ListaLlenaException si la lista de reservas está llena.
  • public void cancelar(String nif, int libro) throws ElementoNoEncontradoException. Dado un nif de cliente y un código de libro, anular la reserva correspondiente. Lanzar ElementoNoEncontradoException si la reserva no existe.
  • public String toString(): Devuelve un String con los datos de todas las reservas de la lista.
  • public int numEjemplaresReservadosLibro(int codigo): Devuelve el número de ejemplares que hay reservados en total de un libro determinado.
  • public void reservasLibro(int codigo): Dado un código de libro, muestra el nombre y el teléfono de todos los clientes que han reservado el libro.

Actividad 25

Realizar un programa GestionReservas que, utilizando un menú, permita:

  • Realizar reserva. Permite al usuario realizar una reserva.
  • Anular reserva: Se anula la reserva que indique el usuario (Nif de cliente y código de libro).
  • Pedido: El usuario introduce un código de libro y el programa muestra el nº de reservas que se han hecho del libro. Esta opción de menú le resultará útil al usuario para poder hacer el pedido de un libro determinado.
  • Recepción: Cuando el usuario recibe un libro quiere llamar por teléfono a los clientes que lo reservaron. Solicitar al usuario un código de libro y mostrar los datos (nombre y teléfono) de los clientes que lo tienen reservado.

< volver a actividades