Está en la página 1de 8

BOLETERÍA DE UN CINE

Una nueva cadena de cines llamada MI CINE te ha contratado para que desarrolles un
prototipo para su boletería. El programa que debes crear es bastante básico. El cine tiene
cinco salas de cine y se proyectan cinco películas en horarios diferentes.

Requerimientos funcionales
El gerente ha definido la siguiente lista de requerimientos que tu programa debe cumplir.

Película
Las películas que el cine proyecta disponen de la siguiente información:
● id: Un número entero para identificar a cada película que se proyecta.
● título: El título oficial de la película.
● duración: El tiempo de duración de la película en minutos.
● estreno: Define si la película está de estreno o no.
● hora: La hora en formato “HH:MM” en la que se proyecta la película.

Cuando se muestra la cartelera del cine, las películas se deben imprimir en el siguiente
formato: id - [hora] título (duración) * SI ESTÁ DE ESTRENO *

Por ejemplo, la siguiente película se encuentra de estreno:


1 - [14:30] El Rey León (117) * ESTRENO *

Mientras que, la siguiente película no está de estreno:


4 - [16:15] Avengers: End Game (188)

Sala
El cine dispone de cinco salas de cine para proyectar las películas. La capacidad de cada
sala es de 25 personas distribuidas en cinco filas y cinco columnas. Cada vez que se
requiere mostrar los asientos disponibles, se debe imprimir en forma de matriz la
distribución de la sala de cine. Las filas se enumeran con letras desde la A hasta la E;
mientras que, las columnas se numeran desde el 1 hasta el 5. La siguiente imagen muestra
como debe imprimirse la distribución de los asientos.

- - A S I E N T O S - -
1 2 3 4 5
A O O O O O
B O O O O O
C O X X X O
D O O O O O
E O O O O O
El caracter O indica que el asiento está disponible; mientras que, el caracter X indica que el
asiento ya se encuentra reservado. Cada vez que se requiere reservar un asiento (en el
proceso de compra) se debe establecer la letra de la fila y el número de columna, por
ejemplo “A3”. Si el asiento ya se encuentra ocupado o no existe, el programa debe emitir el
correspondiente mensaje de error.

Boleto
Cada boleto que se emite a un cliente dispone de la siguiente información:
● sala: Un número entero que indica el número de la sala de cine.
● película: Contiene la información de la película que se va a proyectar.
● fila: Indica el número de fila del asiento. Por ejemplo.: A, B, C, etc.
● columna: Indica el número de la columna del asiento. Por ejemplo: 1, 2, 3, etc.

El boleto tendrá una forma rectangular en pantalla (formado por caracteres), con toda la
información pertinente.

Cine
El cine dispone de cinco salas de cine y una cartelera con películas. El precio del boleto es
de $3.15 USD. Las películas que actualmente proyecta el cine son:

ID Título Duración Hora Estreno

1 El Rey León 117 14:30 SI

2 Spiderman: Lejos de Casa 130 16:00 SI

3 Annabelle 3: Vuelve a Casa 106 18:20 NO

4 Avengers: End Game 188 16:15 NO

5 Toy Story 4 104 11:30 NO

Existen tres operaciones que realizan los usuarios del programa en la boletería que se
describen a continuación.

Mostrar la cartelera
Esta operación imprime en pantalla la cartelera del cine de la siguiente manera:

- - C A R T E L E R A - -
1 - [14:30] El Rey León (117) * ESTRENO *
2 - [16:00] Spiderman: Lejos de Casa (130) * ESTRENO *
3 - [18:20] Annabelle 3: Vuelve a Casa (106)
4 - [16:15] Avengers: End Game (188)
5 - [11:30] Toy Story 4 (100)
Mostrar sala
Esta operación permite mostrar los asientos de la sala de cine para una película específica,
de la siguiente manera:

4 - [16:15] Avengers: End Game (188)


- - A S I E N T O S - -
1 2 3 4 5
A O O O O O
B O O O O O
C O X X X O
D O O O O O
E O O O O O

Comprar Boletos
Esta operación permite emitir los boletos que un cliente requiera para ver una película en la
sala de cine. Lo primero que se debe elegir es la película que se desea ver. Se debe validar
el dato ingresado para que solamente se pueda seleccionar entre los ID de películas en la
cartelera.

Posteriormente, se debe solicitar el número de boletos que el cliente requiere. Si el usuario


digita cero, no se realiza la compra. Mientras que, si el número de boletos ingresado es
menor a 0 el programa emite un error y vuelve a solicitar al usuario este dato.

Luego, el programa solicita al usuario que ingrese un asiento para cada boleto. Si el asiento
ingresado no está disponible, o no existe; el programa emite un error y vuelve a solicitar al
usuario que ingrese un número de asiento.

Finalmente, cuando se ha completado la compra, el programa debe emitir los boletos y el


total que debe cancelar el cliente en el siguiente formato:

