Red de conocimiento de abogados - Derecho de sociedades - Solicitar una pregunta sobre programación en lenguaje C (programa de gestión de información de empleados)

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

};

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

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.