Buscando el código fuente del sistema de gestión de estudiantes en lenguaje C
Esto es parte del código que escribí hoy, para entender el espíritu. Se recomienda que primero haga un dibujo y analice la estructura de datos al hacer una lista vinculada. Primero puede mirar los códigos de otras personas, analizar los códigos de otras personas primero y luego intentar hacer uno simple usted mismo (programación sin referencia). Leer libros sobre estructuras de datos le será de gran ayuda para aprender listas enlazadas.
¡Recuerda practicar más a menudo!
#include lt;iostream.hgt;
#include lt;fstream.hgt;
#include lt;iomanip.hgt;
#include lt;windows.hgt;
static int n;
estructura estudiante
{
int stu_number; p>
estructura estudiante
p>
char stu_name[10];
char stu_sex[4]; p>
int matemáticas;
int inglés;
int cplu_plus;
int total
flotante promedio
p>};
cosas de clase
{
estudiante;
público:
int getnum();
void in_put (estudiante *p1, int num);
void in_file (estructura estudiante *p, int número
void); lectura (struct estudiante *p);
void A_caculate(struct estudiante *p> void T_caculate(struct estudiante *p); struct estudiante *p, int número);
int Cacu_total(struct estudiante *p, int número
void out_put(struct estudiante *p>
};
void stu:: in_put(estudiante *p1, int num)
{
int
for ( i=0; ilt; num; i)
{
coutlt;lt;"Número de estudiante:"lt;lt;endl;
cingt;gt ;p1[i].stu_number;
coutlt;lt;"Nombre:"lt;lt;endl;
cingt;gt;p1[i].stu_name;
coutlt;lt;"Género: "lt; lt;endl;
cingt;gt;p1[i].stu_sex;
coutlt;lt;"Edad: "lt;lt;endl;
cingt;gt;p1[i].stu_age;
coutlt;lt;"Resultados matemáticos:"lt;lt;endl;
cingt;gt;p1[i].ma
th;
coutlt;lt;"partitura en inglés:"lt;lt;endl;
cingt;gt;p1[i].english;
coutlt ;lt;"c Puntuación:"lt;lt;endl;
cingt;gt;p1[i].cplu_plus;
p1[i].total=0; p>
cingt;gt;p1[i].cplu_plus;
p1[i].total=0;
p>p1[i].average=0;
system("cls");
}
}
void stu:: in_file(struct estudiante *p, int número )
{
int i;
ofstream ofs("feifei.txt", ios ::out);
if ( !ofs)
{
cerrlt;lt;"¡no se puede abrir el archivo!"lt;lt;endl;
exit(1); p>
}
else
{
para (i=0; ilt ; número; i )
{
ofslt;lt;p[i].stu_numberlt;lt;'\n'
lt;lt;p[ i].stu_namelt;lt;'\n'
lt;lt;p[i].stu_sexlt;lt;'\n'
lt;lt;p[i] .stu_agelt;lt;'\n'
lt;lt;p[i].mathlt;lt;'\n'
lt;lt;p[i].englishlt ;lt;'\n'
lt;lt;p[i].cplu_pluslt;lt;'\n';
}
coutlt;lt ;endllt;lt;"¡Se han escrito datos en la computadora! "lt;lt;endl;
ofs.close();
}
}
void stu::readout(estudiante *p)
{
int i, m;
ifstream ifs("feifei. txt",ios::in|ios::binary);
if (!ifs)
{
cerrlt;lt;"¡no se puede abrir el archivo!"lt;lt;endl;
salir(1);
}
más
{
for (i=0;ilt;n;i)
{
}
}
ifs.close();
}
void stu:: T_caculate(struct Student *p)
{
int i, j;
estructura temporal del estudiante;
for (i=0; ilt; n; i)
{
p[i].total=p[i ].math p[i].english p[i].cplu_plus;
coutlt;lt;p[i].stu_namelt;lt;" la puntuación total es: "lt;lt;p[ i ].totallt;lt;endl;
}
para (i=0;ilt;n;i)
{
for (j=i 1; jlt; n; j )
{
if (p[i].totalgt; p[j].total)
{
temp=p[j];
p[j]=p[i];
p[i]=temp; p >
}
}
}
}
void stu::A_caculate(struct estudiante *p) p >
{
int i, j;
estructura estudiante temp;
for (i=0; ilt; n; i) p >
{
for (j=i 1;jlt;n;j)
{
if (p[i].stu_agegt; p[j].stu_age)
{
temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
}
}
int stu :: Cacu_aver(struct estudiante *p, int número)
{
int i, bandera=1
for (i=0; ilt; n ;i )
{
p[i].average=(p[i].matemáticas p[i].inglés p[i].cplu_plus)/3.0;
p>if (p[i].stu_number==número)
{
La puntuación media de coutlt;lt;p[i].stu_namelt;lt; es "lt;lt;p[i].averagelt;lt;endl;
flag=0;
}
}
if (flag!=0amp;amp;i==n)
{
coutlt;lt ;"!El número que ingresó no existe, verifique y vuelva a ingresar"lt;lt;endl;
}
return flag;
} p>
int stu:: Cacu_total(struct estudiante *p, int número)
{
int i, flag=1;
for ( i=0;ilt;n;i )
{
p[i].total=p[i].math p[i].inglés p[i] .cplu_plus ;
if (p[i].stu_number==número)
{
coutlt;lt;p[i].stu_namelt;lt; " La puntuación total es "lt;lt;p[i].totallt;lt;endl;
flag=0;
}
} p>
if (flag!=0amp;amp;i==n)
{
coutlt;lt;"----------- -- ------!El número que ingresó no existe, verifique y vuelva a ingresar---------------"lt;lt;endl;
}
bandera de retorno;
}
void stu::out_put(struct Student *p)
{
int i;
coutlt;lt;"lista de información del estudiante aquí:"lt;lt;endllt;lt;endl;
coutlt;lt;" "lt; lt;setw( 10)lt;lt;rightlt;lt;"Número de estudiante"lt;lt;" "lt;lt;setw(8)lt;lt;leftlt;lt;"Nombre"lt;lt;setw(6 )lt;lt ;leftlt;lt;"género"lt;lt;setw(6)lt;lt;rightlt;lt;"edad";
coutlt;lt;setw(6)lt;lt ;rightlt;lt ;"Matemáticas"lt;lt;setw(6)lt;lt;rightlt;lt;"Inglés"lt;lt;setw(6)lt;lt;rightlt;lt;"c";
coutlt;lt;setw(8)lt;lt;rightlt;lt;"puntaje total"lt;lt;setw(10)lt;lt;rightlt;lt;"puntaje promedio"lt;lt;endl;
para (
i=0; ilt; n; i )
{
coutlt;lt; "th"lt;i 1lt;lt;"nombre"lt;lt;sew( 10)lt;lt;rightlt;lt;p[i].stu_numberlt;lt;" "lt;lt;setw(8)lt;lt;leftlt;lt;p[i].stu_name;
coutlt;lt;setw(6)lt;lt;leftlt;lt;p[i].stu_sexlt;lt;setw(6)lt;lt;rightlt;lt;p[i].stu_agelt;lt;setw(6 )lt;lt;rightlt;lt;p[i].math;
coutlt;lt;setw(6)lt;lt;rightlt;lt;p[i].englishlt;lt;sew( 6)lt;lt;rightlt;lt;p[i].cplu_plus;
if (p[i].total!=0)
{
coutlt;lt;setw(8)lt;lt;rightlt;lt;p[i].total;
}
if (p[i].average!=0 )
{
coutlt;lt;setw(10)lt;lt;rightlt;lt;p[i].average;
}
coutlt;lt;endllt;lt;endl;
}
}
int main()
{
stu boy;
estudiante *per, *outp;
int m;
coutlt;lt;"Seleccione del menú a continuación Seleccione la opción de operación que desea realizar: "lt;lt;endllt;lt;endl;
do
{
coutlt;lt;"1 .Ingrese la información del estudiante y guárdela en el archivo "lt;lt;endl;
coutlt;lt;" 2. Muestre la información del estudiante de mayor a menor"lt;lt;endl;
coutlt;lt;"3. Muestra la información del estudiante de mayor a menor en cada materia"lt;lt;endl;
coutlt;lt;"4. Ingrese el número de estudiante para calcular el puntaje promedio del estudiante y muestra "lt;lt;endl;
coutlt;lt;" 5. Ingrese el número del estudiante para calcular la puntuación total del estudiante y muestra "lt;lt;endl;
coutlt ;lt; "6. Clasifique a los estudiantes según sus puntuaciones totales y muestre los resultados de la clasificación"lt;lt;endl;
coutlt;lt;"7. Salga del sistema"lt;lt;endl;
cingt; m;
sistema("cls");
cambiar (m)
{
caso 1:
{
coutlt;lt;"ingrese el número de estudiantes que desea ingresar:"lt;lt;endl;
cingt; gt; n;
por=nuevo estudiante[n];
chico.in_put(per, n)
chico.in_file(por, n) ;
eliminar []per;
romper
}
caso 2:
{ p>
p>
outp=nuevo estudiante[n];
boy.readout(outp);
boy.A_caculate(outp);
chico. out_put(outp);
eliminar[]outp;
romper
}
caso 3:
{
outp=nuevo estudiante[n];
chico.readout(salida);
chico.T_caculate(salida);
boy.out_put(outp);
eliminar[]outp;
romper;
}
caso 4:
p>{
int número, bandera;
char bandera1
outp=nuevo estudiante[n];
boy.readout(outp);
do
{
coutlt;lt;"ingrese el número de estudiantes que quiero encontrar:"lt; lt; endl;
cingt; gt; número;
flag=boy.Cacu_aver(outp, número);
if (flag==1)
{
coutlt;lt;"¿quieres entrar?
¿poner de nuevo?'Y'/'N'"lt;lt;endl;
cingt;gt;flag1;
}
else
romper;
}
mientras (flag1=='y'||flag1=='Y');
boy.in_file(outp , n);
eliminar[]outp;
romper
}
caso 5:
{
int número, bandera;
char flag1;
salida=nuevo estudiante[n]; );
do
{
coutlt;lt;"ingrese el número de estudiantes que desea encontrar:"lt;lt;endl;
cingt; número;
bandera=boy.Cacu_total(salida, número
if (bandera==1)
{
coutlt;lt;"¿quieres ingresar de nuevo?'Y'/'N'"lt;lt;endl;
cingt;gt;flag1; p>
p>
}
else
romper
}
mientras (flag1=='y '||flag1= ='Y');
boy.in_file(outp, n);
eliminar[]outp;
romper; p>
}
caso 6:
{
outp=nuevo estudiante[n];
chico.readout( salida);
p>
boy.out_put(salida);
descanso
}
p>
}
}
mientras (m!=7
devuelve 0; >
Un simple recordatorio: debes contactar a más personas tú mismo; de lo contrario, será difícil aprender bien