En este post de programación en C voy a resolver un ejercicio que trata sobre cines y la gestión de películas. Es un ejercicio para practicar ANSI C. Dice así:
Diseñar un programa en Lenguaje C que almacene la información de las películas que se proyectan en las distintas salas de los siguientes cines: CDMX Norte, CDMX Oriente, Reforma y Perisur.
Cada cine tiene 3 salas, hay 2 horarios distintos en cada sala (4:00 pm y 6:00 pm) Realizar un menú para el uso de este programa. En el programa debe definirse las estructuras de datos (struct) necesarias para almacenar la información sobre las películas: título de la película, hora de inicio, cines y salas donde se proyecta, clasificación (A todo público, B adolescentes y adultos y C mayores de 21 años).
El menú del programa debe tener las siguientes opciones:
Veamos entonces cómo resolver ese ejercicio.
Vamos a usar una pila dinámica para almacenar los datos, de este modo puede haber ilimitada cantidad de los mismos.
Para registrar, simplemente apilamos un elemento. Y para realizar las búsquedas vamos a recorrer toda la pila y ver si la búsqueda coincide comparando cadenas con strcmp.
Así que comenzamos incluyendo los encabezados y definiendo el struct del detalle de la película.
Fíjate en que el struct tiene el nombre, la hora, el cine, la sala y la clasificación. Todos los datos son cadena, exceptuando a la clasificación que es un char
y al nodo siguiente que es a su vez un struct de tipo detalleDePelicula
.
Cuando agregamos una nueva película debemos buscar si la misma existe, en caso de que exista simplemente actualizamos el struct. Veamos las funciones que nos van a ayudar a realizar esta operación:
La función buscar
regresa un apuntador a la película en caso de que exista, o NULL en caso de que no. La función agregarPorPrimeraVez
hace la inserción en la pila y finalmente la función agregarOActualizar
actualiza la película.
Es importante notar el código que actualiza la película dentro de la pila, pues usamos memcpy para intercambiar las cadenas, ya que no podemos usar una simple asignación (en el caso de la clasificación, que es un char
, no hay problema).
Veamos el siguiente requisito: desplegar la información de la película. Para ello vamos a reutilizar la función buscar
que vimos anteriormente, y solo vamos a imprimir los detalles en caso de que el apuntador devuelto no sea NULL
.
La función imprimirPelicula
recibe un struct e imprime todos los detalles de la película. Presta atención a esa función porque vamos a usarla de nuevo en los siguientes puntos de este ejercicio resuelto en lenguaje C.
Aquí vamos a recorrer toda la pila y comparar si hay alguna película con el mismo nombre que la búsqueda. En caso de que sí, la imprimimos:
En la línea 8 estamos reusando la función que dije que íbamos a estar usando en varios puntos del programa. El siguiente requisito es muy parecido a éste, solo que también comparamos otros campos.
Veamos el último requisito de este ejercicio para un programa en C. Ahora vamos a listar las películas basándonos en una fecha y en la clasificación. Solo vamos a imprimir aquellas películas que coincidan:
Lo que resta ahora es hacer el menú de opciones e invocar a las funciones según la elección del usuario. Eso lo veremos a continuación.
El ejercicio completo queda como se ve a continuación. Recuerda que eres libre de modificarlo y adaptarlo a tu gusto o necesidades:
También te dejo un replit para que puedas probarlo en línea. Igualmente colocaré aquí una captura de pantalla para mostrarte el programa en ejecución:
Si quieres aprender más sobre C, haz clic aquí.
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…
En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…
En este artículo se presenta una guía para imprimir un PDF a partir de una…
En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…
Esta web usa cookies.