Eclipse / README.md
Pieroz123's picture
Muestrame el codigo de la clase Movie en la que se base el codigo anterior
8efe770
metadata
license: epl-2.0

import java.util.*;

public class CinemaEclipse {

public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Bienvenido al Cine en Eclipse. \n Por favor, seleccione una de las opciones a continuación:"); System.out.println("1. Comprar entradas"); System.out.println("2. Ver cartelera"); System.out.println("3. Ver promociones"); System.out.println("4. Salir"); int opcion = scanner.nextInt();

  switch(opcion){
     case 1: 
        comprarEntradas();
        break;
     case 2:
        verCartelera();
        break;
     case 3:
        verPromociones();
        break;
     case 4:
        System.out.println("Gracias por visitar el cine en Eclipse. Hasta luego!");
        break;
  }

}

// Implementación del patrón GoF Factory private static MovieFactory movieFactory = new MovieFactory();

// Colección de películas de la cartelera private static List cartelera = new ArrayList<>();

// Colección de promociones private static Set promociones = new HashSet<>();

// Coleccion de entradas vendidas private static Map<Movie, Integer> entradasVendidas = new HashMap<>();

// Método para comprar entradas private static void comprarEntradas(){ Scanner scanner = new Scanner(System.in); System.out.println("Por favor, seleccione una de las películas de la cartelera:"); for(Movie movie : cartelera){ System.out.println(movie.getTitle()); } String peliculaSeleccionada = scanner.nextLine();

  // Busca la película dentro de la cartelera
  Movie movie = cartelera.stream()
     .filter(m -> m.getTitle().equals(peliculaSeleccionada))
     .findFirst()
     .orElse(null);
  
  if(movie != null){
     System.out.println("Cuántas entradas desea comprar?");
     int cantidadEntradas = scanner.nextInt();
     
     // Usa una expresión Lambda Supplier para obtener el precio de la entrada
     double precio = () -> movie.getPrice() * cantidadEntradas;
     
     // Usa una expresión Lambda Consumer para guardar la cantidad de entradas vendidas
     entradasVendidas.merge(movie, cantidadEntradas, Integer::sum);
     
     System.out.println("El precio total es: " + precio);
     System.out.println("Gracias por su compra!");
  }

}

// Método para ver la cartelera private static void verCartelera(){ System.out.println("Cartelera:"); cartelera.forEach(movie -> { // Usa una expresión Lambda Function para imprimir la cartelera System.out.println(movie.getTitle() + " - " + movie.getPrice() + "€"); }); }

// Método para ver las promociones private static void verPromociones(){ System.out.println("Promociones:"); promociones.forEach(promotion -> { System.out.println(promotion.getName() + ": " + promotion.getDiscount() + "% de descuento!"); }); } }