Programming

T05-001-07 Cines.

Enunciado

Vamos a gestionar salas de cine, aunque, de momento, solamente gestionaremos una sala.

Para ello, vamos a crear una clase SalaCine, que tendrá, como propiedades, las siguientes:

  •     String nombre;
  •     int aforo;
  •     int butacasOcupadas;
  •     String pelicula;
  •     double precioEntrada;

A ninguna de estas propiedades se puede acceder desde el exterior, por lo que habrá que generar los getter y setter estándar para el acceso a dichas propiedades a través de métodos de la clase.

La clase contará también con dos constructores:

  • Constructor sin argumentos: inicializará las propiedades con los siguientes valores:
    • nombre = "Sala";
    • aforo = 100;
    • butacasOcupadas = 0;
    • pelicula = "";
    • precioEntrada = 0.00;
  • Constructor con parámetros nombre y aforo: inicializará las propiedades nombre y aforo a los valores provistos en la invocación. No obstante, se controlará que el aforo no sea negativo, en cuyo caso, se lanzará un nuevo objeto excepción de la clase IllegalArgumentException. El resto de las propiedades se inicializarán a los ya vistos en el constructor sin parámetros.

Desde el main() de la clase principal se declarará un objeto de la clase SalaCine, el cual se inicializar a null;

A continuación, se solicitará al usuario que introduzca el nombre de la Sala y el aforo. Con estos datos, se utilizará el constructor con parámetros para inicializar un objeto de la clase SalaCine.

Posteriormente, se mostrará la información disponible del objeto recién creado: su nombre y su aforo, utilizando, para ello los getter correspondientes.

Finalmente, se eliminará el objeto igualándolo a null.

Solución


											
package cines; import java.util.Scanner; public class Cines { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String nombreSala; int aforo; SalaCine sala = null; System.out.println("CREAR SALA de CINE"); System.out.println("-------------------"); System.out.print("Nombre de sala: "); nombreSala = sc.nextLine(); System.out.print("Aforo de sala: "); aforo = sc.nextInt(); try { sala = new SalaCine(nombreSala, aforo); } catch (IllegalArgumentException ex) { System.out.println("ERROR: Valores erroneos para sala"); } System.out.println("LISTAR SALAS de CINE"); System.out.println("-------------------"); System.out.println("Sala: " + sala.getNombre() + "\tAforo: " + sala.getAforo()); System.out.println("BORRAR SALA de CINE"); System.out.println("-------------------"); sala = null; } } class SalaCine { private String nombre; private int aforo; private int butacasOcupadas; private String pelicula; private double precioEntrada; public SalaCine() { this.nombre = "Sala"; this.aforo = 100; this.butacasOcupadas = 0; this.pelicula = ""; this.precioEntrada = 0.00; } public SalaCine(String nombre, int aforo) { if ((aforo <= 0) || "".equals(nombre)) { throw new IllegalArgumentException(); } else { this.nombre = nombre; this.aforo = aforo; this.butacasOcupadas = 0; this.pelicula = ""; this.precioEntrada = 0.00; } } public void setNombre(String nombre) { this.nombre = nombre; } public void setAforo(int aforo) { if (aforo <= 0) { throw new IllegalArgumentException(); } else { this.aforo = aforo; } } public void setButacasOcupadas(int butacasOcupadas) { if (butacasOcupadas < 0 || butacasOcupadas > this.getAforo()) { throw new IllegalArgumentException(); } else { this.butacasOcupadas = butacasOcupadas; } } public void setPelicula(String pelicula) { this.pelicula = pelicula; } public void setPrecioEntrada(double precioEntrada) { this.precioEntrada = precioEntrada; } public String getNombre() { return nombre; } public int getAforo() { return this.aforo; } public int getButacasOcupadas() { return this.butacasOcupadas; } public String getPelicula() { return this.pelicula; } public double getPrecioEntrada() { return this.precioEntrada; } public void vaciarSala() throws IllegalArgumentException { this.setButacasOcupadas(0); this.setPelicula(""); this.setPrecioEntrada(0.0); } public boolean estaLlena() { return (this.getButacasOcupadas() == this.getAforo()); } public boolean estaVacia() { return (this.getButacasOcupadas() == 0); } }

Input

Central 100
Rialto 120

Output

CREAR SALA de CINE ------------------- Nombre de sala: Aforo de sala: LISTAR SALAS de CINE ------------------- Sala: Central Aforo: 100 BORRAR SALA de CINE -------------------
CREAR SALA de CINE ------------------- Nombre de sala: Aforo de sala: LISTAR SALAS de CINE ------------------- Sala: Rialto Aforo: 120 BORRAR SALA de CINE -------------------