Sistema de información de gestión de empleados C++
Ingrese 1 información de registro: al registrar la información del empleado, se le solicitará el número de empleados registrados, el sistema le dará automáticamente el número del empleado y luego ingresará el nombre y el sexo del empleado. , edad, educación, salario, dirección y número de contacto.
Ingrese 2 para buscar información: Una vez completada la operación, podrá buscar la información de todos los empleados de la empresa.
Ingrese 3 información de consulta: puede consultar la información de los empleados de la empresa en función de diferente información. Por ejemplo, según el número del empleado, las calificaciones académicas del empleado y el número de contacto del empleado. Conocer un dato sobre un empleado puede ayudarle a encontrar otra información sobre él o ella. Tenga en cuenta que puede encontrar información relevante con solo un poco de información.
Ingrese 4 para eliminar información: Al ingresar a esta interfaz, primero muestre la información de todos los empleados y luego ingrese el nombre del empleado que desea eliminar. Una vez completada la operación, se puede mostrar toda la información de los empleados eliminada.
Ingrese 5 para agregar información: después de ingresar a esta interfaz, primero se mostrará la información del empleado original, luego se solicitará la cantidad de personas para agregar información y luego se mostrará la información del nuevo empleado. ser ingresado. Una vez completada la operación, toda la información de los empleados se puede mostrar automáticamente.
Ingrese 6 para modificar la información: Luego de ingresar a la interfaz, se mostrará la información de todos los empleados y luego se le solicitará el nombre del empleado que se va a modificar. Después de ingresar, se mostrará la información original del empleado y se le preguntará si desea modificarla: ingrese 1 para modificar, ingrese 0 para no modificar. Cuando se requiere una modificación, se solicita el número de serie de la opción que se va a modificar y luego se realiza la modificación. Después de la modificación, el sistema muestra automáticamente la información del empleado modificado.
Adjunto: Código del sistema de gestión de información de empleados
file.c
Este archivo contiene principalmente funciones relacionadas con funciones de lectura y escritura de archivos.
/****************************************** *******************/?
/*?Archivo:? archivo.c? */?
/*************************************** *** **********************/?
¿#Contiene? & ltstdio.h & gt
¿#Contiene? & ltwindows.h & gt
¿#Contiene? & lttime.h & gt
¿#Contiene? & ltstring.h & gt
#¿Definición? ¿norte? 100?/*Definición de macro*/
estructura? Empleado
{?int? número? /*Número de empleado*/
¿Carácter? Nombre[10];/*Nombre del empleado*/
Char? Sexo[4];/*Género del empleado*/
¿Caracter? Bir[16];? /*Fecha de nacimiento del empleado*/
Char? Li Xue[30];/*Educación del personal*/
int? salario;? /*Salario del empleado*/
Shar? dirección[30];? /*Dirección del empleado*/
Shar? Teléfono[20];*Número de teléfono del empleado*/
} em[100];? /*Definir una estructura*/
¿No es válido? menú()? /*Función de menú*/
{
printf("?☆☆☆Sistema de información y gestión de información☆☆\ n ");
printf(" \n ");
printf("B0902? Marte\n");
printf(" \n ");
Printf ("* * * * * * * * * * * *Gestión de información del empleado* * * * * * * * * * * * * * * * \ n ");
Printf("1. Ingrese la información del empleado"
Printf("2. Buscar información del empleado\ n ");
Printf("3. Consultar información del empleado"); 4. Eliminar información del empleado\ n ");
Printf("5. Agregar información del empleado");
Printf("6. Modificar información del empleado\ n "); p>
p>
Printf("7.
Salga del sistema de gestión\n ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
printf(" \ n ");
printf(" \ n ");
}
p>
¿No válido? main()
{
menú(); /*Llamar función de menú*/
int?
Char? a;
Hacer
{?Printf("Seleccione los pasos que necesita realizar (1-7):\ n ");
scanf("%d ", & ampn);
If (n & gt=1. & ampn & lt=7)
{ p>
flag = 1;
Romper;
}
Otro
{
flag = 0;
Printf("¡Ingresaste un error, elige nuevamente!");
}
}
mientras(bandera = = 0);
mientras(bandera==1)
{?switch(n)
{
Caso 1? : printf ("◆◆◆◆Ingrese la información del empleado◆◆\ n "); printf (" \ n "); break(); ◆◆\ nBuscar información de los empleados◆◆\n");printf("\n");display();break;
¿Caso? 3:printf("?◆◆\nConsultar información de los empleados◆◆ \ n"); printf(" \ n "); search(); break;?
Caso? 4: printf("?◆◆\nEliminar información del empleado◆◆\n"); printf( " \ n "); del(); break;
Caso? 5: printf ("? ◆◆\nAgregar información del empleado ◆◆\ n"); ); break;
Caso? 6: printf ("? ◆◆\nModificar información del empleado ◆◆\ n");
Caso 7: salida(0); interrupción;
Incumplimiento:interrupción
}
getchar();
printf(" \ n ");
Printf("¿Quieres continuar(y? ¿aún? n):\ n");
scanf("%c ", & ampa);
if(a=='y ')
{
flag = 1;
System("cls");? /*Borrar la pantalla*/
menu(); /*Llamar al menú function* /
Printf("Vuelva a seleccionar los pasos que requieren operación (1-6):\ n ";
scanf("%d ", & ampn); /p >
printf(" \ n ");
}
¿Y si
Salir(0);
}
}
Entrada()/*función de entrada*/
{
int >
Printf(" Ingrese el número de empleados que necesitan crear información (1-100):\ n ");
scanf("%d ", & ampm);
¿Para qué? (I = 0;i<m;i++)
{
Printf("Número de empleado:");
srand((int )time(0)) ;
em[i].num = rand()% 100020000000;
if(em[i].num!=em[i- 1]. Número)
printf("%8d?", em[i].num);
printf("\n");
Printf("Por favor, introduzca su nombre:?");
scanf("%s ",&em[i].Nombre);
getchar();
Printf("Por favor ingrese el género:?");
scanf("%s ", & ampem[i].
género);
Printf("Ingrese su fecha de nacimiento:");
scanf("%s ", & ampem[i]. Bir);
Printf("Ingrese sus calificaciones académicas:?");
scanf("%s ", & ampem[i]. Li Xue);
Printf(" Ingrese su salario: ? ");
scanf("%d ", & ampem[i]. Salario);
Printf("Ingrese su dirección:?") ;
scanf("%s ",&em[i].addr);
Printf("Por favor, introduzca el número de teléfono:?");
scanf("% s ", & ampem[i]. teléfono
printf(" \n "); n Creado! \ n ");
Guardar(m);
}
¿No es válido? Guardar(int?M)/*Función guardar archivo*/
{
int? Yo;
ARCHIVO *fp
¿Si? ((fp=fopen("employee_list "," WB ")== NULL)?/*Crear un archivo y determinar si se puede abrir*/
{
printf? (" ¿No puedo? Abrir? archivo\n");
Salir(0);
}
¿Para qué (I = 0; I<m? ;I++ )/*Enviar la información del empleado en la memoria al archivo de disco*/
If? (fwrite(& em[i], sizeof(struct? empleado), 1, fp)!=1)
printf("¿archivo? ¿Escribir? Error\n ");
fclose(FP);
}
int ¿Cargar? ()/*Función de importación*/
{
ARCHIVO * fp
int? I = 0;
if((fp) =fopen("employee_list","Rb")= = NULL)
{
printf? ("¿No se puede? abrir? archivo\n");
Salir(0);
}
¿Qué más?
{
¿Qué hacer? {
fred(& ampem[i], sizeof(struct? empleado), 1,
i++; p>mientras(feof(FP)= = 0);
}
fclose(FP);
Retorno (I-1);
p>
}
¿Desactivado? Display()/*función de navegación*/
{
int?
int? m = load();
printf("\n?Número de empleado\tNombre\tSexo\Fecha de nacimiento\tEducación\tSalario\tDirección\tTeléfono\n");
for(I = 0;I<m;I++)/*m es el número de empleados en la parte de entrada*/
printf("\n?% 6d\t %s\t% 4s \ t % s \ t % s \ t % d \ t % s \ t % s \ n ", em[i]. num, em[i]. Nombre, em[i]. Sexo, em[i]. bir, em[i]. Li Xue, em[i]. Salario, em[i].
Teléfono);?
}
¿Anulado? del()? /*Eliminar función*/
{?int? m = cargar();
int? I, j, n, t, bandera
¿Carácter? Nombre[20];
printf("\n?Información original del empleado:\n");
Pantalla();? /*?Llame a la función de exploración*/
printf(" \ n ");
Printf("Ingrese el nombre del empleado que desea eliminar:\ n ");
scanf("%s",nombre);
for(flag=1,i=0;flag&&i<m;i++)
{ p>
if(strcmp(em[i].name, name)==0)
{
printf("\nEsta persona ha sido encontrada, el registro original es: \n ");
printf("\nNúmero de empleado\tNombre\tSexo\Fecha de nacimiento\tEducación\tEdad\tDirección\tTeléfono\n");
printf(" \ n % d \ t % s \ t % s \ t % s \ t % s \ t % d \ t % s \ t % s \ n ", em[i].num, em[i ]. Nombre, em [i]. bir, em[i]. Salario, em[i];?
printf("\nPresione 1 para eliminar la información de esta persona, o presione 0\n "para no eliminar);
scanf("%d ", & ampn); p >
If(n==1)/*Si se elimina, toda la demás información se moverá una línea hacia arriba*/
{
for(j = I; j & ltm- 1; j++)
{
strcpy(em[j].Nombre, em[j+1].Nombre);
em[ j]. número=em[j+1]. num
strcpy(em[j]. Sexo, em[j+1]. Sexo);
strcpy(em[j].bir, em[j+1]. Bir);
strcpy(em[j]. Li Xue, Mediterráneo Oriental. Li Xue);
em[j]. Salario=em[j+1]. salario;?
strcpy(em[j].Dirección, em[j+1].addr);
strcpy(em[j].Teléfono, em[j+1].
teléfono);
}
bandera = 0;
}
}
}
if (! flag)
m = m-1;
other
printf("\n¡Lo sentimos, no existe tal persona!\n " );
printf("\n? Explorar toda la información de los empleados eliminados:\ n ");
Guardar (m); /*Llamar a la función de guardar*/
mostrar();? /*Llamar a la función de navegación*/
printf("\nPresione 1 para continuar eliminando, presione 0 para detener la eliminación\n");
scanf("%d ", & ampt) ;
Interruptor(t)
{
¿Caso? 1:del(); romper;
¿Caso? 0: Desconectar;
¿Incumplimiento de contrato? :break
}
}
¿No es válido? Agregar()/*Agregar función*/
{
ARCHIVO * fp
int? n;
int? recuento = 0;
int? Yo;
int? m = load();
printf("\n?Información original del empleado:\n");
Display();? /*?Llamar a la función de navegación*/
printf(" \ n ");
fp=fopen("emploee_list ", " a "); > Printf("Ingrese el número de empleados que desea agregar: \ n ");
scanf("%d ", & ampn);
¿Para qué? (I = m;I<(m+n);i++)
{
printf("\n? Ingrese la información del empleado recién agregado:\n ");
Printf("Ingrese el número de empleado:?");
srand((int)time(0));
em[i]. num = rand()% 100020000000;
if(em[i].num!=em[i-1].Number)
printf("%8d?" , em[i].num);
printf("\n");
Printf("Por favor, introduzca su nombre:?");
scanf("%s ",&em[i].Name);
getchar();
Printf("Ingrese el género:?");
scanf("%s ",& ampem[i]. Sexo);
Printf("Por favor, ingresa tu fecha de nacimiento:");
scanf("%s " , & ampem[i]. Bir);
Printf("Ingrese sus calificaciones académicas:?"
scanf("%s ", & ampem[i]. Li Xue );
Printf("Ingrese el salario:?");
scanf("%d ", & ampem[i].Salario);
Printf("Ingrese su dirección:?");
scanf("%s ", & ampem[i].addr);
Printf("Ingrese una número de teléfono :? ");
scanf("%s ",& ampem[i].
Teléfono);
printf("\n");
count = count+1;
Printf("número de personas aumentó:\n") ;
printf("%d\n ",count);
}
printf("\n¡Agregado completado!\n");?
m = m+count;
printf(" \ nBuscar toda la información agregada de los empleados:\ n ");
printf(" \ n ");
Guardar(m);
Mostrar();
fclose(FP);
}
¿Anulado? Buscar()/*función de consulta*/
{
int? t, flag;
Do
{
printf(" \nPara consultar por número de empleado, presione 1?;? Para consultar por calificación académica, por favor presione 2? ? Presione 3 para consultar el número de teléfono y 4 para la función principal \n ");
scanf("%d ",&t);
if(t>= 1. & ampt & lt=4)
{
flag = 1;
descanso;
}
Otros
{
flag = 0;
Printf("¡Ingresaste un error, selecciona nuevamente!");
}
}
mientras(bandera = = 0);
mientras(bandera==1)
{
Interruptor(t)
{?
¿Caso? 1:printf("Buscar por número de empleado\n "); Rotura;
¿Caso? 2:printf("Buscar por calificaciones académicas\ n "); buscar _Li Xue();
¿Caso? 3:printf("Buscar por número de teléfono\n "); search_tel(); break;
¿Caso? 4:main(); romper;
Predeterminado: romper
}
}
}
No válido ? núm_búsqueda()
{
int? número
int? Yo, t;
int? m = load();
Printf("Ingrese el número de empleado que está buscando (20001111-2000999):\ n ");
scanf("%d ", & ampnum);
for(I = 0;i<m;i++)
if(num==em[i].número)
{? /p>
printf("\nEsta persona ha sido encontrada y su registro es:\n");
printf("\nNúmero de empleado\tNombre\tSexo\Fecha de nacimiento\tEducación \tEdad \tDirección\tTeléfono\n");
printf(" \n % d \t % s \t % s \t % s \t % s \t % d \t % s \ t % s \ n ", em[i]. num, em[i]. Nombre, em[i]. Sexo, em[i]. bir, em[i]. Li Xue, em[i] . Salario, em[ i]. Dirección, em[i].
Teléfono);?
Romper;
}
si(i==m)?
printf("\nLo sentimos, esta persona no fue encontrada\n");
printf("\n");
Printf("Presione 1 Regrese a la función de consulta, presione 2\n "Continuar consultando el número de empleado);
scanf("%d ",&t);
Cambiar (t)
{?
¿Caso? 1:búsqueda(); descanso;
¿Caso? 2:? Romper;
Predeterminado: romper
}
}
¿No es válido? Search_Li Xue()
{
¿Carácter? Li Xue[30];
int? Yo, t;
int? m = load();
Printf("Ingrese las calificaciones académicas que está buscando:\ n ");
scanf("%s ", Li Xue);< /p >
for(I = 0;i<m;i++)
if(strcmp(em[i].李雪,李雪)==0)
{
printf("\nRegistro encontrado:\n");
printf("\nNúmero de empleado\tNombre\tSexo\Fecha de nacimiento\tEducación\tEdad\tDirección \tTeléfono\n ");
printf(" \n % d \t % s \t % s \t % s \t % s \t % d \t % s \t % s \ n ", em [i]. num, em[i]. Nombre, em[i]. Sexo, em[i]. [i].
}
si(i==m)?
printf("\nLo sentimos, esta persona no fue encontrada\n");
printf("\n");
Printf("Presione 1 Regrese a la función de consulta, presione 2\n "Continuar consulta de calificación académica);
scanf("%d ",&t);
Cambiar (t)
{?
¿Caso? 1:búsqueda(); descanso;
¿Caso? 2: Roto;
¿Incumplimiento de contrato? :break
}
}
¿No es válido? search_tel()
{
¿Carácter? Teléfono[20];
int? I,? t;
int? m = load();
Printf("Ingrese el número de teléfono que está buscando:\ n ");
scanf("%ld ",& número de teléfono);
for(I = 0;i<m;i++)
if(strcmp(em[i].tel,tel)==0)
{ ?
printf("\nEsta persona ha sido encontrada y su registro es:\n");
printf("\nNúmero de empleado\tNombre\tSexo\Fecha de nacimiento\t Educación \tEdad\tDirección\tTeléfono\n");
printf("\n % d\t % s\t % s\t % s\t % s\t % d\ t % s \ t % s \ n ", em[i]. num, em[i]. Nombre, em[i]. Sexo, em[i]. bir, em[i]. Li Xue, em[i ]. Salario, em[i]. Dirección, em[i].
Teléfono);?
Romper;
}
si(i==m)?
printf("\nLo sentimos, esta persona no fue encontrada\n");
printf("\n");
Printf("Presione 1 Regrese a la función de consulta, presione 2\n "Continuar consultando el número de teléfono);
scanf("%d ",&t);
Cambiar (t)
{?
¿Caso? 1:búsqueda(); descanso;
¿Caso? 2: Roto;
¿Incumplimiento de contrato? :break
}
}
¿No es válido? Modificar()/*Modificar función*/
{
int? núm
¿Carácter? Nombre[10];
¿Carácter? Sexo[4];?
¿Ciel? Bir[20];
¿Carbón? Li Xue[30];
int? Salario;
Char? addr[30];
¿Carácter? Teléfono[20];
int? b, c, i, n, t, bandera?
int? m = cargar();? /*Información en el archivo de importación*/
printf("\n?Información original del empleado:\n");
Display();? /*?Llame a la función de exploración*/
printf(" \ n ");
Printf("Ingrese el nombre del empleado que desea modificar:\ n ");
scanf("%s",nombre);
for(flag=1,i=0;flag&&i<m;i++)
{ p>
if(strcmp(em[i].name, name)==0)
{
printf("\nEsta persona ha sido encontrada, el registro original es: \n ");
printf("\nNúmero de empleado\tNombre\tSexo\Fecha de nacimiento\tEducación\tEdad\tDirección\tTeléfono\n");
printf(" \ n % d \ t % s \ t % s \ t % s \ t % s \ t % d \ t % s \ t % s \ n ", em[i].num, em[i ]. Nombre, em [i]. bir, em[i]. Salario, em[i];?
printf("\n¿Está seguro de que desea modificar la información de esta persona, por favor presione 1?;? Presione 0\n") sin modificar;
scanf("%d " , & ampn);
if (n==1)
{
printf("\nOpciones que deben modificarse\n? 1. Empleados No. 3. ¿Género? 5. ¿Educación? 7. ¿Número de teléfono?
Printf("Ingrese el número de serie que desea modificar:\ n ");?
scanf("%d ",&c);?
if(c & gt; 8 | | c & lt1)?
printf("\nSelección incorrecta, ¡seleccione nuevamente!\n");?
}
bandera = 0
}
}
if(bandera==1)
printf("\n¡Lo siento, no existe tal persona!\n");?
¿Qué hacer?
{
¿Interruptor (c)? /*Debido a que agregué 1 después de la declaración for al encontrar al I-ésimo empleado, la siguiente información debe asignarse a la persona i-1*/
{?
¿Caso? 1:printf("¿El número de empleado cambió a:?");
scanf("%d ", & ampnum);
em[i-1]. num = num
Romper;?
¿Caso? 2:printf("¿Nombre cambiado a:?");
scanf("%s ", nombre);
strcpy(em[i-1]). Nombre, título);?
¿Romper;?
¿Caso? 3:printf("El género cambió a:?");
scanf("%s ", género);
strcpy(em[i-1]).
Sexo, sexo);
Romper;?
¿Caso? 4:printf("La fecha de nacimiento cambió a:?");
scanf("%s ", Bir);
strcpy(em[i-1]). bir, Bir);
Romper;?
¿Caso? 5:printf("La educación cambió a:?");
scanf("%s ", Li Xue);
strcpy(em[i-1]). Li Xue, Li Xue);?
Romper;?
¿Caso? 6:printf("¿Salario cambiado a:?");
scanf("%d ",& salario);
Descanso;?
¿Caso? 7:printf("¿La dirección cambió a:?");
scanf("%s ", addr);
strcpy(em[i-1]). addr,addr);
Romper;?
¿Caso? 8:printf("¿Cambiar el número de teléfono a:?");
scanf("%s ", número de teléfono);
strcpy(em[i-1]).
teléfono, teléfono);
Romper;?
}?
printf(" \ n ");
printf(" \ n¿Estás seguro de que deseas modificar la información?\n? ¿Cuál es el ¿Importa? Por favor presione 1;? No, por favor presione 2:?
scanf("%d ", & ampb);
}?
mientras(b = = 2
printf); (" \ nExaminar toda la información de los empleados modificados: \ n ");
printf(" \ n "); );
printf(" \nPresione 1 para continuar con la modificación, presione 0\n "para detener la modificación);
scanf("%d ",&t);
Interruptor(t)
{
¿Caso? 1:modificar(); romper;
¿Caso? 0: Desconectar;
¿Incumplimiento de contrato? :romper
}
}