Advertisement
AntonioVillanueva

Sistema de reservaciones de una aerolinea

Nov 26th, 2019
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.35 KB | None | 0 0
  1. /*
  2.  * Antonio Villanueva Segura
  3.  * compilacion      g++ -std=c++11 -o programa programa.cpp
  4.  * Sistema de reservaciones de una aerolinea
  5.  * reserva de 10 asientos
  6.  * menu de alternativas:
  7.  * Por favor teclee
  8.  * 1 para "fumar"
  9.  * 2 para "no fumar"
  10.  * Si se teclea 1 el programa debera asignar un asiento en fumadores (asientos 1 a 5)
  11.  * Si se teclea 2 se asignara un asiento de no fumar (asientos 6 a 10)
  12.  * El programa debera imprimir un pase de abordar
  13.  * que indique el numero de asiento y la seccion de fumadores o no fumadores
  14.  * Mediante un arreglo de un solo subindice,represente la grafica de asientos del avion
  15.  * Inicialice a 0 los elementos del arreglo,indicando que estan vacios.
  16.  * A medida que se asigne un asiento establezca a 1
  17.  * El programa no asignara ningun asiento ya asignado
  18.  * Si la seccion de fumadores esta llena el programa preguntara si es aceptable en no fumadores y viceversa
  19.  * Si la respuesta es si se realiza la asignacion
  20.  * si no imprimir "El proximo vuelo parte en 3 Horas"
  21.  *
  22.  */
  23. #include <iostream>
  24. #include <vector>
  25. using namespace std;
  26. /**********************************************************************/
  27.  
  28. void verAvion (vector<int> avion){//Visualiza los asientos del avion
  29.     cout <<endl;
  30.     for (auto a:avion){
  31.         cout <<a<<endl;
  32.     }
  33. }
  34.  
  35. /**********************************************************************/
  36.  
  37. bool avionCompleto(vector<int>avion){//Mira si el avion esta lleno
  38.     for (auto asiento:avion){
  39.         if (asiento==0){return false;}//Hay plazas
  40.     }
  41.     return true;//Avion completo
  42. }
  43.  
  44. /**********************************************************************/
  45.  
  46. int menu(){//Menu , retorna 1 (fumadores)=true o 2 (No fumadores)=false
  47.     int sel(0);
  48.     while (sel!=1 and sel !=2){
  49.         cout <<endl<<"1 fumadores"<<endl<<"2 no fumadores"<<endl;
  50.         cin>>sel;
  51.     }
  52.     return sel==1 ? true : false;
  53. }
  54.  
  55. /**********************************************************************/
  56.  
  57. bool reserva (vector<int> &avion,bool fumador){
  58.     //1 a 5 fumadores ,6 a 10 no fumadores
  59.     int offset= fumador ? 0 : 5; //Si no es fumador aplica +5
  60.     for (int asiento=offset;asiento<5+offset;asiento++){
  61.         if (avion[asiento]==0){//Esta libre
  62.             avion[asiento]=1;//Lo ocupamos
  63.             return true;//Ha encontrado un asiento libre
  64.         }
  65.     }
  66.     return false;//No hay libres
  67. }
  68.  
  69. /**********************************************************************/
  70. /**********************************************************************/
  71.  
  72. int main (){
  73.     vector <int> avion (10,0);//Inicializar el avion 10 asientos
  74.     bool fumador;//respuesta la menu true o false , fumador o no fumador
  75.     string respuesta("no");//Cuando pide reservar en otra categoria
  76.    
  77.     while (!avionCompleto(avion)){//Mientras no este completo realiza el bucle
  78.         verAvion(avion);//Ver asientos
  79.         fumador=menu();//(fumadores)=true ,(No fumadores)=false
  80.         if (!reserva(avion,fumador)){//Intenta reservar si no busca alternativa
  81.             //No ha encontrado asientos libres en esta categoria propone
  82.             cout << "Hay plazas libres en "<< string (fumador ? "No Fumadores" : " Fumadores ")<<" Acepta (si/no) ?";
  83.             cin>>respuesta;
  84.             if (respuesta=="si"){reserva(avion,!fumador);}//Reserva en otra categoria
  85.             else {cout <<"El proximo vuelo parte en 3 Horas"<<endl;}
  86.             respuesta="no";        
  87.         }
  88.     }
  89.    
  90.     cout <<"Embarque completo, listo  para despegue "<<endl;
  91.     verAvion(avion);//Ver asientos todos ocupados 1
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement