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)
  • Formato: 2D, 3D o 4D
  • Número de butaca (entero positivo y único por película y formato)
El programa debe presentar el siguiente menú:

  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.