// // main.c // T3_Ej13 // // Created by Mari Paz Guerrero Lebrero on 28/1/15. // Copyright (c) 2015 Mari Paz Guerrero Lebrero. All rights reserved. // #include #include #define FILAS 25 #define COLUMNAS 4 int** InicializarAvion(); int Menu(); int ReservarAsientos(int **M, int f, int c); int CancelarAsientos(int **M, int f, int c); int main() { int op, **avion, r, f, c, i, j; avion = InicializarAvion(); op = Menu(); while(op != 4) { switch(op) { case 1:{ printf("Indique la fila y la columna del asiento que quiere reservar: "); scanf("%d%d", &f, &c); r = ReservarAsientos(avion, f, c); if( r == 1) printf("Reserva realizada\n"); else if(r == -1) printf("ERROR: El asiento ya esta reservado\n"); else printf("ERROR: No existe el asiento\n"); break; } case 2:{ printf("Indique la fila y la columna del asiento que quiere cancelar: "); scanf("%d%d", &f, &c); r = CancelarAsientos(avion, f, c); if( r == 1) printf("Cancelacion realizada\n"); else if(r == -1) printf("ERROR: El asiento ya esta cancelado\n"); else printf("ERROR: No existe el asiento\n"); break; } case 3:{ printf("Situacion del avion. 0 asiento libre y 1 asiento reservado\n"); for(i = 0; i < FILAS; i++) { for(j = 0; j < COLUMNAS; j++) printf("%d ", avion[i][j]); printf("\n"); } break; } default:printf("ERROR: Opcion incorrecta\n"); } op = Menu(); } return 0; } int** InicializarAvion() { int **M, i; M = (int**)malloc(FILAS * sizeof(int*)); for(i = 0; i < FILAS; i++) M[i] = (int*)calloc(COLUMNAS, sizeof(int)); return M; } int Menu() { int op; printf("---------------------------------------\n"); printf("---------------- MENU -----------------\n"); printf("---------------------------------------\n"); printf("\t1. Reservar asiento\n"); printf("\t2. Cancelar asiento\n"); printf("\t3. Asientos libres y ocupados\n"); printf("\t4. Salir\n"); printf("Elija una opcion: "); scanf("%d", &op); return op; } int ReservarAsientos(int **M, int f, int c) { int ok = 1; if(f < 0 || f >= FILAS || c < 0 || c >= COLUMNAS) ok = 0; else if(M[f][c] == 1) ok = -1; else M[f][c] = 1; return ok; } int CancelarAsientos(int **M, int f, int c) { int ok = 1; if(f < 0 || f >= FILAS || c < 0 || c >= COLUMNAS) ok = 0; else if(M[f][c] == 0) ok = -1; else M[f][c] = 0; return ok; }