Diseño e implementación de sistema de contabilidad del desempeño estudiantil
#include "iostream.h"
#include "string.h"
#include "fstream.h"
# definir N 100
struct stu
{
nombre de char[10]
sexo de char[3];
char asunto[10];
char subna[4];
char id[9];
float xf; p> flotante pscj;
flotante sycj;
flotante jmcj
flotante zhcj
flotante sdxf; p> };
estructura stu s1[N];
estructura stu *ps;
estructura stu s; ();
verificación nula();
verificación nula_num();
verificación nula();
verificación nula_idcj(); ;
void shrt();
void shrtzhjx();
void shrtzhsx()
void shrtsdjx();
void shrtsdsx();
void del();
void savequit();
void menu(); >
int todo;
texto vacío();
int principal()
{
menú();
return 1;
}
menú vacío()
{
int x;
x=1;
mientras(x)
{
coutlt;lt;" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "lt;lt;endl;
coutlt;lt;"Sistema de gestión del rendimiento estudiantil " lt;lt;endl;
coutlt;lt;endl;
coutlt;lt;" Entrada de puntuación del estudiante (1) Consulta de información del estudiante (2) Eliminar registro del estudiante (3) " lt;lt;endl;
coutlt;lt;endl;
coutlt;lt;" Ordenar (4) Guardar información del estudiante (5) Ver registros guardados (6) "lt ; lt;endl;
co
utlt;lt;endl;
coutlt;lt;" Salir del sistema de software (0) "lt;lt;endl;
coutlt;lt;"\nPor favor seleccione una función: " ;
cingt;gt;x;
cambiar(x)
{
caso 1: entrada(); romper;
caso 2: comprobar(); romper
caso 3: del(); romper
caso 4: shrt(); p >
caso 5: savequit(); break;
caso 6: text();
caso 0: coutlt;lt; "lt ;lt;endl;break;
}
}
}
entrada nula()
{
int i, u;
coutlt; "Ingrese el número de estudiantes que desea ingresar (actualmente limitado a 100):"; p> cingt ;gt;all;
ps=s1;
for(i=1;ilt;=all;i,ps)
{
coutlt;lt;"Por favor ingrese la "lt;lt;ilt;lt;"información del estudiante"lt;lt;endl;
coutlt;lt;"ID del estudiante:";
p>cingt;gt;ps-gt;id;
coutlt;lt;endl;
coutlt;lt;"Nombre:"; p>
cingt;gt;ps-gt;nombre;
coutlt;lt;endl;
coutlt;lt;"Género:";
cingt;gt ;ps-gt;sex;
coutlt;lt;endl;
coutlt;lt;"Número de curso:";
cingt; gt;ps- gt;subna;
coutlt;lt;endl;
coutlt;lt;"Curso:";
cingt;gt;ps- gt;asunto;
coutlt;lt;endl;
coutlt;lt;"Créditos:";
cingt;gt;ps-gt;xf;
coutlt;lt;endl;
coutlt;lt;"Resultados habituales:";
cingt;gt;ps-gt;pscj;
coutlt;lt;endl;
coutlt;lt;"Resultados experimentales:";
cingt;gt;ps-gt;sycj;
coutlt;lt ;endl;
coutlt;lt;"Puntuación del trabajo:";
cingt;gt;ps-gt;jmcj;
coutlt; lt;endl;
> coutlt; lt; "Ingrese 0 para dejar de escribir y 1 para continuar escribiendo:"
p> if(ps-gt;sycjgt;0)
ps -gt;zhcj=(float)(ps-gt;pscj*0.15 ps-gt;sycj*0.15 ps-gt;jmcj*0.7
else
ps-gt); zhcj=(float)(ps-gt; pscj*0.3 ps-gt; jmcj*0.7
if(ps-gt;zhcjgt;=90amp;amp;ps-gt;zhcjlt;= 100)
ps-gt;sdxf=ps-gt;xf;
else if (ps-gt;zhcjgt;=80amp;amp;ps-gt;zhcjlt;90)
ps-gt;sdxf=ps-gt;xf*0.8;
else if (ps-gt;zhcjgt;=70amp;amp;ps-gt;zhcjlt;80)
ps-gt;sdxf=ps-gt;xf*0.75;
else if (ps-gt;zhcjgt;=60amp;amp;ps-gt;zhcjlt;70)
ps-gt; sdxf=ps-gt; xf*0.6;
si no ps -gt;
if(u!=1; ) menú();
}
}
verificación nula ()
{
int a;
coutlt;lt;" lt;lt;Interfaz de consultagt;gt; "lt;lt;endl;
coutlt;lt;endl;
coutlt; lt;" lt;Consulta de información básica del estudiantegt; "lt;lt;endl;
coutlt;lt; endl;
coutlt;lt;" (1) Consulta por número de estudiante" lt;lt;endl;
coutlt;lt;" (2) Consulta por nombre"lt;lt ;endl;
coutlt;lt;endl;
coutlt;lt;" lt;Puntuación del examen del estudiante querygt;"lt;lt;endl;
coutlt;lt;endl;
coutlt;lt;" (3) Consulta por número de estudiante"lt;lt;endl;
co
utlt;lt;" (0) Volver al menú anterior "lt;lt;endl;
coutlt;lt;"Por favor seleccione el método de consulta:";
cingt;gt ; a;
cambiar(a)
{
caso 1: check_num(); ) ; romper;
caso 3: check_idcj(); romper
caso 0: romper
}
} p >
void check_num()
{
int estudiante=0, i
char id[9]; > ps=s1;
coutlt;lt;"Ingrese el número de estudiante que desea consultar:";
cingt;gt;id;
para (i =0; ilt; N; i, ps )
{
if(strcmp(id, ps-gt; id)==0)
{ coutlt;lt;"Número de estudiante:"lt;lt;ps-gt;idlt;lt;" "lt;lt;"Nombre: "lt;lt;ps-gt;namelt;lt;" "lt;lt ;" Género: "lt;lt;ps-gt;sexlt;lt;endl;
estudiante=1;}
}
if(estudiante= =0 )
coutlt;lt;"----------------Resultados de la consulta: ¡¡No existe ese estudiante!!";
coutlt; lt; endl;
check();
}
void check_name()
{
int estudiante= 0, i;
estudiante=0;
ps=s1;
nombre de char[10]; lt; "Por favor ingrese el nombre que desea consultar:";
cingt;gt;name;
ps=s1;
for(i=0 ;ilt; N; i, ps )
{
if(strcmp(nombre, ps-gt;nombre)==0)
{coutlt; lt;" Número de estudiante: "lt;lt;ps-gt;idlt;lt;" "lt;lt;"Nombre: "lt;lt;ps-gt;namelt;lt;" "lt;lt;"Género: "lt; lt; ps-gt; sexlt; lt; endl;
estudiante=1;
}
}
si (estudiante= =0)
coutlt;lt;"----------------Resultados de la consulta: ¡¡No existe tal estudiante!!"lt;lt;endl;
coutlt;lt;endl;
check();
}
void check_idcj()
{
> int estudiante=0, i;
char id[9];
coutlt; "Ingrese el número de estudiante que desea consultar:"; p > cingt; gt; id;
ps=s1;
para(i=0; ilt; N; i , ps )
{ p >
if(strcmp(id,ps-gt;id)==0)
{
coutlt;lt;"\nID del estudiante: "lt;lt; ps-gt;idlt;lt;endllt;lt;"Nombre:"lt;lt;ps-gt;namelt;lt;endl;
coutlt;lt;"Número de curso: "lt;lt; ps-gt;subnalt;lt;endllt;lt;"Curso:"lt;lt;ps-gt;subjectlt;lt;endl;
coutlt;lt;"Créditos:"lt;lt;ps -gt; xflt; lt; endllt; lt; "Resultados habituales:"lt; endl;
coutlt;lt;"Puntuación completa:"lt;lt;ps-gt;zhcjlt;lt;endllt; lt;"Créditos obtenidos:"lt;lt;ps-gt;sdxflt; lt; endl;
estudiante=1; p>
if(student==0)
coutlt;lt;"----------------Resultados de la consulta: ¡¡No existe tal estudiante!!";
coutlt;lt;endl;
check();
}
void shrt()
{
int i;
coutlt;lt;" lt;lt;Ordenar interfaz>"lt;lt;endl;
coutlt;lt;endl;
coutlt;lt;" (1 ) En orden descendente de puntuaciones integrales."lt;lt;endl;
coutlt;lt;" (2) En orden ascendente de puntuaciones integrales ."lt;lt;endl;
coutlt;lt; ;" (3) En orden descendente de créditos reales "lt; lt; endl;
coutlt; lt; " (4) En orden ascendente de créditos reales "lt; lt; endl;
coutlt;lt;" (0) Regresar a la interfaz principal."lt;lt;endl;
coutlt;lt;"Seleccione el método de clasificación: "lt;lt;endl;
cingt;
switch(i)
{
caso 1: shrtzhjx(); romper;
caso 2: shrtzhsx();
reak;
caso 3: shrtsdjx(); romper
caso 4: shrtsdsx(); romper
;
}
}
void shrtzhjx()
{
int i, j, n, k
flotar a[N], temp;
ps=s1
for(i=0; ilt; N; i , ps )
a[i]=ps-gt;zhcj;
for(i=1,k=all;ilt;all;i,k--)
for(j= 0; jlt; k-1; j )
si(a[j]lt; a[j 1])
{
temp=a[ j];
a[j]=a[j 1];
a[j 1]=temp
}
coutlt;lt;"------------¿Quieres ver los resultados ordenados (1/0)? "lt;lt;endl;
cingt;gt; n;
if(n)
for(i=1,j=0;ilt;=all;i,j)
coutlt;lt; "th" lt;lt;ilt;lt;"Nombre:"lt;lt;" "lt;lt;a[j]lt;lt;endl;
shrt();
}
void shrtzhsx()
{
int i, j, n, k
float a[N; ], temp ;
ps=s1;
for(i=0;ilt;N;i,ps)
a[i]=ps- gt;zhcj ;
for(i=1,k=all;ilt;all;i,k--)
for(j=0;jlt;k-1; j)
if(a[j]gt; a[j 1])
{
temp=a[j];
a [j]=a[j 1];
a[j 1]=temp;
}
coutlt;lt;"-- --- -------¿Quieres ver los resultados ordenados (1/0)? "lt;lt;endl;
cingt;gt;n;
if(n)
for(j=0; allgt; 0; all--, j)
coutlt;lt; "th"lt;lt;alllt;lt; "nombre:" lt; " "lt; a[j]lt;
shrt(); void shrtsdjx() p>
{
int i, j, n, k
float a[N], temp
ps=s1;
p>
for(i=0;ilt;N;i,ps)
a[i]=ps-gt;sdxf; p>
for(i=1, k=todos;ilt;todos
;i,k--)
for(j=0;jlt;k-1;j)
if(a[j]lt;a[j 1])
{
temp=a[j]
a[j]=a[j 1]
a[j 1]; ]=temp;
}
coutlt;lt;"------------¿Quieres ver los resultados ordenados (1/0)? "lt; lt; endl;
cingt; gt; n;
coutlt; lt; endl;
i=1;
if( n)
while(ilt;=all)
{
j=0;
coutlt;lt;" th"lt ;lt;ilt;lt;"Nombre:"lt;lt;a[j]lt;lt;endl;
j ;
i ;
}
shrt();
}
void shrtsdsx()
{
int i, j, n, k;
flotar a[N], temp;
ps=s1; ; i, ps )
a[i]=ps-gt;
for(i=1, k=todos; ilt; todos; i, k--)
for(j=0;jlt;k-1;j)
if(a[j]gt;a[j 1])
{
temp=a[j];
a[j]=a[j 1]
a[j 1]=temp
}
coutlt;lt;"------------¿Quieres ver los resultados ordenados (1/0)? "lt;lt;endl;
cingt; gt; n;
coutlt; lt;
si(n)
mientras(allgt;0)
{
j=0;
coutlt;lt;"th"lt;lt;alllt;lt;"nombre:"lt;lt;a [j]lt;lt ;endl;
j ;todos--;
}
shrt();
}
void del()
{
char id[9];
coutlt;lt;"------- ------Ingrese el número de estudiante a eliminar: ";
cingt; gt; id;
int i;
ps=s1;
for(i=0;ilt;N;i,ps)
if(strcmp(id,ps-gt;id)==0)
for(;ilt;( N-i); i , ps )
{
strcpy(ps-gt;id, (ps 1)-gt;id);
strcpy(ps -gt;nombre, (ps 1)-gt;nombre);
strcpy(ps-gt; sujeto, (ps 1)-gt; sujeto
strcpy(ps-gt; subna, (ps 1)-gt; subna);
strcpy(ps-gt;sexo, (ps 1)-gt;sexo);
ps-gt;jmcj=(ps 1)-gt;jmcj;
ps-gt; pscj=(ps 1)-gt;
ps-gt; gt; sycj=(ps 1)-gt;
ps-gt; 1)-gt;zhcj;
}
coutlt;lt;"-----------------El número de identificación del estudiante es" ha sido eliminado lt;lt;idlt;lt;"estudiantes------------------"lt;lt;endl;
}
void savequit()
{
ofstream ofile("student.txt",ios::app);
int i; p>
ps=s1;
for(i=0; ilt; todos; i , ps )
{
ofilelt;lt;" número de estudiante: "lt;lt;ps-gt;idlt;lt;endl;
ofilelt;lt;" Nombre: "lt;lt;ps-gt;namelt;lt;endl;
ofilelt;lt;"Sexo:"lt;lt;ps-gt;sexlt;lt;endl;
ofilelt;lt;"Número de curso:"lt;lt;ps-gt; subnalt; lt;endl;
ofilelt;lt;"Curso:"lt;lt;ps-gt;subjectlt;lt;endl;
ofilelt;lt;"Resultados habituales: "lt ;lt;ps-gt;pscjlt;lt;endl;
ofilelt;lt;"Resultados del trabajo:"lt;lt;ps-gt;jmcjlt;lt;endl;
ofilelt;lt;"Resultados experimentales:"lt;lt;ps-gt;sycjlt;lt;endl;
ofilelt;lt;"Resultados integrales:"lt;lt;ps-gt;zhcjlt ; lt;endl;
ofilelt;lt;"Créditos:"lt;lt;ps-gt;xflt;lt;endl;
ofilelt;lt;"Créditos obtenidos:" lt;lt;ps-gt;sdxflt;lt;endl;
}
ofile.close();
coutlt;lt;"--- --------------------------Se ha guardado la información del estudiante."lt;lt;endl;
}
void text()
{
ifstream infile("student.txt",ios::in);
if(!infil
e) coutlt;lt;"¡No se puede abrir este documento!"lt;lt;endl;
int i;
char put[101];
for (i=0;ilt;N;i)
{
infile.getline(put, 100);
coutlt;lt;putlt;lt; endl;
}
infile.close();
}