Ejercicios Integradores Propuestos
31. Gestión de Cine Multiformato
Una cadena de cines desea un sistema para gestionar la venta
de entradas a funciones de películas en formato 2D, 3D y 4D. Se debe permitir
registrar los boletos vendidos y administrar las butacas de cada función,
evitando duplicados.
Por cada entrada vendida se debe registrar:
- Nombre de la película (no vacío)
- Número de butaca (entero positivo y único por
película y formato)
El programa debe presentar el siguiente menú:
- Registrar una venta: Se debe
invocar a la función registrar_venta, que recibe como argumentos el
diccionario de ventas, el nombre de la película, el formato y el número de
butaca. Registra la venta si la butaca no está ocupada. Devuelve True si
se pudo registrar, o False si ya estaba ocupada. El valor devuelto debe
utilizarse para mostrar un mensaje indicando si la operación fue exitosa o no.
- Cancelar una venta: Se debe
invocar a la función cancelar_venta, que recibe el diccionario de
ventas, el nombre de la película, el formato y el número de butaca. Si la venta
existe, la elimina y devuelve True. Si no se encuentra, devuelve False.
El valor debe utilizarse para informar si se logró cancelar la venta.
- Mostrar ventas por película: Se debe
invocar a la función ventas_por_pelicula, que recibe el diccionario de
ventas y el nombre de la película. Devuelve un diccionario con los
formatos como claves y las listas de butacas vendidas como valores. El
resultado debe mostrarse al usuario.
- Mostrar tipo de formato más vendido: Se debe
invocar a la función formato_mas_vendido, que recibe el diccionario de
ventas y devuelve el formato (2D, 3D o 4D) con más entradas vendidas. Ese valor
debe mostrarse por pantalla.
- Resumen del día: Se debe
invocar a la función resumen_diario, que recibe el diccionario de ventas
y muestra por pantalla: la cantidad total de boletos vendidos y una lista
detallada de todas las ventas indicando película, formato y butaca.
- Mostrar todas las butacas ocupadas por
formato: Se debe
invocar a la función mostrar_todas_las_butacas, que recibe el
diccionario de ventas. Esta función, internamente, debe invocar a ventas_por_pelicula
para cada película registrada. El resultado debe mostrarse agrupado por formato
(2D, 3D, 4D), indicando qué butacas están ocupadas y a qué película pertenecen.
- Salir del programa.
Nota: Todas las entradas deben ser validadas.
En caso de error o valores inválidos, solicitar el reingreso correspondiente.
Cualquier opción ingresada que no corresponda al menú se debe solicitar reingreso
y volver al menú principal.