예제 #1
0
        /**
         * pedimos al usuario que confirme la compra de varias butacas contiguas
         */
        public void pedirConfirmacionCompraRecomendacion(ButacasContiguas butacas)
        {
            char[,] estadoSesion = cine.getEstadoSesion(
                sala,
                sesion);
            // marcamos las butacas seleccionadas por el usuario en el estado actual
            // de la sesion
            int huecos = 0;

            for (int i = 0; i < butacas.getNoButacas(); i++)
            {
                huecos = calcularNumeroPasillosHastaColumna(butacas.getFila(), butacas.getColumna() + i - 1, estadoSesion);
                estadoSesion[butacas.getFila() - 1, butacas.getColumna() + i + huecos - 1] = 'R';
            }

            // mostramos la seleccion de butacas en consola
            mostrarEstadoSesion(estadoSesion);
            Console.WriteLine("Se recomiendan las butacas marcadas con R");

            LecturaTeclado teclado = new LecturaTeclado();

            respuesta = teclado.leerCaracter("Aceptas la compra? (s/n)");
        }
예제 #2
0
        static void Main1(string[] args)
        {
            //creamos un cine con 2 salas(con 2 sesiones) para probar las operaciones
            string[] horasSesiones = { "18:00", "22:00" };
            Sala[]   salas         = { new Sala("Tiburon", horasSesiones, 9, 5, new int[] { 3 }),
                                       new Sala("Tron",              horasSesiones, 2, 2) };
            Cine     cine = new Cine("CinemaVintage", salas);

            //necesitamos la ventanilla para mostrar el estado de la sesion
            VentanillaVirtualUsuario ventanilla = new VentanillaVirtualUsuario(cine, true);

            foreach (String pelicula in cine.getPeliculas())
            {
                Console.WriteLine(pelicula);
            }

            cine.comprarEntrada(1, 1, 2, 1);
            cine.comprarEntrada(1, 1, 9, 3);

            int idVenta = cine.getIdEntrada(1, 1, 9, 3);

            Console.WriteLine("Id de venta es:" + idVenta);

            ButacasContiguas butacas = cine.recomendarButacasContiguas(4, 1, 1);

            cine.comprarEntradasRecomendadas(1, 1, butacas);

            int idVenta1 = cine.getIdEntrada(1, 1, butacas.getFila(), butacas.getColumna());

            cine.recogerEntradas(idVenta1, 1, 1);

            ventanilla.mostrarEstadoSesion(cine.getEstadoSesion(1, 1));

            Console.WriteLine("No. de butacas disponibles: " + cine.getButacasDisponiblesSesion(1, 1));

            Console.WriteLine("Tickets :" + cine.recogerEntradas(idVenta, 1, 1));

            Console.WriteLine("Tickets recomendados:" + cine.recogerEntradas(idVenta1, 1, 1));
        }
