Preguntas sobre la programación en lenguaje C
También hay una descripción específica de la función de su sistema de consulta: por ejemplo, debe poder ingresar el nombre para encontrar el número de teléfono del usuario, y el número de teléfono ingresado debería poder encontrar el número correspondiente al nombre del propietario. También debe poder insertar números de teléfono, guardar cambios en nombres y números, etc.
#include lt;stdio.hgt;
#include lt;string.hgt;
#include lt;stdlib.hgt;
#include lt;conio.hgt;
# define N 100
estructura empleado//Empleado básico
{
int num; //número de trabajador
int position; //el puesto 1 representa al presidente, 2 representa al director general, 3 representa al subdirector general, etc.
char name[8]; //nombre
char sex[2]; //género f representa mujer m representa hombre
int edad; edad
int cult; //cultura 1 representa expertos 2 representa médicos 3 representa maestrías 4 representa solteros 5 representa otros
int salario
int estado;//la salud se divide en buena, general, mala
}em[N];
estructura de comunicación//libreta de direcciones del personal
{ p>
nombre de char[8];
char officeetel[13];
char homeel[13];
char handtel[13];
char dirección[13];
}empc[N];
struct empsalary//salario del empleado y nombre del archivo
{
nombre de char[8];
int salario;
}emps[N]; p>
gestión nula();
p>
consulta nula();
comunicación nula();
entrada nula();
visualización nula();
cambio nulo(); /p>
cuenta nula();
int cambiar posición();
int changecult();
int cambiasalario(); p>
int changestate();
void querysalary();
void creat();
void inputcommunicate();
}
}
}mientras(ngt; 0
if(!flag)
{
printf("Has alcanzado el número de entradas adiós\n");
}
}
hacer p>
{
printf("~ ~~~~~~~~~\t\t~~~~~~~~~~~~\n");
printf("\t\tBienvenido a la versión china del Sistema de Gestión de Empleados\n");
printf("Productor: Li Huashi\tClase: Contabilidad 034 Clase\tEscuela No.: 2003041150\n");
printf("Dirección de contacto: Facultad de Ingeniería de Guangxi\n");
printf("\n");
printf("\t Por favor elija el tipo de operación: ====\n");
printf(" = ============\t\t========= =====\n");
printf("/t\ t1 enter el sistema de gestión\n");
printf("/t\t2 ingrese al sistema de consulta\n");
printf("\t\t3 ingrese a la libreta de direcciones\ n");
printf("\t\t0 salir del sistema\n");
printf("============= == \t\t==============\n");
printf("Nota: copyright\n\n\n");
scanf("d",amp;choice);
switch(choice)
{
caso 1:
administrar ();
ruptura;
caso 2:
consulta();
ruptura
caso; 3:
comunicar();
romper;
caso 0:
{
printf (" Gracias por usar adiós \n");
exit(0);
}
predeterminado:
{ p>
printf("Hubo un error al escribir, vuelva a escribir:\n");
return
}
}
}
}mientras(1);
}
vacío gestionar()
{
int elecciónmanage;<
char elección='y';
while(choice=='y'||choice=='Y')
{
printf("/t\t Bienvenido al sistema de gestión\n");
printf("================= = ===\n");
printf("/t\tSeleccione el tipo de operación:\Seleccione el tipo de operación: "/n");
printf ( "/t\t1Ingresando información del empleado\n");
printf("/t\t2Mostrando información del empleado\n");
printf("\t\t3Editando información del empleado \ n");
printf("\t\t3Editando información del empleado\n n");
<p> printf("\t\t4 agregando información de un empleado\n");
printf("\t\t5 eliminando información de un empleado\n"); "\t\t6 contando la información de un empleado\n");
printf("\t\t0 regresando\n");
printf("/t\t0 regresando\n"); n");
printf("=====================\n");
scanf(" d", amp; Choicemanage);
switch(choicemanage)
{
caso 1:
printf("4 es el el gerente 5 es el subgerente, 6 es el secretario (n");
printf("7 es el técnico, 8 es el capataz, 9 es el dependiente (n");
printf("El nombre es s\ n", em[i].nombre);
printf("El género es s\n", em[i].sex);
printf("donde m es hombre y f es mujer\n");
printf("La cultura es d\n", em[i].cult);
printf("1 es experto 2 es doctorado 3 es maestría 4 es licenciatura 5 es otro\n");
printf("El salario es d\n ",em[i].salario); p>
printf("La condición física es d\n", em[i].state);
printf("1 buena 2 promedio 3 mala \n");
}
printf("Terminé de presionar cualquier tecla para regresar \n");
getch();
fclose(fp); >
retorno;
}
cambio nulo()
{
ARCHIVO *fp; > int i;
char chname[8];
int Choicechange;
printf("Ingrese el nombre de la persona que desea cambiar:\ n");
Escanear f("s",&chname);
if((fp=fopen("employee.txt", "w"))==NULL)
{
printf("No se puede abrir este archivo\n");
return
}
for(i=0 ; ilt; N; i )
{
if(strcmp(chname, em[i].name)==0)
p>
{
printf("Esta es la información de la persona que desea modificar\n");
printf("El número de trabajo es dPosición es dNombre es sexo es sEducación es dSalario es dBody es d\n", em[i].num, em[i].posición, em[i].nombre, em[i].sexo, em[i].cult, em[i ].salario,em[i].estado);
printf("---------------------- --- --------------------------------\n");
printf(" Por favor ingrese la parte que desea modificar:\n");
printf("=======================\n") ;
printf("=====================\n"); p>
printf("1 Modificar posición/ n");
printf("2 Modificar nivel educativo/n");
printf("3 Modificar salario/n" ");
printf ("4 Modificar condición física/n");
printf("0 Salir del sistema\n");
printf(" =========== ===========\n");
printf("Por favor seleccione \n");
scanf("d",amp;choicechange );
switch(choicechange)
{
caso 1:
em [i].position=changeposition();<
ruptura;
caso 2:
em[i].cult=changecult()
p>
ruptura;
caso 3:
em[i].salary=changesalary();
break
caso 4:
p>
em[i].state=changesalary();
descanso;
caso 0:
retorno
> predeterminado:
printf("Hubo un error con la entrada");
}
fwrite(amp; em[ i], sizeof(struct empleado), 1, fp);
}
}
}
fclose(fp); > printf("Operación completa, presione cualquier tecla para regresar \n");
getch()
return
}
int cambio de posición()
{
int nueva posición;
imprimir
f("Ingrese el nuevo puesto:\n");
printf("1 es el presidente, 2 es el gerente general, 3 es el subdirector general\n");
printf ("4 es el gerente, 5 es el subgerente y 6 es la secretaria\n");
printf("7 para el técnico 8 para el capataz 9 para el personal\ n");
scanf("d",& nueva posición);
return(nueva posición);
}
int changecult ()
{
int newcult;
printf("Ingrese un nuevo diploma:\n");
printf( "1 representa experto 2 representa médico 3 representa maestro 4 representa soltero 5 representa otros\n");
scanf("d", amp;
return(newcult) ;
}
int changesalary()
{
int newsalary;
printf("Por favor, ingrese tu nuevo salario:\n");
scanf("d", amp; newsalary);
return(newsalary);
}
}
int changestate()
{
int newstate;
printf("Ingrese su condición física actual :\n");
printf("1 bueno 2 para promedio 3 para pobre \n");
Escanear f("d", amp; newstate); p>
Regresar (newstate) ;
}
void add()/Agregar información de un empleado
{
estructura empleado emp;
ARCHIVO *fp;
int i=0;
if((fp=fopen(" empleado.txt", "ab ") )==NULL)
{
printf("No se puede abrir este archivo\n");
getch(); > return;
}
printf("¿Podría escribir nueva persona:\n"
printf("Ingrese el número de trabajo: \n"); //ingrese el número del trabajo
scanf("d",amp; emp.num);
printf("Ingrese el título del trabajo:\n" ); //ingrese el título del trabajo
imprimir
f("1 es el presidente de la junta directiva 2 es el gerente general 3 es el subgerente general\n");
printf("4 para el gerente 5 para el subgerente 6 para el secretario\n") ;
printf("7 para Técnico 8 para Capataz 9 para Empleado\n"
scanf("d", amp; emp.position
<); p> printf("Ingrese el nombre:\n"); //ingrese el nombrescanf("s", emp.name);
printf("Ingrese el género con m como hombre y f como mujer:\n"); //ingrese el género
scanf("s", emp.salary);
printf("Por favor ingrese su condición física :\n"); //condición física
printf("1 bueno 2 para promedio 3 para pobre\n");
scanf("d", amp; emp. estado);
fwrite(amp; emp, sizeof(estructura empleado), 1,
rewind(fp); Completado, presione cualquier tecla para regresar");
getch();
fclose(fp);
return;
}
void del()//eliminar la información de un empleado
{
int i=0;
char delname[8];
ARCHIVO *fp;
if((fp=fopen(" empleado.txt", "w"))==NULL)
{ p >
printf("El archivo está vacío, no se puede abrir \n");
printf("Presione cualquier tecla para regresar
getch();
return;
}
printf("Ingrese el nombre de la persona que desea eliminar:\n"); //información sobre la persona eliminada. empleado
scanf("s", delname);
for(i=0; fread(amp; em[i], sizeof(struct empleado), 1, fp)! =0; i )
{
if(strcmp(em[i].nombre, delname)!=0)
fwrite(amp; em[ i], tamaño de (estructura empl
oyee), 1, fp);
}
fclose(fp);
if((fp=fopen("empleado.txt", "r "))==NULL) //Muestra la información del nuevo empleado
return;
printf("La información del nuevo empleado es:\n");
for(i=0; fread(amp; em[i], sizeof(estructura empleado), 1, fp)!=0; i )
{
printf ("Número de trabajo d", em[i].num);
printf("La posición es d", em[i].posición);
printf("1 es El presidente 2 es el director general, 3 es el subdirector general\n");
printf("4 es el director, 5 es el subdirector y 6 es el secretario\n");
printf( "7 es técnico, 8 es capataz, 9 es empleado\n");
printf("El nombre es s", em[i].nombre[8]) ;
printf( "El género es s", em[i].sex[2]
printf("donde m es masculino y f es femenino"); p>
printf("La cultura es d", em[i]. Cultura);
printf("1 es un experto, 2 es un médico, 3 es un maestro, 4 es un soltero , 5 es otro (n)");
printf ("El salario es d", em[i].salario);
printf("La condición física es d", em [i].state);
printf("1 bueno 2 promedio 3 pobre \n"); p>
}
recuento nulo()
{
ARCHIVO *fp
int i=0 ; p>
int num=0; //recuento total
int mnum=0, fnum=0; //recuento de género
int expernum=0, doctorornum=0, masternum=0, bechelornum=0, othernum=0; //Número de grados p>
int dsznum=0, zglnum=0, fzglnum=0, glnum=0, fglnum=0;
int mishunum=0, jsynum=0, lbnum=0, ygnum=0;
if((fp=fopen("employee.txt", "r"))= =NULL)
{
printf( "No se puede abrir este archivo\n");
printf("Presione cualquier tecla para continuar\n") ;
getch();
retorno ;
}
hacer
{
fread(amp; em[i], sizeof(estructura empleado), 1, fp
if(feof(fp) )
descanso
num ;
if(strcmp(em[i].sex, "m")==0)
mnum ;
if(strcmp(em[ i].sex, "f")==0)
fnum;
if(strcmp(em[i].cult==1)
expernum ;
if(em[i].cult==2)
doctornum ;
if(em[i].cult==3)
masternum ;
if(em[i].if(em[i].cult==4)
bechelornum ;
if(em[i].cult=5)
othernum;
if(em[i].position==1)//estadísticas de posición
dsznum ;
if(em[i].position==2)
zglnum ;
if(em[i].position==3)
fzglnum ;
if(em[i].position==4)
glnum
if(em[i]. posición==5)
fglnum;
if(em[i].position==6)
mishunum;
si (em[i].position==7)
jsynum ;
if(em[i].position==8)
lbnum ; p>
p>
if(em[i].position==9)
ygnum
i
} while( 1);
p>printf("El número total de hombres es d\n",num);
printf("==== clasificación de género =====\ n");
printf("El número de hombres es d\n", mnum);
printf("El número de mujeres es d\n", fnum); p>
printf( "====== Clasificación del diploma =====\n");
printf("El número de especialistas es d\n", expernum); p>
printf(" El número de doctorados es d\n",doctornum);
printf("El número de maestrías es d\n",masternum);
printf ("El número del soltero es d\n ",bechelornum);
printf("El número del otro es
d\n", othernum);
printf("====== clasificación del trabajo ========\n");
printf("El el número del presidente es d\n", dsznum);
printf("El número del director general es d\n", zglnum);
printf("El número del vicepresidente el gerente general es d", fzglnum);
printf ("El número de gerentes es d", glnum);
printf ("El número de subgerentes es d", fglnum); p>
printf ("El número de secretarias es d", mishunum);
printf ("El número de técnicos es d", jsynum); El número de capataces es d", lbnum);
printf ("el número de empleados es d", ygnum);
fclose(fp);
retorno;
}
p>
consulta nula()
{
ARCHIVO *fp; p> int i=0;
char quename[ 8];
if((fp=fopen("employee.txt", "r"))==NULL)
{
printf(" No se puede abrir el archivo, presione cualquier tecla para regresar \n"); return;
}
printf("Ingrese el nombre de la persona que desea consultar \n"); "s", quename);
for(i =0; fread(amp; em[i], sizeof(estructura empleado), 1, fp)! =0; i )
{
if(strcmp(em[i ].name, quename)==0)/*Buscar y mostrar registros de empleados*
{
printf("/t\t/n consultó el número de empleado o la información del nombre de la siguiente manera:\n");
printf("La siguiente es la información de la persona que desea consultar \n");
printf("Trabajador número d",em[i].num);
printf("La posición es d", em[i].posición);
printf("\t1 es el presidente 2 es el director general 3 es el subdirector general\n ");
printf("\t4 es el director 5 es el subdirector 6 es el secretaria\n");
printf("\t7 es el técnico 8 Para capataz 9 Para empleado\n");
printf("El nombre es s", em[i ].nombre);
printf("El género es s"
, em[i].sex);
printf("\t donde m es hombre y f es mujer");
printf("La cultura es d", em[i ].cult);
printf("\t1 es experto 2 es doctorado 3 es maestro 4 es licenciado 5 es otro \n"); , em[i].salario);
printf("La condición física es d", em[i].estado);
printf("\n"); p> p>
printf("Consulta completa, presione cualquier tecla para regresar \n");
getch()
fclose(fp>);
return;
}
}
printf("No existe esa persona, presione cualquier tecla para regresar \n"); p> getch();
fclose(fp);
return;
return >}
void querysalary() p>
{
int i
ARCHIVO *fp1, *fp2;
creat(); (fp1 =fopen("empleado.txt", "w "))==NULL )
return
for(i=0; fread(amp; em[i] , sizeof (estructura empleado), 1, fp1)! =0; i )
{
printf("El resultado de salida es:/n");
printf("Número de trabajo d", em[i].num);
printf("La posición es d", em[i].position
printf("); 1 es el presidente 2 es el director general, 3 es el subdirector general\n");
printf("4 es el director, 5 es el subdirector y 6 es el secretario\n") ;
printf(" 7 es técnico, 8 es capataz, 9 es empleado\n");
printf("El nombre es s", em[i].nombre[8] ]);
printf("El género es s", em[i].sex[2]);
printf("donde m es masculino y f es femenino");
printf("El nivel educativo es d", em[i].cult);
printf("1 es experto, 2 es médico, 3 es maestro, 4 es soltero, 5 es otro/n");
printf( "El salario es d", em[i].salario);
printf("La condición física es d" ,em[i].state);
printf("1 es g
bueno 2 es promedio 3 es pobre\n");
strcpy(emps[i].name, em[i].name);
emps[i].salary= em[i].salario;
}
if((fp2=fopen("empsalary.txt", "w"))==NULL)
Retorno;
for(i =0; ilt; N; i )
fwrite(amp; emps[i], sizeof(struct empsalary), 1, fp2); /p>
fclose(fp1);
fclose(fp2
}
void creat()
{
ARCHIVO *fp;
if ((fp=fopen("employee.txt", "w "))==NULL)
return;
input();
fclose(fp);
}
comunicación nula()
{
int Choicecommunicate;
printf("Bienvenido al sistema de libreta de direcciones\n");
printf("Elija el tipo de operación:\n"); p> p>
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); >
printf("1 se usa para ingresar información de la libreta de direcciones/n");
printf("2 se usa para consultar información de la libreta de direcciones/n"); printf( "3 se usa para modificar la información de la libreta de direcciones/n");
printf("3 se usa para cambiar la información de la libreta de direcciones/n n"); "0 se utiliza para salir del sistema de libreta de direcciones/n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ ~~~~\n");
scanf("d",amp;choicecommunicate);
switch(choicecommunicate)
{
caso 1:
inputcommunicate();
descanso
caso 2:
querycomunicar ();
romper
caso 3:
cambiar comunicar();
romper
caso 0:
{
printf("Gracias por usar Adiós\n");
printf("Presione cualquier tecla para regresar\n") ;
getch();
retorno
}
predeterminado:
printf("Error de entrada \n");
p>
}
}
}
void inputcommunicate()
{
ARCHIVO *fp;
int Choiceincom='y'; p> p>
int i=0;
if((fp=fopen("empcom.txt", "w"))==NULL)
{
printf("No se puede abrir el archivo \n");
printf("Cualquier clave devuelve \n"); >
return;
}
printf("Ingrese la información de su libreta de direcciones:\n"); 'y '||choiceincom=='Y')
{
i;
printf("dth empleado\n", i); p>
printf("Por favor, introduzca su nombre:\n");
scanf(" s", empc[i].name);
printf("Por favor ingrese el número de teléfono de la oficina:\n");
scanf("s", empc[i].officetel);
printf("Por favor, ingrese el número de teléfono de casa:\n"
scanf ("s", empc[i].hometel);
printf("Por favor, introduzca su número de teléfono móvil:\n"); p> scanf("s", empc[i].handtel);
printf("Ingrese su dirección:\n");
scanf("s ", empc [i ].address);
printf("¿Continúas escribiendo?(s/n)/n");
Choiceincom=getch();
fwrite(amp;empc[i],sizeof(struct comunicación),1,fp);
}
if(toupper(choiceincom)=='N')
{
fclose(fp);
printf("Ingreso completo, cualquier clave devuelve \n"); /p >
}
}
printf("No se puede abrir el archivo, presione cualquier tecla para regresar \n"); () ;
return;
}
printf("Ingrese el nombre de la persona que desea consultar:\n");
scanf("s", nombreqc);
/p>
for(i=0; fread(amp; empc[i], sizeof(estructura comunicación), 1, fp)!=0; i )
{
if(strcmp(empc[i].name, qcname)==0)
{
printf("La siguiente es la información que usted solicitó : \n");
printf("El nombre es s\n", empc[i]. nombre);
printf("El número de teléfono de la oficina es s\n", empc [i].officetel);
printf("El número de teléfono particular es s\n", empc[i].hometel);
printf("El número de teléfono celular es s \ n", empc[i].handtel);
printf("La dirección particular es s\n", empc[i].address);
printf("Consulta completa , presione cualquier tecla para regresar \n");
getch();
fclose(fp);
return;
}
}
printf("No existe esa persona, presione cualquier tecla para regresar \n"); > fclose(fp);
retorno
retorno
}
void changecommunicate()
{
ARCHIVO *fp;
int i=0;
char chcname[8]; >
if((fp=fopen("empcom.txt" , "w "))==NULL)
{
printf("No se puede abrir el archivo, presione cualquier clave para devolver \n");
getch();
return;
}
printf("Por favor, introduzca el nombre de la persona que desea modificar: \n");
scanf("s", chcname);
for(i=0; fread(amp; empc[i ] ,sizeof(estructura de comunicación),1,fp)! =0; i )
{
if(strcmp(empc[i].name, chcname)==0)
{
printf("Aquí está la información sobre la persona que estás modificando:\n");
printf("El nombre es s\n", empc[i] .name);
printf("El número de teléfono de la oficina es s\n", empc[i].officetel);
printf("El número de teléfono de casa es s\n", empc[i].hometel); >
printf("El número de teléfono celular es s\n", empc[i].handtel
printf("La dirección de casa es s\n", empc[i].address);
printf("Por favor, elija lo que desea cambiar:\n");
printf("$$$$$$$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$\n");
printf("1 Modificar número de teléfono de oficina/n");
p>
printf("2 Modificar número de teléfono particular/n");
printf("3 Modificar número de teléfono móvil/n"); ("0 Salir del sistema /n").
printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$ $$$$$$$$$\n");
scanf("d",amp;choicecom);
switch(choicecom)
{
caso 1:
changetel1();
descanso
caso 2:
cambiartel2( );
romper
caso 3:
cambiartel3(); >
caso 0:
retorno
Valor predeterminado:
printf("Error de entrada \n");
}
}
}
}
void changetel1()<
{
printf("Refiriéndose a lo anterior, hay tiempo para recuperar \n nuevamente"
}
void changetel2()
);{ p>
printf("refiriéndose a lo anterior \n");
}
void changetel3()
{
printf("consulte \n arriba");
}
=================== ====== ======================
Grupo de entusiastas de la programación: 24410693 ¡Cualquier persona interesada en el lenguaje C puede postularse para unirse!