#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
struct avion {
char *nombre;
int asiento;
struct avion *L;
};
struct avion *pa, *q, *n;
struct avion *p=NULL;
int t=1;
//Creacion de los lugares
void creacion(void)
{
int i;
q=p;
for (i=1; i<=10; i++)
{
n=(struct avion *)malloc(sizeof(struct avion));
if (q==NULL)
q=p=n;
else
{
while(q->L != NULL)
q=q->L;
q->L=n;
}
n->asiento=i;
n->nombre=NULL;
n->L=NULL;
}
}
//Busca si hay algun lugar disponible
int buscar(int lugar)
{
q=p;
while(q->asiento != lugar && q->L != NULL)
q=q->L;
if (lugar == q->asiento && q->nombre == NULL)
return 1;
else
return 0;
}
//Reserva un lugar para el pasajero
void insertar(void)
{
char *name;
int lugar, x=1;
if (t <= 10)
{
do {
clrscr();
cout<<"\nNumero de asiento: ";
cin>>lugar;
cout<<"\nNombre del pasajero: ";
gets(name);
if (buscar(lugar)==1)
{
q=p;
while(q->asiento != lugar && q->L != NULL)
q=q->L;
q->nombre=name;
t++;
x=0;
}
else
cout<<"\nAsiento no disponible";
} while(x);
}
else
cout<<"\nNo hay lugar disponible";
}
int eliminar(void)
{
int lugar;
if (t >= 1)
{
cout<<"Lugar que desea eliminar: ";
cin>>lugar;
q=p;
while(q->asiento != lugar && q->L != NULL)
q=q->L;
if (q->nombre == NULL)
{
cout<<"\nEl lugar esta vacio";
return 1;
}
else
q->nombre=NULL;
t--;
}
return 1;
}
//Muestra los lugares
void mostrar(void)
{
q=p;
cout<<endl<<endl;
while(q->L != NULL)
{
if (q->nombre != NULL)
cout<<" "<<q->asiento<<" "<<q->nombre<<endl;
else
cout<<" "<<q->asiento<<" "<<"Lugar disponible!!!"<<endl;
q=q->L;
}
}
void main(void)
{
char opcion;
creacion();
do {
clrscr();
cout<<"\n1.-Reservar lugar";
cout<<"\n2.-Dar de baja un lugar";
cout<<"\n3.-MOstrar lista de pasajeros";
cout<<"\n4.-Buscar un pasajero";
cout<<"\n5.-Salir";
cout<<"\nOpcion: ";
cin>>opcion;
switch(opcion)
{
case '1': insertar();
break;
case '2': eliminar();
break;
case '3': mostrar();
break;
case '4':
break;
case '5': exit(0);
break;
default: cout<<"\nOpcion incorrecta";
}
getch();
} while(opcion != '5');
}