Airline Ticket Reservation

Intro

Desarrollo Local

NO USE repl.it para el desarrollo del proyecto, debe de instalar un compilador de C en su computadora, con repl es imposible trackear su avance en un sistema de control de versiones o conecte su cuenta de repl con github si no puede o no pudo conectar su cuenta de repl NO USE repl.it


1

Clear Screen

en todo tiempo es mejor si hace un clear screen

Usted simulara un sistema de reservas de asiento de vuelo desde la perspectiva de la Aerolinea (operador), no desde el usuario.

Cuando uno reserva en linea un vuelo hay una seccion en la que uno puede elegir el asiento de su vuelo, para este proyecto es esta fase de la reserva que usted debe implementar.

Los asientos de un vuelo se representan con una Letra del abecedario (ABC DEF, 6 caracteres, Numero de columnas) + un digito (1-32, numero de filas), ejemplos:

  • 1A: fila 1 columna 1
  • 22C: fila 22 columna 3
  • 32F: fila 32 columna 6

los asientos dentro del vuelo sera una matriz (un arreglo de arreglos, es decir una tabla) de tamaƱo 6x32.

A B C D E F
1 A1 B1 C1 D1 E1 F1
2 A2 B2 C2 D2 E2 F2
3 A3 B3 C3 D3 D3 F3
4 A4 B4 C4 D4 E4 F4
5 A5 B5 C5 D5 E5 F5
6 A6 B6 C6 D6 E6 F6
Image, click to expand Flight Ticket Reservation




Fase 1 - Menu

Para esta fase debe desarrollar un menu de bienvenida

  • La matriz se inicializara todas las casillas en '0', ningun asiento reservado.
  • Mostrara un menu con opciones para empezar a reservar.
  • Pedira el numero de vuelo que la aerolinea estar trabajando, el formato del vuelo sera un texto de 5 caracteres,ejemplos: "AA101", "UA345", "BTZ11", no debe verificar nada de este ID excepto su longitud, este ID servira para mostrarlo en la terminal.
  • Las opciones seran:
    1. Reservar asiento
    2. Ver disponibilidad de Asientos.
    3. Salir
  • Este menu se ejecutara infinitamente, al menos que se seleccione la opcion "Salir"
Menu

Ejemplo


Fase 2 - reservacion

Si en el menu se elige la opcion "Reservar asiento" entrara a esta etapa.

  1. En esta fase se implementara la reserva de un asiento.
  2. Se le pedira al operador que ingrese un numero de asiento en el format "LetraDigito"
  3. Su programa debera "interpretar" este formato a un formato de matriz[Letra][Digito], debera hacer alguna funcion que recibiendo una Letra devuelva el numero de columna que representa en la matriz de reservaciones.
  4. Una vez se interpreta eso, su programa debe verficiar si este asiento ya fue reservado, de ser asi se le mostrara al operador que el asiento esta reservado y que debe volver a elegir otro asiento (Volver a paso 2)
  5. Si el asiento se encuentra libre debe "reservar" este asiento en su matriz de alguna manera, explicada en la nota "reservas"
  6. Si el operador ingresa la palabra "menu" en el paso 2 entonces el programa debe salir de la "reserva" y regresara al menu principal.

reservas

Letra: columnas

Digito: Filas

Dentro de su matriz:

  • Asientos reservados se representaran con 'X'MAYUS.
  • Y asiento libre lo representara con '0'

Ejemplo


Fase 3 - Ver disponibilidad

Si en el menu se elige la opcion "Ver disponibilidad de Asientos" entrara a esta parte.

  1. En esta fase se implementara la visualizacion de reservas
  2. Se mostara la matriz de una forma "grafica" en la terminal, con sus encabezados en columnas (A-F) y las filas (1-32)
  3. Mostrando los asientos reservados 'X' y los asientos libres '0'

Ejemplo

Ejemplo

Fase 4 - Ver Resumen

En esta fase debe mostrar un resumen de reservas.

  • Mostrar cuantos asientos han sido reservados y cuantos quedan libres.
  • Mostrar un porcentaje de reservados y libres.

Para esta fase debe iterar sobre toda la matriz buscando asientos reservados y libres.

Ejemplo

Ejemplo


Puntos Extra

Si quiere obtener puntos extra sera posible de la siguiente manera,

  • Agregara una nueva funcionalidad Sugerir Asiento
  • Cuando un vuelo se encuentra casi lleno sera muy dificil encontrar un asiento libre, que le parece si su programa le sugiere el asiento?
  • Esta sugerencia debera suceder cuando en la fase de reservacion nos encontremos en el punto #4 mostrara al operador que el asiento esta reservado y que debe volver a elegir otro asiento (Volver a paso 2)
  • Para poder sugerir un asiento que no este ocupado su programa debe 'recorrer' por toda la matriz de asientos hasta encontrar el primer asiento disponible y ese es el que va a sugerir.


Ya leyo todo?

si leyo toda esta pagina haga click aqui