Preguntas sobre programación en lenguaje C para estudiantes de segundo año
La mayor parte del código siguiente es similar al suyo, ¡solo como referencia!
/*Para llamar a funciones como ARCHIVO*/
#include "stdio.h"
#include "conio.h"
/* Para llamar a funciones como atof()*/
#include "stdlib.h"
#define TRUE 1
/* Declaración de estructura* /
struct zhigong
{
int mes
float id; flotar jbgz
int mes; p>
flotar jt;
flotar gt
flotar bt; ;
flotar jtbt;
flotar bt; p>
flotar yfs;
flotar fz; /p>
flotar hf;
flotar grsds;
flotar cx; p>
flotar yks; >
};
/* Crea una matriz de estructura de 50 elementos*/
struct zhigong zg[50]
/* Crea una variable de estructura; */
struct zhigong zgone
/* Número en la lista de personal */
int n=0
/* Obtener cadena*/
char numstr[50]
main()
{
char ch; p> n=0;
/*rfile(); El sistema cargará registros automáticamente*/
while(TRUE)
{
printf("\n");
printf("= ============================ ==============\n");
printf("¡Bienvenido! Por favor, elija (1-6): \n");
printf("1.Agregar una información \n");
printf ("2.Eliminar una información \n");
printf("3.Modificar una información \n"); n");
printf("4.Imprimir por id \n ");
printf("5.Imprimir todo \n");
printf("6.Guardar fecha \n");
printf ("7.Cargar fecha \n");
printf("============ =========================== =====\n");
ch=getche();
cambiar(ch)
{
<p> caso '1': addone(); romper;
caso '2': borrar();
caso '3': modone(); /p>
caso '4': IDone(); descanso
caso '5': listall();
caso '6': wfile(); ; romper;
case '7': rfile(); break;
case '8': return
default: printf("Lo siento, por favor; ¡elección otra vez!\n");
}
}
}
/*Calcular el impuesto sobre la renta personal*/
flotar tgrsds(flotar m)
{
flotar sui1, sui2, sui3
flotar tmp; = 0; sui2=0; sui3=0;
if(mgt;=5000)
{
sui1=(m-5000)*0.2;
sui2=(5000-1000)*0.1;
sui3=(1000-800)*0.05;
}
else; if (mgt;=1000 amp;amp;mlt;5000)
{
sui2=(m-1000)*0.1
sui3=(1000; - 800)*0.05;
}
si no (mgt; =800 amp; amp; mlt; 1000)
{
sui3=(m-800)*0.05;
}
tmp=sui1 sui2 sui3
return(tmp); > }
/* Agregar información salarial del empleado*/
addone(void)
{
printf("\n") ;
printf("Nº de registro d \n", n 1
printf("Por favor, introduzca el mes: \n"); gets(numstr);
zg[n].month=atoi(numstr);
printf("Por favor, ingrese zhigongbianhao: \n"); >gets(numstr);
zg[n].id=atof(numstr);
printf("Por favor, ingrese jibengongzi: \n"); p>gets(numstr);
zg[n].jbgz=atof(numstr);
printf("Por favor, ingrese jintie: \n");
gets(numstr);
zg[n].jt=atof(numstr);
printf("Por favor, introduzca gangti
e: \n");
gets(numstr);
zg[n].gt=atof(numstr);
printf("Por favor, escriba en butie: \n");
gets(numstr);
zg[n].bt=atof(numstr);
printf("Por favor poner colmillo: \n");
gets(numstr);
zg[n].ft=atof(numstr);
printf(" Por favor, introduzca jiaotongbutie: \n");
gets(numstr);
zg[n].jtbt=atof(numstr);
zg[ n].yfs=(zg[n].jbgz) (zg[n].jt) (zg[n].gt) (zg[n].bt) (zg[n].ft) (zg[n] .jtbt);
printf("Por favor, ingrese fangzu: \n");
gets(numstr); atof(numstr);
printf("Por favor, ingrese chuxu: \n");
gets(numstr); =atof(numstr);
printf("Por favor, ingrese huifei: \n");
gets(numstr); hf=atof(numstr);
zg[n].grsds=tgrsds(zg[n].yfs;
zg[n].yks=(zg[n]); .fz) (zg[n].cx) (zg[n].hf) (zg[n].grsds);
zg[n].sfs=(zg[n].yfs); -(zg[n].yks);
n;
}
/*Eliminar registro personal*/
delone( vacío)
{
struct zhigong tmp[50]
float zhigongid
int j, k
int flagfind;
flagfind=0;
k=0;
printf("\n Por favor, ingrese zhigongbianhao: \n");
gets(numstr);
zhigongid=atof(numstr);
for(j=0;jlt;=n;j)
{
if(zg[j].id==zhigongid)
{
flagfind=1
}
más
{
tmp[k]=zg[j]
k;
}
if(flagfind==1)
{
for(j=0;jlt;=
(n-1); j )
{
zg[j]=tmp[j]
}
printf( "\n ¡Registro eliminado! \n");
n=n-1
}
else
{ ; p>
printf("\n ¡Registro no encontrado! \n");
}
return
}
/*Modificar registro personal*/
modone(void)
{
float zhigongid
int j
int flagfind;
flagfind=0;
printf("\n Por favor ingrese zhigongbianhao: \n");
zhigongid=atof(numstr);
for(j=0;jlt;=n;j)
{
if(zg[j].id==zhigongid)
{
printf("NO.:d\n",j
printf); ("mes: d\n", zg[j].mes);
printf("zhigongbianhao10.0f\n", zg[j].id
printf); ("jibengongzi: 10.2f\n", zg[j].jbgz);
printf("Por favor, ingrese jibengongzi: \n");
zg[j].jbgz=atof(numstr);
printf("jintie:10.2f\n",zg[j].jt); p> printf("Por favor, introduzca jintie: \n");
gets(numstr);
zg[j].jt=atof(numstr);
printf("gangtie: 10.2f\n", zg[j].gt);
printf("Por favor, ingrese gangtie: \n"); (numstr);
zg[j].gt=atof(numstr);
printf("butie:10.2f\n",zg[j].bt); /p>
printf("Por favor, ingrese butie: \n");
gets(numstr);
printf("fangtie: 10.2f\n", zg[j].ft);
printf("Por favor, ingrese fangtie: \n");
gets(numstr);
zg[j].ft=atof(numstr);
printf("jiaotongbutie:10.2f\n",
zg[j].jtbt);
printf("Por favor, introduzca jiaotongbutie: \n");
gets(numstr); ].jtbt=atof(numstr);
zg[j].yfs=(zg[j].jbgz) (zg[j].jt) (zg[j].gt) (zg[ j].bt) (zg[j].ft) (zg[j].jtbt);
printf("fangzu:10.2f\n",zg[j].fz ); p>
p>
printf("Por favor, introduzca fangzu: \n");
gets(numstr);
zg[j].fz=atof; (numstr);
printf("chuxu: 10.2f\n", zg[j].cx
printf("Por favor, ingrese chuxu: \n");
gets(numstr);
zg[j].cx=atof(numstr);
printf("huifei:10.2f\n",zg); [j].hf );
printf("Por favor, ingrese huifei: \n");
gets(numstr); .hf=atof( numstr);
zg[j].grsds=tgrsds(zg[j].yfs);
zg[j].yks=(zg[j); ].fz) ( zg[j].cx) (zg[j].hf) (zg[j].grsds
zg[j].sfs=(zg[j].yfs); )-(zg[ j].yks);
flagfind=1
}
más
{
flagfind= 0;
}
}
if(flagfind==0)printf("\n ¡No se puede encontrar el registro! \n" );
return;
}
/*Buscar registros aleatoriamente en la memoria según la identificación*/
idone(void)
{
float zhigongid
int j;
int flagfind
flagfind=0; p>
printf("\n Por favor ingrese zhigongbianhao: \n");
gets(numstr);
zhigongid=atof(numstr);
for( j=0;jlt;=n;j)
{
if(zg[j].id==zhigongid)
{
printf("\n d registro encontrado! \n |", j 1;
printf("mes: d |", zg[j].mes); /p>
printf("zhigongbianhao10.0f |", zg[j].id
);
printf("jibengongzi: 10.2f |", zg[j].jbgz
printf("jintie: 10.2f |", zg[j].jt); );
printf("gangtie: 10.2f |", zg[j].gt
printf("butie: 10.2f |", zg[j].bt); );
printf("fangtie:10.2f |",zg[j].ft);
printf("jiaotongbutie:10.2f |",zg[j].jtbt); );
printf("yingfashu: 10.2f |", zg[j].yfs
printf("fangzu: 10.2f |", zg[j].fz); );
printf("chuxu:10.2f |",zg[j].cx);
printf("huifei:10.2f |",zg[j].hf); );
printf("gerensuodeshui:10.2f |",zg[j].grsds);
printf("yingkoushu:10.2f |",zg[j].yks);
printf("shifashu:10.2f\n", zg[j].sfs
flagfind=1
}
else
{
flagfind=0;
}
}
if(flagfind ==0)printf("\n ¡No se puede encontrar el registro! \n");
return
}
/* Muestra los registros de todos. empleados en el mes actual Información salarial*/
listall(void)
{
int j
if(nlt; 1; )
{
printf("\n ¡Sin registro! \n");
}
else
{
p>
for(j=0;jlt;n;j)
{
printf("\n NO: d |", j 1);
printf("mes: d |", zg[j].mes);
printf("zhigongbianhao10.0f |", zg[j ].id);
printf("jibengongzi: 10.2f |", zg[j].jbgz
printf("jintie: 10.2f |", zg[j); ].jt);
printf("gangtie: 10.2f |", zg[j].gt);
printf("butie: 10.2f |", zg[j); ].bt);
printf("fangtie: 10.2f |", zg[j].ft);
printf("jiaotongbutie: 10.2f |", zg[j]. ].jtbt);
printf("y
ingfashu: 10.2f |", zg[j].yfs);
printf("fangzu: 10.2f |", zg[j].fz);
printf(" chuxu: 10.2f |", zg[j].cx);
printf("huifei: 10.2f |", zg[j].hf);
printf(" gerensuodeshui: 10.2f | ", zg[j].grsds);
printf("yingkoushu: 10.2f |", zg[j].yks);
printf(" shifashu: 10.2f\n", zg[j].sfs);
}
}
}
/* Todo los registros se escriben desde la memoria al disco gongzi.rec*/
wfile(void)
{
FILE *fptr
printf; ("\n Fecha de guardado... \n");
if(nlt; 1)
{
printf("\n ¡Sin registro! \n");
return;
}
if((fptr=fopen("gongzi.rec","wb"))= =NULL )
printf("¡No se puede abrir el archivo gongzi.rec! \n");
else
{
fwrite (zg). , sizeof(zg[0]), n, fptr);
fclose(fptr);
printf("¡Archivo de d registros escritos! \n", n ); /p>
}
}
/* Leer todos los registros del disco gongzi.rec en la matriz gz*/
rfile( void) p>
{
ARCHIVO *fptr;
n=0;
printf("\n Fecha de carga... \ n");
if((fptr=fopen("gongzi.rec","rb"))==NULL)
printf("¡No se puede abrir el archivo gongzi.rec! \n"
else
{
while(fread(amp;zg[n], sizeof(zg[n]), 1, fptr)== 1)
n ;
fclose(fptr);
printf("¡Total d registros leídos! \n",n); p> }
}