Sistema de gestión hotelera (lenguaje C)
# incluir & ltstdlib.h & gt
# incluir & ltstring.h & gt
struct client_node { p>
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 p>
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 "); p>
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;
} p>
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 p>
}
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); p>
Printf("Pago por adelantado: %d\t ", q-& gt; dinero
Printf("Número de habitación: %s\n ", q-& gt;habitación); número);
}
}