Boleto #3
╔══════════════════════════════════════════════════════╗
║ Sala: 1 ║
║ Hora: 16:00 ║
║ Asiento: A4 ║
║ Pelicula: Spiderman: Lejos de Casa ║
╚══════════════════════════════════════════════════════╝

TOTAL $ 9.45
Requerimientos no funcionales
Los siguientes requerimientos han sido planteados por el profesor de la materia en función
de los conocimientos que has adquirido.

Ingreso de datos
Para el ingreso de datos se debe utilizar el teclado y validar la información de acuerdo a los
requerimientos planteados.

Datos iniciales
Los datos iniciales que requiere la aplicación para funcionar se encuentran “quemados” en
el código fuente. Estos datos son:
● Cartelera del cine (cinco películas que se proyectan)
● Salas del cine (número de filas y columnas)

Diagrama de clases
Se ha definido un esqueleto de la aplicación que se representa en el siguiente diagrama de
clases.

Debes tomar como guía este diagrama e implementar el código correspondiente a


cada método de las clases para que permitan cumplir con los requerimientos funcionales
planteados por el cliente. Se han considerado solamente los métodos más importantes de la
clase Cine (correspondientes al menú principal). Debes definir e implementar los métodos
que requerirán las otras clases.
Ejemplo de ejecución
A continuación se muestra un ejemplo de ejecución del programa.

- - M I C I N E - -

+ + MENÚ PRINCIPAL + +
1. Mostrar cartelera
2. Mostrar sala
3. Comprar boletos
4. Salir
Ingrese su opción:
1

- - C A R T E L E R A - -
1 - [14:30] El Rey León (117) * ESTRENO *
2 - [16:00] Spiderman: Lejos de Casa (130) * ESTRENO *
3 - [18:20] Annabelle 3: Vuelve a Casa (106)
4 - [16:15] Avengers: End Game (188)
5 - [11:30] Toy Story 4 (100)

+ + MENÚ PRINCIPAL + +
1. Mostrar cartelera
2. Mostrar sala
3. Comprar boletos
4. Salir
Ingrese su opción:
2

Ingrese el id de película:
3

3 - [18:20] Annabelle 3: Vuelve a Casa (106)


- - A S I E N T O S - -
1 2 3 4 5
A O O O O O
B O O O O O
C O O O O O
D O O O O O
E O O O O O

+ + MENÚ PRINCIPAL + +
1. Mostrar cartelera
2. Mostrar sala
3. Comprar boletos
4. Salir
Ingrese su opción:
3

- - B O L E T O S - -
Ingrese el ID de la película:
1
Ingrese el número de boletos:
3
Seleccione los asientos
1 2 3 4 5
A O O O O O
B O O O O O
C O O O O O
D O O O O O
E O O O O O

Boleto #1
Ingrese el asiento:
c2
Boleto #2
Ingrese el asiento:
c3
Boleto #3
Ingrese el asiento:
c4

RESUMEN DE LA COMPRA:
Boleto #1
╔══════════════════════════════════════════════════════╗
║ Sala: 1 ║
║ Hora: 14:30 ║
║ Asiento: C2 ║
║ Pelicula: El Rey León ║
╚══════════════════════════════════════════════════════╝

Boleto #2
╔══════════════════════════════════════════════════════╗
║ Sala: 1 ║
║ Hora: 14:30 ║
║ Asiento: C3 ║
║ Pelicula: El Rey León ║
╚══════════════════════════════════════════════════════╝

Boleto #3
╔══════════════════════════════════════════════════════╗
║ Sala: 1 ║
║ Hora: 14:30 ║
║ Asiento: C4 ║
║ Pelicula: El Rey León ║
╚══════════════════════════════════════════════════════╝
TOTAL: $9.45

Entregables
Para la entrega del proyecto se debe generar un solo archivo comprimido en zip con los
siguientes documentos:

1. Informe técnico del proyecto


2. Código fuente
3. Diapositivas de la exposición

Exposición
La exposición dura 15 minutos. Cada grupo debe exponer los siguientes apartados:
● Enfoque comercial:
○ Funciones
○ Plus de tu aplicación
○ Modelo de negocio, precio, formas de pago, etc.
● Consideraciones técnicas para el diseño del programa
○ Diagrama de clases
○ Aplicó conceptos de POO
○ Dificultades
○ Problemas resueltos
○ Código más importante
● Demostración
○ Requerimientos funcionales
○ Validaciones
○ Resultado final

Extra
Se pueden agregar las siguientes funcionalidades extra al programa:
● Facturación (2)
○ Datos adicionales al cliente (cédula/ruc, teléfono, dirección y correo
electrónico)
○ Calcular Subtotal, IVA y Total
○ Emitir factura (impresión por pantalla)
● Tienda de Snacks (2)
○ Catálogo de productos
○ Combos
○ Compra (por separado)
● Precios diferenciados (2)
○ Las salas tienen diferente precio
○ Las vermouths tienen otro precio
○ Personas adultas mayores o niños. 50% de descuento.

También podría gustarte