예제 #3
0
        static void Main(string[] args)
        {
            const string COMPRAR               = "1";
            const string RECOGER               = "2";
            const string CONSULTAR_SESION      = "3";
            const string COMPRAR_RECOMENDACION = "4";
            const string SALIR = "5";

            bool seguir = true;

            // creamos un cine con 2 salas (con 2 sesiones) para probar las operaciones
            string[] horasSesiones = { "18:00", "22:00" };
            Sala[]   salas         = { new Sala("Tiburon", horasSesiones, 9, 5, new int[] { 3 }),
                                       new Sala("Tron",              horasSesiones, 2, 2) };
            Cine     cine = new Cine("CinemaVintage", salas);

            // este programa puede utilizar solo las operaciones obligatorias o todas
            LecturaTeclado teclado = new LecturaTeclado();
            char           key     = teclado.leerCaracter("Deseas probar solo las operaciones obligatorias? (s/n)");

            VentanillaVirtualUsuario ventanilla;

            if (key == 's' || key == 'S')
            {
                // creamos una ventanilla solo para las operaciones obligatorias
                ventanilla = new VentanillaVirtualUsuario(cine, false);
            }
            else
            {
                // creamos una ventanilla para todas las operaciones
                ventanilla = new VentanillaVirtualUsuario(cine, true);
            }

            do
            {
                // Mostramos el menu principal y pedimos una operacion al usuario
                ventanilla.PedirOperacion();
                string opcion = ventanilla.getOperacionSeleccionada();

                switch (opcion)
                {
                case COMPRAR:
                    // pedimos al usuario la sala, sesion y la butaca
                    // solo se admiten butacas libres
                    // estos datos quedan almacenados en el objeto ventanilla
                    ventanilla.pedirDatosCompra();
                    // comprobamos si la sesion de la sala seleccionada esta llena
                    if (!ventanilla.getSesionLlena())
                    {
                        cine.comprarEntrada(ventanilla.getSala(),
                                            ventanilla.getSesion(),
                                            ventanilla.getFila(),
                                            ventanilla.getColumna());
                        Console.WriteLine("El id de la venta es " +
                                          cine.getIdEntrada(ventanilla.getSala(),
                                                            ventanilla.getSesion(),
                                                            ventanilla.getFila(),
                                                            ventanilla.getColumna()));
                    }
                    else
                    {
                        Console.WriteLine("La sesion seleccionada está llena");
                    }
                    break;

                case RECOGER:
                    // pedimos al usuario el id de la compra, la sala y la sesion
                    // estos datos quedan almacenados en el objeto ventanilla
                    ventanilla.pedirDatosRecogida();
                    string entradas = cine.recogerEntradas(ventanilla.getId(),
                                                           ventanilla.getSala(),
                                                           ventanilla.getSesion());
                    // comprobamos si existe el id de compra dado en la sala y
                    // la sesion dadas
                    if (entradas == null)
                    {
                        Console.WriteLine("Los datos de la venta son incorrectos");
                    }
                    else
                    {
                        Console.WriteLine("Tus entradas son: " + entradas);
                    }
                    break;

                case CONSULTAR_SESION:
                    // pedimos al usuario la sala y la sesion
                    // estos datos quedan almacenados en el objeto ventanilla
                    ventanilla.pedirDatosConsultaSesion();
                    char[,] estadoSesion = cine.getEstadoSesion(
                        ventanilla.getSala(),
                        ventanilla.getSesion());
                    ventanilla.mostrarEstadoSesion(estadoSesion);
                    break;

                case COMPRAR_RECOMENDACION:
                    // pedimos al usuario el no. de butacas contiguas, la sala y la sesion
                    // estos datos quedan almacenados en el objeto ventanilla
                    ventanilla.pedirDatosRecomendacion();
                    ButacasContiguas butacas = cine.recomendarButacasContiguas(
                        ventanilla.getNoButacas(),
                        ventanilla.getSala(),
                        ventanilla.getSesion());
                    // comprobamos si existen suficientes butacas contiguas
                    // en la sala y sesion dadas
                    if (butacas != null)
                    {
                        ventanilla.pedirConfirmacionCompraRecomendacion(butacas);
                        // pedimos al usuario que confirme si quiere las butacas recomendadas
                        // la respuesta queda guardada en el objeto ventanilla
                        if (ventanilla.getRespuesta() == 's' || ventanilla.getRespuesta() == 'S')
                        {
                            cine.comprarEntradasRecomendadas(ventanilla.getSala(),
                                                             ventanilla.getSesion(), butacas);
                            Console.WriteLine("El id de la venta es " +
                                              cine.getIdEntrada(ventanilla.getSala(),
                                                                ventanilla.getSesion(),
                                                                butacas.getFila(),
                                                                butacas.getColumna()));
                        }
                        else
                        {
                            Console.WriteLine("Has descartado la recomendación");
                        }
                    }
                    else
                    {
                        Console.WriteLine("No hay tantas butacas disponibles contiguas");
                    }
                    break;

                case SALIR: seguir = false; break;
                }
            } while (seguir);
        }