Red de conocimiento informático - Conocimiento sistemático - Buscando sistema de gestión hotelera (lenguaje C)

Buscando sistema de gestión hotelera (lenguaje C)

#include

#include

#include

struct nodo_clientes{

char id[18];

int días;

int dinero;

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

struct clientes_node *next;

};

struct clientes_node * p0,* head;

//#define N 100

struct clientes_node * Create_Cust_Doc(); //Nuevo

struct clientes_node * InsertDoc(struct clientes_node * head,char id[ ]); //Insertar

struct clientes_node * EliminarDoc(struct clientes_node * head,char id[ ]); //Eliminar

struct clientes_node * searchDoc(struct clientes_node * head,char id[ ] //Consulta

void); Print_Cust_Doc(struct clientes_node * head); //Función de información de llamada

struct clientes_node * clientes(struct clientes_node * p0); //¿Necesita asignar espacio de almacenamiento dinámico para p0?

int main (void)

{

estructura clientes_node * head;

int elección;

char id[18];

do{

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

printf("1.Crear(nuevo) 2.búsqueda(consulta) 3 .Insertar( Agregar) 4.Eliminar(Eliminar) 5.imprimir 0:Salir(Salir)\n");

printf("Seleccione:");

scanf( "%d ",&choice);

switch(choice){

caso 1:

head=Create_Cust_Doc();

break;

caso 2:

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

scanf("

%s",id);

head=searchDoc(head,id);

break;

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);

break;

caso 5:

Print_Cust_Doc(head);

descanso;

caso 0:

descanso;

}

} while(elección!=0 );

devuelve 0;

}

estructura clientes_nodo * clientes(estructura clientes_nodo * p0)

{

estructura clientes_nodo * p;

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

char id[18];

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

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

scanf("%s",id

printf("Usted ha iniciado sesión). ¡Ingresó exitosamente!\n");

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

printf(" 1. Habitación individual para humanos/noche 150 yuanes\n 2. Habitación doble/noche 200 yuanes\n 3. Habitación estándar/noche 300 yuanes\n 4. Suite presidencial/noche 600 yuanes\n");

scanf(" %d",&choice);

switch(choice) {

case 1:printf(" Ingrese el número de días para reservar\n"); ",&days);

money=days*150;

printf("Por favor, pague %d yuanes por adelantado\n",money);

printf (" 1. Confirmar (reserva exitosa) 2. Regresar (si reprogramar)\n"

scanf("%d",&z);

if(z= =1){

printf("Has realizado la reserva correctamente★ El número de habitación es: ");

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

}rotura;

caso 2:

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

scanf("%d",&days);

money=days*200;

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

printf(" 1. Confirmar (la reserva se realizó correctamente) 2. Regresar (si se debe volver a reservar)\n");

scanf("%d",&z);

if(z==1){

printf(" Tu reserva se ha realizado correctamente★La habitación el número es: ") ;

scanf("%s",roomnumber);

}break;

caso 3:printf(" Por favor, introduzca el número de días de reserva: ");

scanf("%d",&days);

money=days*300;

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

printf(" 1. Confirmar (reserva exitosa) 2. Regresar (si reprogramar)\n");

scanf( "%d",&z) ;

if(z==1){

printf(" Tu reserva se ha realizado correctamente★ El número de habitación es: ");

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

} descanso;

caso 4:printf(" Ingrese el número de días de reserva\n"); /p>

scanf("%d" ,&days);

money=days*600;

printf("Por favor, pague %d yuanes por adelantado\n", money);

printf (" 1. Confirmar (la reserva se realizó correctamente) 2. Regresar (si se vuelve a reservar)\n"); ;

if(z= =1){

printf("Has realizado una reserva correctamente★El número de habitación es: ");

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

}break;

default :printf(" Hay un error en su entrada, inténtelo de nuevo, gracias.

\n");

break;

p=(struct clientes_node *)malloc(sizeof(struct clientes_node)); // ¿Se pueden utilizar punteros para completar la transferencia de elementos estructurales?

strcpy(p->id,id);

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

p->días=días;

p->dinero=dinero;

return p;

}

estructura clientes_node * Create_Cust_Doc() //Nuevo

{

struct clientes_node * head,* p;

int size=sizeof(struct clientes_node);

p=(struct clientes_node *)malloc (tamaño);

head->next = NULL;

clientes(* p0); //Llamar función

//p=p0;

head->next=p;

return head;

}

struct clientes_node * InsertDoc(struct clientes_node * head);

{

struct clientes_nodo *q,*temp;

q=(struct clientes_nodo *)malloc(sizeof(struct clientes_nodo));

clientes (p0);

temp=p0; //Inserción de elementos no resueltos

q=head->next;

if(head->next = =NULL){

q=temp;

q->siguiente=NULL;

}

mientras(q-> next ) q=q->siguiente;

q->next=temp;

return head;

}

estructura clientes_nodo * searchDoc(struct customer_node * head,char id) // ¿Se pueden devolver todos los elementos de la estructura solo por id?

{

struct customer_node * p=head->next;

p=head->next;

if(head->next==null)

printf("Nadie se queda");

más{

<

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

p =p ->siguiente;

}

return p;

}

estructura nodo_clientes * DeleteDoc(estructura nodo_clientes * cabeza,char id)

{

estructura clientes_nodo * p,* q;

p=head->siguiente;

q=p- >siguiente ;

if(p==null)

return null;

while(p!=null){

if (strcmp (id,p->id)==0){

q=p;

gratis(p);

}

p=p->siguiente;

q=p->siguiente;

}

regresar cabeza;

}

void Print_Cust_Doc(struct clientes_node * head)

{

struct clientes_node * q;

if(head->next== null) {

printf("\nSin registro\n");

return ;

}

printf("Verificar- en el registro del cliente Sí:\n");

for(q=head->next;q;q=q->next){

printf("Número de tarjeta de identificación: %s\ t",q->id);

printf("Número de días de estancia: %d\t",q->days);

printf(" Pago por adelantado: %d \t",q->money);

printf("Número de habitación: %s\n",q->número de habitación);

}

}