Código fuente del sistema de gestión hotelera
{
int j, p;
for(j = 0; j lradix _ n; j )
{
f[j]= e[j]= 0;
}
para( p=sl[0]). Siguiente;p;p=sl[p]. Siguiente)
{
j=sl[p]. teclas[I] 48;
If (!f[j])
f[j]= p;
Otro
sl[e[j]]. siguiente = p;
e[j]= p;
}
}
void recolectar(slnode *sl, int i , arrtype_n f, arrtype_n e)
{
int j, t;
for(j = 0;!f[j];j);
sl[0]. siguiente = f[j];
t = e[j];
mientras(j lt; radix_n-1)
{
for(j = j 1;j lt base n-1 amp; amp!f[j];j);
if(f[j])
{
sl[t]. siguiente = f[j];
t = e[j];
}
}
sl[t]. siguiente = 0;
}
void distribuir_c(slnode *sl, int i, arrtype_c f, arrtype_c e)
{
int j, p;
for(j = 0; j lradix _ c; j )
{
f[j]= e[j]= 0;
}
para(p=sl[0]). Siguiente;p;p=sl[p]. Siguiente)
{
j=sl[p]. teclas[I] 65;
If (!f[j])
f[j]= p;
Otro
sl[e[j]]. siguiente = p;
e[j]= p
}
}
void Collect_c(slnode *sl, int i , arrtype_c f, arrtype_c e)
{
int j, t;
for(j = 0;!f[j];j);
sl[0]. siguiente = f[j];
t = e[j];
mientras(j lt; radix_c-1)
{
for(j = j 1;j lt base_ c-1 amp; amp!f[j];j);
if(f[j])
{
sl[t]. siguiente = f[j];
t = e[j];
}
}
sl[t].
siguiente = 0;
}
void radix sort(sl list amp; L)// cadena
{
int I;
arrtype_n fn, en;
arrtype_c fc, EC;
for(I = 0; i lt longitud; i)
l.sl[i]. siguiente = I 1;
Longitud. siguiente = 0;
for(I = l . keynum-1; i gt=2; i-)
{
distribuir(l.sl, I, fn, en);
collect(l.sl, I, fn, en
}
for(I = 1; i gt); =0;I-)
{
distribuir_c(l.sl,I,fc,EC);
recoger_c(l.sl,I,fc , EC);
}
}
void organizar(sl list amp; L)//Reorganizar
{ p >
int p, q, I;
temperatura del nodo
p=l.sl[0]. Siguiente;
for(I = 1; i lt longitud; i)
{
mientras(p lt; i)
p=l.sl[p]. Siguiente;
q=l.sl[p]. Siguiente;
if (p!=i)
{
temp = l . [p]= l . sl[I];
l sl[I]=
l.sl[i]. siguiente = p;
}
p = q;
}
}
int binsearch(sllist l, tipo de clave clave[])
{
int bajo, alto, medio
bajo = 1
alto = l; .length;
mientras(bajo lt;=alto)
{
medio=(bajo alto)/2;
si (strcmp(key, l.sl[mid]).keys)==0)
Regresar mid
else if (strcmp(key, l.sl[mid]).
clave) lt0)
Alto=medio 1;
Otro
Bajo= medio 1;
}
Devuelve 0;
}
void seqsearch(sllist l, keytype key[], int i)
{
int j , k, m = 0;
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
Printf("*número de vuelo, estación de origen, estación terminal, segmento de vuelo, hora de salida, hora de llegada, tipo de avión tarifa * \ n ");
for(j = 1; j lt=l . length; j )
{
Interruptor (1)
{
Caso 2: k=strcmp(key, l . sl[j]. otros . start
Caso 3: k=strcmp(key, l . sl[j]. otros . end
Caso 4: k=strcmp(key, l . sl[j]. otros . time); 1); break;
Caso 5: k=strcmp(key, l . sl[j]. otros . time 2); >Si (k==0)
{
m = 1;
printf(" * -8s -7s -6s -11s -9s -7s -5s 4d * \n ", l.sl[j].keys, l.sl[j].others.start, l.sl[j].others.end, l.sl[j].others.sche, l.sl[j].otros.tiempo1, l.sl[j].otros.tiempo2, l.sl[j].otros.modelo, l.sl[j].otros.precio);
}
}
If (m==0)
Printf("*No hay información de vuelo, puede ser un error de entrada*\ n" );
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n ");
}
Icono de búsqueda no válido (lista l)
{
tipo de clave clave[clave len];
int i=1,k;
mientras(I gt;=1. ampilt=5)
{ printf(" \ n * * * * * * * * * * * * * * * * * * * * * \ n ");
Printf(" *Sistema de consulta de información de vuelo* \ n ");
printf(" * * * * * * * * * * * * * * * * * * * \ n "); p>
Imprimirf(" * 1.
Número de vuelo *\n ");
Printf(" * 2. Estación de origen * \ n ");
Printf(" * 3. terminal * \ n ");
Printf(" * 4. Hora de salida * \ n");
Printf(" * 5. Hora de llegada * \ n "); " * 0. Salir del sistema * \ n ");
printf(" * * * * * * * * * * * * * * * * * * * \ n "); p>
Printf("Por favor seleccione (0-5):");
scanf("d", ampI);
printf("\n");
p>
Switch (1)
{case 1: printf("Ingrese el número de vuelo a consultar (las letras deben estar en mayúsculas): "); /p>
scanf("s " , clave);
k=binsearch(l, clave);
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n "
If (k ==0)
Printf("*¡No hay información para este vuelo, puede ser un error de entrada!* \ n "); p>
Otros
{ p>
Printf("*número de vuelo, hora de salida, hora de llegada, tipo de avión y tarifa* \ n ");
printf(" * -8s -7s -6s -11s -9s - 7s -5s 4d * \n ", l.sl[k].
claves, l.sl[k].others.start, l.sl[k].others.end, l.sl[k].others.sche, l.sl[k].others.time1, l.sl[ k].otros.time2, l.sl[k].otros.modelo, l.sl[k].otros.precio);
}
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
Pausa;
Caso 2: printf("Ingrese el nombre de la estación de origen del vuelo a consultar: ");
scanf("s ",clave);
seqsearch(l,clave,I);
Pausa;
Caso 3: printf("Entrar para consultar el nombre de la estación de origen del vuelo: ");
scanf("s ", key);
seqsearch(l, key, I);
Break ;
Caso 4: printf("Ingrese el nombre de la estación de salida del vuelo a consultar: ");
scanf("s ", clave);
seqsearch(l, key, I);
Break;
Caso 5: printf("Ingrese el nombre de la estación de origen del vuelo a consultar: "); p>
scanf("s ",key);
seqsearch(l,key,I);
Pausa;
Caso 0: printf (" \n \ n \ nAdiós n \ n ");
}
}
}
anular datos de entrada(sl lista amp; l)
{
int I = l longitud;
char yn = ' y
mientras(yn=. ='y '||yn=='Y ')
{
Printf("Número de vuelo, hora de salida, hora de llegada, tipo de avión y tarifa\n ");
scanf(" s s s s s s s s d ", l.sl[i].
claves, l.sl[i].others.start, l.sl[i].others.end, l.sl[i].others.sche, l.sl[i].others.time1, l.sl[ i].others.time2, l.sl[i].others.model, ampl sl[I].precio
I; radix sort(l);
Arrange(l);
Printf("¿Continuar escribiendo? y/n: ");
scanf("c " , ampyn);
}
l longitud = I-1;
}
void main()
.{
sl lista l;
l .keynum = 6;
l .length = 0
Datos de entrada; (l);
searchcon(l);
}