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]; p>
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? p>
strcpy(p->id,id);
strcpy(p->número de habitación,número de habitación);
p->días=días; p>
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; p>
head->next=p;
return head;
}
struct clientes_node * InsertDoc(struct clientes_node * head); p>
{
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>
p=head->next;
if(head->next==null)
printf("Nadie se queda"); p>
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;
} p>
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);
} p>
}