Anuncios Google

Ayuda

Cuando compilo mi codigo funciona y todo pero ala hora de consulta general y consultar por nombre me muestra los resultados pero me dice que devx deja de funcionar 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

 

struct hotel

{

int numhab;

char nom[15];

char tipohab[2];

int numeronoch;

int totalpagar;

struct hotel *sig;

};

 

hotel *cab=NULL, *fin=NULL;

 

void encolar(void);

void desencolar(void);

void consultar(void);

void consultarN(void);

 

int habsen=0;

int habdob=0;

int habjr=0;

int totalhab=0;

 

void encolar(void)

{

if(totalhab==3)

{

printf("No hay recamaras que alquilar.\n");

}

else 

{

char tiph[10];

hotel *q=new(hotel);

printf("Nombre:");

fflush(stdin);

gets(q->nom);

printf("Tipo Habitacion:");

scanf("%s", &tiph);

if(strcmp(tiph, "sencilla")==0)

{

habsen++;

q->numhab=habsen;

strcpy(q->tipohab, "S");

printf("Numero noches:");

scanf("%d", &q->numeronoch);

q->totalpagar=q->numeronoch*1500;

printf("\n");

}

if(strcmp(tiph, "doble")==0)

{

habdob++;

q->numhab=habdob;

strcpy(q->tipohab, "D");

printf("Numero noches:");

scanf("%d", &q->numeronoch);

q->totalpagar=q->numeronoch*2700;

printf("\n");

}

if(strcmp(tiph, "jr")==0)

{

habjr++;

q->numhab=habjr;

strcpy(q->tipohab, "JR");

printf("Numero noches:");

scanf("%d", &q->numeronoch);

q->totalpagar=q->numeronoch*3500;

printf("\n");

}

if(cab==NULL)

{

cab=q;

fin=q;

}

else

{

fin->sig=q;

fin=q;

}

totalhab++;

}

 

}

 

void desencolar(void)

{

if(cab==NULL)

printf("No hay clientes:\n\n");

else

{

hotel *aux;

aux=cab;

cab=cab->sig;

printf("Atendiendo a:\nNombre:%s\nHabitacion:%s%d\nNoches:%d\nImporte:%d\n\n", aux->nom, aux->tipohab, aux->numhab, aux->numeronoch, aux->totalpagar);

free(aux);

}

}

 

void consultar(void)

{

if(cab==NULL)

printf("No hay clientes\n\n");

else

{

hotel *aux;

aux=cab;

printf("Reservaciones:\n\n");

while(aux!=NULL)

{

printf("Nombre:%s\nHabitacion:%s%d\nNoches:%d\nImporte:%d\n\n", aux->nom, aux->tipohab, aux->numhab, aux->numeronoch, aux->totalpagar);

aux=aux->sig;

}

}

}

 

void consultarN(void)

{

if(cab==NULL)

printf("No hay clientes\n\n");

else

{

char name[15];

int b=0;

hotel *aux;

aux=cab;

printf("Nombre Reservacion:");

fflush(stdin);

gets(name);

while(aux!=NULL)

{

if(strcmp(name, aux->nom)==0)

printf("\nNombre:%s\nHabitacion:%s%d\nNoches:%d\nImporte:%d\n\n", aux->nom, aux->tipohab, aux->numhab, aux->numeronoch, aux->totalpagar);

aux=aux->sig;

}

}

}

 

main()

{

int opc;

printf("Precio de habitaciones:\nSencilla=1500\nDoble=2700\nJr=3500\n\n");

do

{

printf("Menu:\n");

printf("1.-Reservar habitacion\n");

printf("2.-Atender cliente\n");

printf("3.-Consultar Reservaciones\n");

printf("4.-Consultar Nombre\n");

printf("5.-Salir\n");

scanf("%d", &opc);

switch(opc)

{

case 1: encolar();

break;

case 2: desencolar();

break;

case 3: consultar();

break;

case 4: consultarN();

break;

case 5: printf("Adios");

break;

default: printf("Opcion no valida");

}

}while(opc!=5);

}


Anuncios Google