Empezamos por planificar el desarrollo del código de nuestro programa. Para ello realizarás el diagrama de flujo del funcionamiento del mismo, que sin duda te aclarará mucho las ideas acerca de su funcionamiento.
Comienza a realizar el diagrama del comportamiento general del programa teniendo en cuenta que vas a hacer el diagrama de flujo del programa principal, sin tener en cuenta el comportamiento de las funciones (trátalas como bloques que reciben unos datos y devuelven otros). El diagrama de flujo de nuestro programa sólo realizará las llamadas a estas funciones, su desarrollo lo acometerás en los próximos ejercicios.
Por tanto, para realizar el esquema del programa principal de nuestro reto tendrás que llevar a cabo los siguientes pasos:
- El patio de butacas, la sala, será representado por una variable que funcione como una matriz. Por tanto, tendrás que inicializarla con todos sus valores a "butaca=libre" porque consideramos que acaba de comenzar el sistema de reservas para este día. Para representar a las butacas libres u ocupadas utilizaremos los valores: ocupada= 1, libre = 0, luego nuestra matriz que representa la sala deberá ser inicializada con todos sus valores a cero. Consideraremos una sala de 6 filas y 10 butacas en cada fila. Eso significa un matriz de 6x10.
- Inicializa la tabla de usuario y contraseñas.
- Pide al usuario que empieza a utilizar el programa su nombre de usuario y la contraseña, y compárala con la que hay para ese usuario en el sistema. Utiliza una llamada a la función "compara_passwd" que recibe el nombre de usuario y la contraseña introducida, y que devuelve 1 si la contraseña es correcta para ese usuario y 0 si no lo es.
- Si la contraseña no es correcta, vuelve a pedir usuario y contraseña, sin fin.
- Si la contraseña es la correcta ofrece el menú de reserva por pantalla:
- Ver asientos libres en la sala (en cuyo caso se llamará a la función ver_sala()). Al terminar debemos volver a mostrar el menú de pantalla.
- Reservar butacas (en cuyo caso se llamará a la función reservar()). Al terminar debemos volver a mostrar el menú de pantalla.
- Imprimir ticket, si la reserva fue realizada con éxito (en cuyo caso se llamará a la función imprimir()) y si no, se indicará por pantalla. Al terminar debemos volver a mostrar el menú de pantalla.
- Salir del programa: opción que devuelve la ejecución del programa al paso 3, a pedir usuario y contraseña.
Como puedes comprobar, se trata de un programa sin final.