Red de conocimientos turísticos - Curso de fotografía - Sistema de gestión hotelera (lenguaje C)

Sistema de gestión hotelera (lenguaje C)

# incluir & ltstdio.h & gt

# incluir & ltstdlib.h & gt

# incluir & ltstring.h & gt

struct client_node {

char id[18];

int día;

int dinero

char número de habitación[3]; >struct clientes_nodo * siguiente

};

struct clientes_nodo * p0, *head;

//#define N 100

struct clientes _ nodo * Create _ Cust _ Doc(); //Nuevo

struct clientes _ nodo * insert doc(struct clientes _ nodo * head, char id[] //Insertar

estructura clientes _ nodo * eliminar doc(estructura clientes _ nodo * cabeza, char id[] //Eliminar

estructura clientes _ nodo * buscar documento(estructura clientes _ nodo * cabeza , char id[]); //Consulta

void Print _ Cust _ Doc(struct clientes _ nodo * head // Llamada a función de información

Estructura clientes_nodo *Cliente(struct); Customer_Node*P0); //¿Es necesario asignar espacio de almacenamiento dinámico para p0?

int main(void)

{

estructura clientes _ nodo * cabeza

int selección;

char id[18];

Do {

Printf("Esta función del sistema:\ n ");

Printf("1. Crear 2. Buscar 3. Insertar 4.

eliminar 5. imprimir 0:Salir \ n ");

Printf("Seleccione:");

scanf("%d ", & select);

Cambiar(seleccionar){

Caso 1:

head = Create _ Cust _ Doc();

Romper

< p; >Caso 2:

Printf("Ingrese su número de identificación:\ n ");

scanf("%s ", id);

head =searchDoc(head, id);

Pausa;

Caso 3:

Printf("Ingrese su número de identificación:\n ");

scanf("%s ", id);

head=InsertDoc(head, id);

Break;

Caso 4:

Printf("Ingrese su número de identificación: \ n ");

scanf("%s ", id

head=DeleteDoc(head); , id);

Pausa;

Caso 5:

Print_Cust_Doc (encabezado);

Pausa;

Caso 0:

Interrupción;

}

}mientras(select!=0);

Devuelve 0;

}

Estructura cliente_nodo*cliente(struct cliente_nodo*p0)

{

Estructura clientes_nodo*p

int día, dinero, elección, z;

char id[18];

char número de habitación[3];

Printf("Por favor, ingrese su Número de identificación: \ n ");

scanf("%s ", id);

Printf("¡Iniciaste sesión correctamente! \ n ");

Printf("Seleccione el tipo de habitación:\ n ");

Printf(" 1. Habitación individual/noche 150 yuanes\n 2. Habitación doble 200 yuanes/noche\n 3. Habitación estándar 300 yuanes /night\n”);

scanf("%d ", & amp select);

Cambiar (seleccionar){

Caso 1:printf( "Ingrese el número de días programados\ n ");

scanf("%d ", & días);

Dinero = número de días * 150;

Printf("Por favor, pague %d yuanes por adelantado\n ", dinero);

Printf(" 1. OK (reserva exitosa) 2. Volver (si reprogramar)\ n ");

scanf("%d ", & ampz);

if(z==1){

Printf("Has reservado correctamente★El número de habitación es");

scanf("%s ", número de habitación);

}Roto;

Caso 2: printf("Ingrese el número de días de reserva\ n ");

scanf("%d ", & días

Dinero = número de días *); 200;

Printf("Pague %d yuanes por adelantado\n ", dinero);

Printf(" 1. OK (reserva exitosa) 2.

Volver (si reprogramar)\ n ");

scanf("%d ", & ampz);

if(z==1){

Printf("Has reservado correctamente★El número de habitación es");

scanf("%s ", número de habitación);

}Roto;

Caso 3: printf("Ingrese el número de días para la reserva:");

scanf("%d ", & días

Dinero = número de días *); 300;

Printf("Pague %d yuanes por adelantado\n ", dinero);

Printf(" 1. Aceptar (reserva exitosa) 2. Regreso (si se reprogramará) )\n ");

scanf("%d ", & ampz);

if(z==1){

Printf("Tú han reservado correctamente★El número de habitación es ");

scanf("%s ", número de habitación);

} roto;

Caso 4: printf ("Ingrese el número de días de reserva\ n ");

scanf("%d ", & días);

Dinero = número de días * 600;

Printf("Pague por adelantado %d yuanes \n ", dinero);

Printf(" 1. OK (reserva exitosa) 2. Regreso (si se reprogramará)\n "); /p>

scanf(" %d ",&z);

if(z==1){

Printf("Has reservado correctamente★El número de habitación es ");

scanf ("%s ", número de habitación);

}Roto;

Predeterminado: printf("Su entrada es incorrecta, intente de nuevo, gracias.

\ n ");

Break;

p=(struct client_node*)malloc(sizeof(struct client_node));// ¿Se puede utilizar la transferencia de elementos de estructura? Puntero completado

strcpy(p->id,id);

strcpy(p->número de habitación, número de habitación);

p ->; = días;

p->; dinero = dinero;

retorno p;

}

clientes estructurales _ nodo * crear _ cust _ doc()//Nuevo

{

Estructura clientes_nodo * head, * p;

int tamaño = tamaño de(estructura clientes _ nodo);

p = (struct clientes _ nodo *)malloc(tamaño);

head->; next = NULL

Clientes (* P0 );// Llamar a la función

//p = P0;

head->;next = p;

Devolver encabezado;

}

estructura nodo_clientes * insert doc(struct nodo_clientes *head);

{

estructura nodo_clientes *q, *temp

q=(estructura customer_node*)malloc(sizeof(structure customer_node));

Cliente (P0);

temp = p0//Inserción de elemento sin resolver

q = head- >siguiente;

if(head->next==NULL){

q = temperatura;

q->;siguiente = NULL

}

mientras(q->;siguiente)q = q-& gt;siguiente;

q->; >Devolver encabezado;

}

struct clientes _ nodo * buscar doc(struct clientes _ nodo * cabeza, charid)// ¿Se pueden devolver todos los elementos de la estructura usando solo id?

{

estructura clientes _ nodo * p = cabeza-& gt; siguiente

p = cabeza-& gt; p>if(head-& gt; next==null)

Printf("No ocupado") ;

En caso contrario {

while(strcmp(id , p->id)! =0) //Cómo usar solo id para representar la parte de datos en el nodo (estructura) p = p-& gt;

}

Devolver p;

}

estructura clientes _ nodo * eliminar documento (estructura clientes _ nodo * cabeza, char id)

{

struct client_node *p, *q;

p = head-> siguiente;

q = p-> ;Siguiente;

if(p==null)

Devuelve nulo

Y (p!=null){

if (strcmp(id ,p->identificación

)==0){

q = p

Gratis(p

}

p = p-& gt; ;Siguiente;

q = p->;Siguiente;

}

Volver encabezado;

}

void Print_Cust_Doc(estructura clientes_nodo*cabeza)

{

Estructura clientes_nodo*q;

if(cabeza-> ; next==null){

printf("\nSin registro\n");

Regresar;

}

Printf ("El registro del cliente registrado es:\ n ");

for(q = head-& gt; next; q; q = q-& gt; next){

Printf ("Número de identificación: %s\t ", q-& gt; id

Printf ("Días de registro: %d\t ", q-& gt; días);

Printf("Pago por adelantado: %d\t ", q-& gt; dinero

Printf("Número de habitación: %s\n ", q-& gt;habitación); número);

}

}