Reservaciones en Avion

Este es el primer Programa en C/C++, es muy facil de usar, un ejemplo practico sin desperdicio de codigo cada line esta muy bien aplicada, es cuestion de que le hagas una ojeada. este es el problema ...

Un avión dispone de 50 asientos, de las cuales 30 son de NO fumador, numeradas del 1 al 30 y 20 son de Fumador, numeradas del 31 al 50. Diseñar un programa en C que permita reservar asiento en el avión y que vaya mostrando los asientos reservados en cada clase y al final dé un total de psajeros en cada clase. La salida debe mostrarse así:

ZONA NO FUMADORES ZONA FUMADORES
1 2 3 4........30 31 32 33.......50
X X X X X X X X

Solo quisiera hacer unas pequeñas observaciones: al realizar este proyecto el vector era horizontal, pero yo lo hize vertical. sorry ps. si puedes abrir el codigo, notaras que esta dividido por bloques (block1,block2, etc ... ) son las partes mas resaltantes de este proyecto. y que a continuacion paso a explicar los mas importantes:

BLOCK 1: aqui tenemos la libreria y las variables que vamos a utilizar. en especial quiero resaltar el vector x[51], por que como te habras dado cuenta es el numero de asientos más 1, cuanto tenemos estos tipos de problemas es mas comodo trabajar con lo siguiente "n+1" (n="numero de elementos, longitud del vector") para trabajar con valores reales y no. (val-1). donde te aseguro que por lo menos cometeras unos errores, y luego te romperas la cabeza buscando donde lo hiciste.

BLOCK 2: Nuestros Procesos.

BLOCK 4: Con este for damos a todo el vector el valor de 1. que para este programa 1=Disponible y 2=Ocupado. luego hacemos las llamadas a void salida(); que lo unico que hace es interpretar y graficar estos valores.

BLOBK 5: Menu, un menucito simple.

BLOBK 6 y 7:Reservaciones, el nucleo de nuestro programa, primeramente verificamos si hay asientos libres, como? haciendo una llamada al void verificarasiento(); que cuenta los asientos llenos y vacios del 1 - 30 y del 31 - 50. en el block 7 segun los datos recuperdos de los procesos anteriores tenemos un valor max. de reservaciones.

BLOBK 8: Este bloque es algo curioso, aqui "disfrazo" el for como un "while", aunque tu me diras, " ... Porque no utilizaste While?" y yo te respondo, pork nesecitaba el valor de "i", asi funciona, ejemplo: * Ingrese Numero de Asiento: 12, si la posicion x[12] tiene el valor de 2 entonces > Este Asiento esta Ocupado!!!, y el valor de i = i - 1, para que el for no lo cuente y lo vuelva arepetir. en caso contrario x[12]=2 para que el void salida(); lo reconosca como asiento reservado y el valor de "i" no se modifica. aahhh y como se que se te va a ocurri meter un numero >50, esta la siguiente condicion para que no me generes error, y despues no estees maleteando. if (asnt>50) > Numero Invalido! y lo mismo con el valor de i=i-1

BLOBK 13: y asi damos un gigantesco salto hacia el 13, donde podemos encontrar al proceso verifica asiento que como ya explique para que sirve no lo repito. una vez que todos los asientos esteen ocupados el programa automaticamente, reinicia todas las variables auxiliares a 0, y podemos decir TODOS LOS ASIENTOS ESTAN RESERVADOS !! - que tengas buen viaje ...



0 comentarios: