Quantcast
Channel: Comunidad Underground Hispana
Viewing all articles
Browse latest Browse all 11602

[C] Sistema de Reserva

$
0
0
He encontrado este programa en la red y me parecio interesante para practicar y analizarlo. Consiste en un tipo de sistema de reserva de asientos de un avión que contiene 25 filas y 4 columnas. A su vez muestra por pantalla los asientos que van siendo ocupados y cancelados. Se los dejo a continuación (tiene algunos retoques):








Código:

#include <conio.h>
#include <stdio.h>
#include <windows.h>

#define N_FILAS 25
#define N_COLUMNAS 4
#define LIBRE 0
#define OCUPADO 1


int mostrarMenu();
 

void reservarAsiento(int a[][N_COLUMNAS]);
void cancelarAsiento(int a[][N_COLUMNAS]);
void mostrarOcupacion(int a[][N_COLUMNAS]);

 

int main(){

    SetConsoleTitle("Sistema de Reserva");

    int asiento[N_FILAS][N_COLUMNAS]={0};

    int resp=mostrarMenu();

    while(resp!=4){

        switch(resp){

            case 1:

                reservarAsiento(asiento);
                break;

            case 2:

                cancelarAsiento(asiento);
                break;

            case 3:

                mostrarOcupacion(asiento);
                break;

        }
        resp=mostrarMenu();

    }
    getch();

}

               

int mostrarMenu(){

    int resp;
    printf("\n\n");
    printf("1) Reservar Asiento\n");
    printf("2) Cancelar Asiento\n");
    printf("3) Mostrar Ocupacion\n");
    printf("4) Salir\n");
    scanf("%d",&resp);
    return resp;

}

 

void reservarAsiento(int a[][N_COLUMNAS]){

    int fila, col;

do  {

    printf("Escriba la fila del asiento a reservar: ");
    scanf("%d",&fila);
   
    }
while(fila > 25);
     
     
do    {     
     
    printf("Escriba la columna del asiento a reservar: ");
    scanf("%d",&col);
   
    }
while(col > 4);


    if(a[fila][col]==OCUPADO) printf("Ese asiento ya esta reservado, ingrese otro numero de asiento.\n");
    else {

        a[fila][col]=OCUPADO;
        printf("Reserva realizada, usted reservo el asiento ubicado en la columna numero %d, fila numero %d\n",col,fila);

    }

}



void cancelarAsiento(int a[][N_COLUMNAS]){

    int fila, col;

   

    printf("Escriba la fila del asiento a cancelar: ");
    scanf("%d",&fila);


                 
   
   
    printf("Escriba la columna del asiento a cancelar: ");
    scanf("%d",&col);





    if(a[fila][col]==LIBRE) printf("Ese asiento no esta ocupado\n");
    else {

        a[fila][col]=LIBRE;
        printf("Cancelacion realizada\n");

    }

}

 

void mostrarOcupacion(int a[][N_COLUMNAS]){

    int i,j;

    for(i=0;i<N_FILAS;i++){

        for(j=0;j<N_COLUMNAS;j++){

            printf("fila %d, columna %d ",i,j);
            if(a[i][j]==LIBRE) printf("Libre\n");
            else printf("Ocupado\n");

        }

    }

}


Viewing all articles
Browse latest Browse all 11602

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>