Solicitar una pregunta sobre programación en lenguaje C (programa de gestión de información de empleados)
//Me tomó 2,5 horas escribir este programa
//Me tomó otra hora probarlo y todo estuvo correcto
//Entonces debe ser Si quieres darme puntos extra, necesito más de 100 puntos, jaja
//De lo contrario no tendré la confianza para ayudarte a escribir la próxima vez
//Sistema de Gestión de Empleados
//Número de empleado, nombre, sexo, edad, educación, salario, dirección, número de teléfono, etc.
/*
1. Ingrese la información del empleado. Si el número de empleado ingresado se repite, aparecerá un mensaje
2. Busque la información del empleado
3. y nombre;
4. Eliminar información del empleado por número de empleado.
*/
#include lt;stdio.hgt;
#include lt;stdlib.hgt;
#include lt; string.hgt;
//La estructura de información del empleado se define a continuación
struct WORKER{
int id; //Número de empleado
char nombre[20]; //Nombre
char sex[3]; //Género
int edad; //Edad
char edu[50 ]; //Educación
int salarios; //Salario
char adr[255]; //Dirección
char phone[13]; p>
};
typedef struct WORKER *PWORKER;
struct LINK{
WORKER w;
LINK *next ;
};
typedef struct LINK *PLINK;
//Crear lista de enlaces de información de empleados
PLINK create()
{
PLINK p=(PLINK)malloc(sizeof(struct LINK));
if(NULL!=p)
{
p-gt; next=NULL;
return p;
}
printf("¡Memoria insuficiente!\n ");
return NULL;
}
//Mostrar texto de la interfaz del programa
mensaje vacío()
{
system("cls");
printf("Bienvenido al sistema de gestión de empleados\n");
printf(" -- Para obtener ayuda, ingrese: 0\n");
printf(" --Ingrese la información del empleado, ingrese: 1\n");
printf(" --Examinar información del empleado, ingrese: 2\ n");
printf(" --Para consultar por número de empleado, ingrese: 3\n");
printf(" - -Para consultar por nombre, ingrese: 4\n ");
printf(" --Para eliminar información del empleado, ingrese: 5\n");
printf( "\n --Para borrar la pantalla, ingrese: 6\n" ;
printf(" --Ingrese: -1\n" para salir
); }
//Ingrese la información del empleado
int add(PLINK p)
{
PLINK q=(PLINK)malloc(sizeof (struct LINK));
if(NULL== q)
{
printf("Mensaje de error de entrada: ¡memoria insuficiente!\n");
return -1;
}
printf("Ingrese el número de empleado (número):
scanf( "d", amplificador; q-gt; w.id);
PLINK h=p-gt;
/p>
while(h)
{
if(h-gt; w.id==q-gt; w.id)
{
free(q);
printf("Aviso de error de entrada: ¡Este número de empleado ya existe!\n");
}
h=h-gt; next;
}
printf("Ingrese el nombre del empleado (texto): " );
scanf("s", amp; q-gt; w.name);
printf("Ingrese el género del empleado (texto): ");
scanf("s",amp; q-gt; w.sex);
printf("Ingrese la edad del empleado (número):");
scanf ("d", & q-gt; w.age);
printf("Ingrese las calificaciones académicas del empleado (texto):
scanf("); s", amp; q-gt; w.edu);
printf ("Ingrese el salario del empleado (número): ");
scanf ("d", amp; q-gt ; w.wages);
printf ("Ingrese la dirección del empleado (texto):
scanf ("s", amp; q-gt; w.adr) ;
printf("Ingrese el número de teléfono del empleado (texto):");
scanf("s", amp; q-gt; w.phone );
q-gt; siguiente=p-gt; siguiente;
p-gt; siguiente=q; n");
p>return -1;
}
//Buscar información de los empleados
void show(PLINK p)
{
mensaje();
printf("Buscar información del empleado\n");
printf("ID del empleado\ tNombre\tSexo\tEdad \tEducación\tSalario\tDirección\tNúmero de teléfono\n");
while(NULL!=p-gt;next)
{
printf("d\ts\ts\td\ts\td\ts\ts\n",
p-gt;next-gt;w.id,p-gt;next-gt ;w .nombre,p-gt;next-gt;w.sex,p-gt;next-gt;w.adr,
p-gt;next-gt;w.edu,p- gt; siguiente-gt;w.salarios,p-gt;siguiente-gt;w.adr,p-gt;siguiente-gt;w.phone);
p=p-gt;siguiente;
p>}
printf("¡Visualización completada!\n");
}
//Consulta por número de empleado
PLINK findid(PLINK p, int id)
{
mensaje();
printf("Consulta por número de empleado\n ");
printf("ID del empleado\tNombre\tGénero\tEdad\tEducación\tSalario\tDirección\tNúmero de teléfono\n");
while(NULL!=p -gt ;siguiente)
p>
{
if(p-gt; next-gt; w.id==id)
{
printf("d\ ts\ts\td\ts\td\ts\ts\n",
p-gt; next-gt; w.id, p-gt; next-gt; w.name, p- gt;next-gt;w.sex,p-gt;next-gt;w.adr,
p-gt;next-gt;w.edu,p-gt;next-gt;w .salarios, p-gt; siguiente-gt; w.adr, p-gt; siguiente-gt;
retorno
}
p=p-gt; siguiente;
}
printf("¡Consulta finalizada!\n"); >
}
//Consulta por nombre
PLINK findname(PLINK p, char *name)
{
mensaje ();
printf("Consulta por nombre\n");
printf("ID de empleado\tNombre\tGénero\tEdad\tEducación\tSalario\t Dirección\tNúmero de teléfono\ n");
while(NULL!=p-gt;next)
{
if(0==strcmp(p -gt; next- gt; w.nombre, nombre))
{
printf("d\ts\ts\td\ts\td\ts\ts\n" ,
p-gt; siguiente-gt; w.id, p-gt; siguiente-gt; ,
p-gt; siguiente-gt; w.edu, p-gt; siguiente-gt; gt; w.teléfono);
devolver p;
}
p=p-gt; p>
printf("¡Consulta finalizada!\n");
return NULL
}
//Por empleado Eliminar información del empleado p>
int del(PLINK p, int id)
{
message();
printf("Presione el número de empleado para eliminar la información del empleado\ n");
while(NULL!=p-gt;next)
{
if(p-gt;next -gt;w.id ==id)
{
PLINK q=p-gt;siguiente;
p-gt;siguiente=p-gt ; ;
free(q);
printf("¡Eliminación exitosa!\n");
return
}
p=p-gt; next;
}
printf("¡No ingresó ningún número de empleado!\n"); p> devolver -1;
}
>//Liberar memoria cuando finalice el programa
void release(PLINK p)
{
PLINK q;
while(NULL ! =p-gt;siguiente)
{
q=p;
p=p-gt;siguiente;
gratis ( q);
}
libre(p);
}
int main()
{
int cmd=0; // Número de comando
int id;
nombre de char[20];
if(!(pworker=create()))
{
exit(0);//Si falla la creación del encabezado de la lista de información de los empleados , finalice el programa
}
while(cmd!=-1)
{
switch(cmd)
{
caso 0:
mensaje();
descanso
caso 1:
agregar(pworker );
romper
caso 2:
mostrar(pworker);
caso 3:
printf("Ingrese el número de empleado a consultar: ");
scanf("d", id
findid( pworker, id);
break;
caso 4:
printf("Ingrese el nombre del trabajo a consultar: "); /p>
scanf("s", nombre);
findname(pworker, nombre
break
caso 5:
p>
printf("Ingrese el número de empleado que desea eliminar: ");
scanf("d", id
del(pworker, id);
descanso;
caso 6:
predeterminado:
mensaje(); >
printf("Ingrese el número de comando de operación:\n");
scanf("d", amp; cmd); //Recibir comando
}
printf("¡Gracias por usar!\n");
release(pworker);
return
}
//El procedimiento se explica en detalle
//Espero que estudies mucho en el futuro.