| Reservas de avion en <iostream.h> |
|
|
|
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. |
//------------BLOCK 1-----------------------
#include<iostream.h>
int can,j,i,asnt,b,x[51],mnu,f=0,nf=0,t;
//------------BLOCK 2----------------------
void reserva();
void salida();
void menu();
void culminar();
void cancelareserva();
void verificaasiento();
void salir();
//------------BLOCK 3----------------------
void main()
{
cout<<"\n";
cout<<" RERSERVAS DE AVION"<<endl;
cout<<" //////////////////\n";
cout<<"\n";
//------------BLOCK 4----------------------
for (i=1;i<=50;i++) //Dando valores a la Lista ...
x[i]=1;
salida();
menu();
}
//------------BLOBK 5----------------------
void menu()
{
while(mnu!=4)
{
cout<<"\n"; //Salto de Linea
cout<<" Que desea hacer ?\n";
cout<<"\n";
cout<<" --------------------------\n";
cout<<" Reservar Acientos .... (1)\n";
cout<<" Cancelar Reservas .... (2)\n";
cout<<" Salida .... (3)\n";
cout<<" Culminar .... (4)\n";
cout<<" --------------------------\n";
cout<<"\n";
cout<<" Eliga Opcion: ";
cin>>mnu;
switch(mnu)
{
case 1:reserva();break;
case 2:cancelareserva();break;
case 3:salida();break;
case 4:culminar();break;
default:cout<<" Escoja una Opcion del Menu ...\n";
}
}
}
//------------BLOBK 6----------------------
void reserva()
{
verificaasiento(); // call
//------------BLOBK 7----------------------
do
{
cout<<"\n"; //Salto de Linea
cout<<" >> Cantidad de Asientos a Reservar: ";
cin>>can;
if (can>t)
{
cout<<"\n"; //Salto de Linea
cout<<" > Solo pude Rersevar: "<<t<<" ASIENTOS!\n";
cout<<"\n"; //Salto de Linea
}
}
while (can>t);
//------------BLOBK 8----------------------
cout<<" >> Area No Fumador 1 - 30, Fumador 31 - 50 <<\n";
cout<<"\n"; //Salto de Linea
for(i=1;i<=can;i++)
{
cout<<" * Ingrese Numero de Asiento: ";
cin>>asnt;
if (x[asnt]==2)
{
cout<<"\n"; //Salto de Linea
cout<<" > Este Asiento esta Ocupado!\n";
i--;
cout<<"\n"; //Salto de Linea
}
else
{
x[asnt]=2;
}
if (asnt>50)
{
cout<<"\n"; //Salto de Linea
cout<<" > Numero Invalido!\n";
i--;
cout<<"\n"; //Salto de Linea
}
}
cout<<"\n"; //Salto de Linea
salida();
can=0;
asnt=0;
}
//------------BLOBK 9----------------------
void cancelareserva()
{
verificaasiento();
do
{
cout<<"\n"; //Salto de Linea
cout<<" >> Cantidad de Asientos a CANCELAR!: ";
cin>>can;
if (can>t)
{
cout<<"\n"; //Salto de Linea
cout<<" > Solo pude CANCELAR!: "<<t<<" ASIENTOS!\n";
cout<<"\n"; //Salto de Linea
}
}
while (can>t);
//------------BLOBK 10----------------------
cout<<" >> Area Fumador 1 - 30, No Fumador 31 - 50 <<\n";
cout<<"\n"; //Salto de Linea
for(i=1;i<=can;i++)
{
cout<<" * Ingrese Numero de Asiento: ";
cin>>asnt;
if (x[asnt]==1)
{
cout<<"\n"; //Salto de Linea
cout<<" > Este Asiento esta Vacio!\n";
i--;
cout<<"\n"; //Salto de Linea
}
else
{
x[asnt]=1;
}
if (asnt>50)
{
cout<<"\n"; //Salto de Linea
cout<<" > Numero Invalido!\n";
i--;
cout<<"\n"; //Salto de Linea
}
}
cout<<"\n"; //Salto de Linea
cout<<" > Se CANCELARON LAS RESERVAS!\n";
cout<<"\n"; //Salto de Linea
salida();
}
//------------BLOBK 11----------------------
void salida()
{
cout<<"\n"; //Salto de Linea
cout<<" Zona * NO FUMADORES *\n";
cout<<" ---------------------\n";
for(j=1;j<=30;j++)
{
if(j%2>0)
{
if (x[j]==1)
{
cout<<"\n"; //Salto de Linea
cout<<" "<<j<<"-Si";
}
else
{
cout<<"\n"; //Salto de Linea
cout<<" "<<j<<"-XX";
}
}
else
{
if (x[j]==1)
{
cout<<" "<<j<<"-Si";
}
else
{
cout<<" "<<j<<"-XX";
}
}
}
cout<<"\n"; //Salto de Linea
cout<<"\n"; //Salto de Linea
cout<<" Zona * FUMADORES *\n";
cout<<" ------------------\n";
//------------BLOBK 12----------------------
for(j=31;j<=50;j++)
{
if(j%2>0)
{
if (x[j]==1)
{
cout<<"\n"; //Salto de Linea
cout<<" "<<j<<"-Si";
}
else
{
cout<<"\n"; //Salto de Linea
cout<<" "<<j<<"-XX";
}
}
else
{
if (x[j]==1)
{
cout<<" "<<j<<"-Si";
}
else
{
cout<<" "<<j<<"-XX";
}
}
}
verificaasiento();
}
//------------BLOBK 13----------------------
void verificaasiento()
{
for(i=1;i<=30;i++)
{
if(x[i]==2)
nf++;
}
for(i=31;i<=50;i++)
{
if(x[i]==2)
f++;
}
cout<<"\n"; //Salto de Linea
cout<<"\n"; //Salto de Linea
cout<<" * NO FUMADORES : "<<nf<<" Ocupados, "<<30-nf<<" Libres\n";
cout<<" * FUMADORES : "<<f<<" Ocupados, "<<20-f<<" Libres\n";
cout<<"\n"; //Salto de Linea
cout<<" * TOTAL : "<<f+nf<<" Ocupados, "<<50-(f+nf)<<" Libres\n";
t=50-(f+nf);
f=0;
nf=0;
if (t==0)
{
cout<<"\n"; //Salto de Linea
cout<<" > TODOS LOS ASIENTOS ESTAN RESERVADOS !\n";
cout<<"\n"; //Salto de Linea
}
}
//------------BLOBK 14----------------------
void culminar()
{
salida();
salir();
}
void salir()
{
cout<<" FIN \n";//Fin
cout<<" ///\n";
cout<<"\n";
cout<<" Visita: http//Algoritmopuro.blogspot.com. Algoritmos Dividelos y Venceras ...\n";
cout<<" [email protected] & [email protected] ...\n";
cout<<"\n"; //Salto de Linea
}
/* Desarrollado por [email protected] || [email protected] ... Algoritmos Dividelos y venceras ....
visiten: algoritmopuro.blogspot.com */ |
|
| |
| Terminos de Uso |
|
1 - Copiar o Descargarse este contenido implica aceptar los terminos aqui detallados.
2 - Usted puede utilizar este contenido en sus propios programas y puede compilarlo en un programa y modificarlo a su gusto.
3 - Usted NO PUEDE redistribuir este contenido tal como se presenta aqui sin el permiso del autor original del mismo.
4 - Usted seguirá cualquier restricción adicional del copyright que el autor pudo haber puesto en la descripción del contenido.
|
|
|
|
|