¡La programación del sistema de gestión en lenguaje C es urgente!
# incluir & ltwindows.h & gt
# incluir & lttime.h & gt
# incluir & ltstring. h & gt
#Definición número 100
Empleado de estructura
{
int num
Nombre del personaje[ 10];
Chaer Zhicheng;
int Yoshimoto;
int Jiangjin;
int Baoxian;
int zafei
int "Registros históricos";
} em[100];/*Definir una estructura*/
void menu();
void input();
void save(int);
void display();
void del();
void save(int);
void display();
void del();
void save(int); >búsqueda vacía();
búsqueda vacía _ zhi cheng();
nombre de búsqueda vacía();
modificación vacía(); function*/
Menú nulo() /*Función de menú*/
{
printf(" \ n ");
p>printf(" Netmeter 091 Grupo 7 \ n ");
printf(" \ n "
Printf ("* * * * * * * * * * *); *Gestión de información de empleados* * * * * * * * * * * * * * * * \ n ");
Printf(" 1. Ingrese la información del empleado");
Printf(" 2. Examinar información del empleado\ n ");
Printf(" 3. Consultar información del empleado"
Printf(" 4. Eliminar información del empleado\ n ")
Printf(" 5. Modificar la información del empleado\ n ");
Printf(" 6. Salir\ n "); * * * * * * * * * * * * * * * Gracias por usar * * * * * * * * * * * * \ n ");
printf(" \ n ") ;
printf(" \ n ");
}
void main()
{
int n, flag
char a;
while(1)
{
Hacer
{
menu(); /*Llamada a la función de menú*/
Printf("Seleccione los pasos que necesita para operar (1-6):\ n ");
scanf("%d ", & ampn);
Si (n & gt=1.
& ampn & lt=6)
{
bandera = 1;
descanso
}
Otros
{
flag = 0;
Printf("¡Ingresaste un error, selecciona nuevamente!");
}
} while(flag = = 0);
Cambiar (n)
{
Caso 1:printf("Ingrese empleado información \ n "); printf (" \ n "); input (); break;
Caso 2: printf ("Buscar información del empleado\ n "); printf (" \ n "); sistema ( "cls"); display(); break;
Caso 3: printf("Consultar información del empleado por número de empleado\n"); ; search(); break;
Caso 4: printf("Eliminar información del empleado\n"); printf("\n"); /p> p>
Caso 5: printf("Modificar información del empleado\ n "); printf(" \ n "); sistema ("cls"); Caso 6: ir a la
Predeterminado: break
}
}
Los Ángeles:
Sistema ( "cls") ;
printf(" \ n \ n \ n \ n \ n¡Gracias por tu uso! \ n "); void input() /*Función de entrada*/
{
int i, m;
Printf("Ingrese el número de empleados que necesitan crear información (1-100): \ n ");
scanf("%d ", &m);
for(I = 0;i<m;i++)
{
Printf("Ingrese el número de empleado:");
scanf("%d ", & ampem[i].num); Aquí está mal, se debe usar una matriz Subíndice.
printf(" \ n ");
Printf("Por favor ingrese su nombre:");
scanf("%s ",em[ i ]. Nombre); //Este código es incorrecto, debes usar subíndices de matriz.
getchar();
Printf("Ingrese el título:");
scanf("%c ", & ampem[i]. Zhicheng ); //El código aquí es incorrecto, se deben usar subíndices de matriz.
Printf("Ingrese el salario básico:");
scanf("%d ", & ampem[i]. Yoshimoto //El código aquí es incorrecto, an); Se debe utilizar la matriz Subíndice.
Printf("Ingrese bonificación:");
scanf("%d ", & ampem[i]. Jiangjin // El código aquí es incorrecto, debería); utilice una marca de matriz.
Printf("Ingrese el seguro:");
scanf("%d ", & ampem[i]. Baoxian); //El código aquí es incorrecto, una matriz debe utilizarse subíndice.
Printf("Ingrese tarifas diversas:");
scanf("%d ", & ampem[i].zafei); //El código aquí es incorrecto, usted debe utilizar una marca de matriz.
em[i]. shiji=em[yo]. jiben + em[yo]. Jiangjin-em[i]. Baoxiano - em[i]. Zafei; // El código aquí es incorrecto, se deben usar subíndices de matriz.
printf(" \n ");
}
printf(" \nCreado!\n "); p>
Guardar(m);
}
Void save(int m) /*Función guardar archivo*/
{ p>
int I;
FILE * fp
If ((FP = fopen ("employee_list","WB")== null)/*Crear un archivo para determinar si se puede abrir*/
{
printf("No se puede abrir el archivo\n ");
Salir (0);
}
for(I = 0;I& ltm;I++) /*Envía la información del empleado en la memoria a un archivo de disco*/
if(fwrite(& amp ;em, sizeof(estructura empleado),1,fp)!=1)
printf("Error de escritura de archivo\n ");
fclose(FP);
p>
}
Int load() /*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);
}
Otro
{
Hacer
{
Fred(& ampem, tamaño de (estructura empleado), 1, FP
i++; p>
mientras(feof(FP)== 0);
}
fclose(FP);
Retorno (I-1) ;
}
Visualización nula() /*Función de exploración*/
{
int I;
int m = load();
printf("\nNúmero de empleado\tNombre\tPosición\tSalario básico\tResponsabilidades\tSeguros\tOtros gastos\tSalario real\n") ;
para (I = 0;I<m;I++) /*m es el número de empleados en la parte de entrada*/
printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i]. número,em[i]. Nombre, em[i]. Zhicheng, em[yo]. Gibbon, em[yo]. Jiangjin, em[yo]. Baoxian, em[yo]. zafei,em[i]. "Registros históricos"); //El código aquí es incorrecto, se deben utilizar subíndices de matriz.
Printf("Presione cualquier tecla para continuar\n ");
getchar(); getchar() system("cls");
Void del() /*Eliminar función*/
{
int m = load();
int i, j , n, t, bandera
nombre de char 1[10];
printf("\ninformación original del empleado:\n");
display() ;/*Llame a la función de exploración*/
printf(" \ n ");
Printf("Ingrese el nombre del empleado que desea eliminar:\ n ");
scanf("%s ",nombre 1);
for(flag=1,i=0;flag&&i<m;i++)
{
if(strcmp(em[i].name, name1)==0)
{
printf("\nEsta persona ha sido encontrada, el registro original es: \n ");
printf("\nNúmero de empleado\tNombre\tPosición\tSalario básico\tResponsabilidades\tSeguros\tOtros gastos\tSalario real\n");
printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i] . num, em[i]. Zhicheng, em[i]. Baoxian, em[i]. ]. "Registros históricos");
printf(" \nPresione 1 para eliminar la información de esta persona, o presione 0\n "para no eliminarla);
scanf("%d ", &n);
If(n==1) /*Si se elimina, el resto de la información subirá una línea*/
{
for(j = I; j & ltm-1; j++)
{
em[j]= em[j+1 ];
}
bandera = 0;
}
}
}
if (!flag)
m = m-1;
Otros
printf("\n¡Lo sentimos, no existe tal persona!\n" );
printf("\nExaminar toda la información de los empleados eliminados: \ n "
Guardar (m /*Llamar a la función de guardar*/
Display(); /*Llamar a la función de exploración*/ p>
printf("\nPresione 1 para continuar con la eliminación, presione 0 para detener la eliminación\n");
scanf(" %d ",&t);
Interruptor (t)
{
Caso 1: del(); break;
Caso 0: pausa;
Predeterminado: pausa
}Sistema("cls");
}
Búsqueda nula()/* función de consulta*/
{
int t, flag
Do
{
printf("\ nPresione 1 para consultar por nombre; presione 2 para consultar por título de trabajo Presione 3\n" para ingresar a la función principal);
scanf("%d ",&t);
if(t>=1.
&t & lt=3)
{
flag = 1;
descanso;
}
Otros
{
flag = 0;
Printf("¡Ingresaste un error, selecciona nuevamente!");
}
} mientras(bandera == 0); sistema("cls");
mientras(bandera==1)
{
Switch(t)
{
Caso 1:printf("Consulta por nombre\n "); Buscar nombre();
Caso 2 :printf("Consulta por título\n "); buscar _ zhi cheng(); break;
Caso 3: main()
Predeterminado: break
}
System("cls");
}
}
void search_name()
{
nombre de carácter 1[10];
int i, t
int m = cargar(); >Printf("Ingrese el nombre que está buscando: \ n ");
scanf("%s ", nombre 1
for(I = 0; I<m); ;i++)
if(strcmp(name1,em[i].name)==0)
{
printf("\nEsto ha sido encontrado Persona, cuyo registro es:\n ");
printf("\nNúmero de empleado\tNombre\tCargo\tSalario básico\tResponsabilidad\tSeguros\tOtros gastos\tSalario real\ n ");
printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ", em[i]. num, em [i]. Zhicheng, em[i]. Baoxian, em[i]. , em[i]. "Registros históricos"); >
If (i==m)
printf ("\nLo sentimos, esta persona no fue encontrada\n");
printf("\n");
Printf("Presione 1 para regresar a la función de consulta, presione 2\n "Continuar consultando el número de empleado);
scanf("%d ", & ampt); p>
Cambiar (t)
{
Caso 1: búsqueda();
Caso 2: ruptura
Predeterminado: romper
}
} p>
void search_zhicheng()
{
Chaerzhicheng;
int i, t = 0;
int m = load();
System("cls");
Printf( "Ingrese el título que está buscando:\n ");
scanf("%c", & Zhicheng); //Utilice la dirección aquí.
for(I = 0;i<m;i++)
if(em[i].
Zhicheng = = Zhicheng)
{
printf("\nRegistro encontrado:\n");
printf("\nNúmero de empleado\ tNombre\tPosición\ tSalario básico\tResponsabilidad\tSeguros\tOtros gastos\tSalario real\n ");
printf("\n % d\t % s\t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ", em[i]. num, em[i]. Nombre, em[i]. Zhicheng, em[i] . Yoshimoto, em[i]. Baoxian, em[ i]. "Registros históricos");
}
if (i==m)
printf("\nLo sentimos, esta persona no fue encontrada\ n");
printf("\n");
Printf("Presione 1 para regresar a la función de consulta, presione 2\n "para continuar con la consulta de calificación académica) ;
scanf("%d ",&t);
Interruptor (t)
{
Caso 1: sistema(" cls "); search(); roto;
Caso 2: roto;
Predeterminado: break
}
} p>
Void modificar() /*Modificar función*/
{
int num
Nombre del personaje[10];
Char Zhicheng;
int Yoshimoto;
int Jiangjin;
p>int Baoxian;
int zafei
int "Registros históricos";
int b, c, I, n, t, flag
int m = load() /*Información en el archivo importado*; /
printf("\nInformación original del empleado:\n ");
display();/*Llamar a la función de exploración*/
printf(" \ n ");
Printf("Ingrese el nombre del empleado que desea modificar:\ n ");
scanf("%s ",nombre); p>
for(bandera=1,i=0;bandera&&i<m;i++)
{
if(strcmp(em[i].nombre, nombre)==0 )
{
printf("\nEsta persona ha sido encontrada, el registro original es:\n ");
printf("\nNúmero de empleado\ tNombre\tPosición\tBásica\tResponsabilidades\tSeguros\tGastos varios\tSalario real\n") ;
printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i]. número,em[i]. Nombre, em[i]. Zhicheng, em[yo]. Gibbon, em[i]. Jiangjin, em[yo]. Baoxian, em[yo]. zafei,em[i]. "Registros históricos");
printf("\nPor favor presione 1 para modificar la información de esta persona; presione 0\n") sin modificación;
scanf("%d ", &n );
If (n==1)
{
printf(" \nOpciones a modificar\n 1. Empleado No. 2. Nombre 3 Título 5. Bonificación 7. Gastos varios.
Salario real\ n ");
Printf("Ingrese el número de serie que desea modificar:\ n ");
scanf("%d ",&c);
if(c & gt; 8 | | c & lt1)
printf("\nSelección incorrecta, ¡elija nuevamente!\n");
}
bandera = 0;
}
}
if(bandera==1)
printf ( "\n¡Lo siento, no existe tal persona!\n");
Hazlo
{
Switch(c) /*Porque después de encontrar el Ith Cuando se trata de empleados, agregué 1 después de la declaración for, por lo que necesito cambiarlo a continuación
La información está asignada a i-1 personas*/
{
Caso 1:printf("El número de empleado cambió a ");
scanf("%d ", & ampnum);
em[i-1]. >
Pausa;
Caso 2: printf("nombre cambiado a");
scanf("%s ", nombre);
strcpy (em[i-1]).
Break;
Caso 3: printf("título cambiado a"); p>
scanf("%c ", & ampzhicheng);
em[i-1]. Caso 4: printf("El salario básico cambió a");
scanf("%d ", & amp Yoshimoto);
em[i Yoshimoto = Yoshimoto;
Pausa;
Caso 5: printf("Bonus cambiado a");
scanf("%d ", & Jiangjin); dirección aquí
em[i-1]. Jiangjin = Jiangjin;
Descanso
Caso 6: printf("Seguro cambiado a"); /p>
scanf("%d", & 宝贤); //Utilice la dirección aquí
Break
Caso 7: printf("Cargos varios cambiados. to ");
scanf("%d ",& ampzafei); //Utilice la dirección aquí.
em[. i-1]. zafei = zafei
Descanso;
Caso 8: printf("salario real cambiado a");
scanf("%d " ,&"Registros históricos");
em[i-1]. Shiji = Shiji;
Pausa;
}
printf("\n");
printf("\n¿Estás seguro? ¿Desea modificar la información? \Sí, presione 1; No, presione 2 para modificar nuevamente:\n");
scanf("%d ",& ampb);
}
while(b = = 2);
printf(" \ nBuscar toda la información modificada del empleado:\ n ");
printf (" \ n ");
Guardar (m);
Mostrar ();
printf(" \nPresione 1 para continuar con la modificación, presione 0\ n "Detener modificación);
scanf("%d ", & ampt);
Cambiar (t)
{
Caso 1: modificar(); romper;
Caso 0: romper
Predeterminado: romper
}Sistema ("cls");
}