Red de conocimiento informático - Conocimiento del nombre de dominio - Buscando un sistema de gestión del desempeño de los estudiantes de programación en C

Buscando un sistema de gestión del desempeño de los estudiantes de programación en C

Programación C

Estudiantes

Estudiantes

Logros

Gestión

Gestión

Sistema

Sistema

Clase: Computadora 06-1

Tutor: Guo Chunguang

Diseñador: Zhang Shanshan, Xiao Pengli: Zhang Shanshan, Xiao Pengli, Yao Yaohan

Hora: 16 de junio de 2007

Lugar: Primer Hospital Afiliado de la Universidad de Medicina China de Beijing

Laboratorio 16 de junio de 2007

I. Análisis de requisitos

Con la mejora continua del nivel de la ciencia y la tecnología, la informática se ha vuelto cada vez más madura y la gente ha comprendido profundamente sus poderosas funciones. diversos ámbitos de la sociedad humana y desempeñan un papel cada vez más importante. Como parte de las aplicaciones informáticas, el uso de computadoras para gestionar la información sobre el desempeño de los estudiantes tiene ventajas que la gestión manual no puede igualar. Por ejemplo: recuperación rápida, búsqueda sencilla, alta confiabilidad, gran capacidad de almacenamiento, buena confidencialidad, larga vida útil, bajo costo, etc. Estas ventajas pueden mejorar en gran medida la eficiencia de la gestión del desempeño de los estudiantes y también son condiciones importantes para la gestión científica y formal de las empresas. Por lo tanto, desarrollar un sistema de gestión del desempeño de este tipo se ha convertido en algo muy necesario.

Desarrollar un sistema de gestión del desempeño de los estudiantes y utilizar computadoras para administrar el desempeño de los estudiantes para mejorar aún más la eficiencia y la modernización de la escuela. Para mejorar la eficiencia laboral de profesores y estudiantes, podemos sistematizar, estandarizar y automatizar el flujo de trabajo de gestión de la información sobre el desempeño de los estudiantes. Hoy en día, los colegios y universidades de nuestro país generalmente no tienen un nivel muy alto de gestión de los expedientes de desempeño de los estudiantes, y algunos aún se basan en el uso completo de los soportes en papel. Este modelo de gestión ya no puede adaptarse al desarrollo del. tiempos y las necesidades de la sociedad, porque se pierde mucho tiempo y recursos materiales, pero todavía hay muchas deficiencias. En la era de la información actual, este método de gestión tradicional será inevitablemente reemplazado por sistemas de gestión de la información basados ​​en computadoras. Un sistema eficiente de gestión del desempeño de los estudiantes puede almacenar archivos de desempeño de los estudiantes anteriores. No requiere mucha mano de obra. Solo requiere un poco de personal de entrada especializado para operar el sistema. Ahorra mucha mano de obra y puede encontrar rápidamente la información requerida. y seguro, los estudiantes pueden comprobar fácilmente sus resultados.

II. Análisis de la función del sistema

Análisis de requisitos funcionales del sistema de gestión del desempeño de los estudiantes: el sistema de gestión del desempeño de los estudiantes proporciona principalmente entrada de datos de los estudiantes, salida de datos de los estudiantes, consulta de datos de los estudiantes y eliminación de datos de los estudiantes. y clasificación de calificaciones de los estudiantes y otras funciones. Experiencia en programación: a través de la preparación del sistema de gestión del desempeño de los estudiantes, tengo la misma comprensión de lo que estoy aprendiendo ahora y lo que he aprendido antes, y puedo usarlo de manera integral, por lo que he aprendido mucho...

El marco de todo el sistema de gestión es el siguiente: primero defina una estructura y luego defina una clase, que contiene funciones miembro de entrada, funciones miembro de salida, funciones miembro de búsqueda, funciones miembro de clasificación y funciones miembro de eliminación. y correcciones. La interfaz principal se muestra en el programa principal. Luego, de acuerdo con el número (1-6) correspondiente al módulo que debe usarse según la entrada del usuario, se llama a la función correspondiente a la función principal para completar las necesidades del usuario, y la hora y fecha actuales del sistema se muestran en el comienzo del programa principal.

El programa *** consta de seis módulos, a saber: módulo de entrada, módulo de salida, módulo de búsqueda, módulo de eliminación, módulo de clasificación y módulo de salida. Las funciones de cada módulo son las siguientes:

Módulo de entrada: este módulo se utiliza para recibir información de los estudiantes ingresada por los usuarios.

Módulo de salida: este módulo se utiliza para generar la información del estudiante ingresada por el usuario.

Módulo de búsqueda: busca la información del estudiante correspondiente según el número de estudiante ingresado por el usuario. Si se encuentra, se mostrará la información del estudiante; de ​​lo contrario, se mostrará como no encontrada.

Eliminar módulo: busque la información del estudiante correspondiente según el número de estudiante ingresado por el usuario. Si se encuentra, se mostrará la información del estudiante y se le preguntará si desea eliminar la información. la información del estudiante se eliminará por completo; de lo contrario, la información del estudiante se mostrará "No eliminada".

Módulo Ordenar: ordena los estudiantes por puntuación total y muestra la información ordenada de los estudiantes.

Salir del módulo: Salir del programa.

3. Diagrama del módulo de funciones del sistema

4. Diagrama de flujo de cada módulo

1. Módulo de entrada

2. Módulo de salida

p>

3. Buscar módulo

4. Eliminar módulo

5. Ordenar módulo

Salir del módulo

5 .Código de programa

#includelt;iostream.hgt;

#includelt;string.hgt;

#includelt;iomanip.hgt;

#includelt;timegt;

#includelt;timegt;

#includelt;conio.hgt;

#includelt;iostreamgt;

struct Student //definir una estructura de estudiante

{

char name[8]

int num; > agregar carácter [20];

int GS, YY, JSJ, SUMA

}; >clase estudiante1 //definir una clase de estudiante

{

privado:

estudiante estu[40];

nombre de carácter, agregar ;

p>

int num;

int GS, YY, JSJ, SUM

público:

void sr; (char *, int, char *, int, int, int);;

impresión vacía

impresión vacía(int

int jc(int); xxh)

{

int m=0;

while(mlt;=s 1)

if(xxh==stu [m ].num)

break

if(mgt; s 1)

return 0

else

devolver 1;

}

void cz(int);

void sc(int);

suma nula; (int);

};

void estudiante1::sr(char *xm, int xh, char *dz, int gs, int yy, int jsj) //módulo de entrada

{

strcpy(stu[s].nombre, xm

stu[s].num=

); strcpy(stu[s].add , dz);

stu[s].GS=gs

stu[s].YY=yy; > stu[s].JSJ= jsj;

}

void estudiante1::print(int s) //módulo de salida

{

coutlt;lt;slt ;lt;"\t";

coutlt;lt;stu[s].namelt;lt;"\t";

p>

coutlt;lt;stu[s].numlt;lt;"(t)";

coutlt;lt;stu[s].addlt;lt;"(t)";

coutlt;lt;stu[s].GSlt;lt;"(t)";

coutlt;lt;stu[s].YYlt;lt;"\t " ;

coutlt;lt;stu[s].JSJlt;lt;"\t";

coutlt;lt;endl;

}

void estudiante1::cz(int s) //búsqueda del módulo

{

int xxh, p;

while(s==0 )

{

coutlt;lt; "No hay registros, ¡ingréselo primero!" lt;lt;endl;

break;

}

if(s!=0)

{coutlt;lt; "Por favor ingrese el número de la escuela que está buscando:";

cingt; gt; xxh;

while (xxhlt.100000||xxhgt; 999999) //Determina si el número de estudiante ingresado es correcto

{

coutlt ;lt; "El número de estudiante que ingresó es incorrecto, ingrese el número de estudiante de seis dígitos"lt;lt;endl;

cingt;gt;xxh;

}

while(s!=0) //averigüe si hay un registro que coincida con la condición

{

p=1;

if (xxh==stu[s].num)

{

coutlt;lt;lt;`Nombre \t Número de escuela \t Dirección \t Matemáticas superiores \t Inglés \t Computadora \t "lt;lt;endl;

coutlt;lt;stu[s].namelt;lt;"\t";

coutlt;lt ;stu[ s].numlt;lt;"\t";

coutlt;lt;stu[s].addlt; lt;"(t)";

coutlt; lt;stu [s].GSlt;lt;"(t)";

coutlt;lt;stu[s].YYlt;lt;"(t)";

coutlt;lt ;stu[s].JSJlt;lt; endl;

getch();

break;

}

else

p>

p=0

s--;

}

si(p==0)

coutlt ;lt; "Lo siento, pero no encontramos lo que buscabas. ¡Número de estudiante que estás buscando! " lt; lt; endl; }

getch();

}

void estudiante1::sc(int n) //eliminar módulo

{

int xxh, p

char

while(s==0)

{

coutlt;lt; "Sin registro, ingrese el registro primero". ;

}

if(s!=0)

{

coutlt;lt; "Ingrese el estudiante que desea eliminar Número: ";

cingt;gt;xxh;

while (xxh lt;100000||xxhgt;999999)

{

coutlt;lt; "El número de estudiante que ingresó es incorrecto, ingrese el número de estudiante de seis dígitos" lt;lt;endl;

cingt;gt;xxh;

}

for( int i=1;ilt;=n;i)

{

if(stu[i].num!=xxh)

p=0;

if(stu[i].num==xxh)

{

coutlt;lt; \t Número de escuela \t Dirección \t Matemáticas superiores \t Inglés \t Computadora"lt;lt;endl;

coutlt;lt;stu[i].namelt;lt;"\t";

coutlt;lt;stu[i].numlt;lt;"\t";

coutlt;lt;. stu[i].addlt;lt;"\t";

coutlt;lt;stu[i].GSlt;lt;"\t";

coutlt;lt;stu[i].YYlt;lt;"\t";

coutlt;lt;stu[i]..JSJlt;lt;endl;

coutlt;lt; "¿Realmente deseas eliminar el registro de este estudiante? (s/n) ";

cingt;gt;da;

if(da=='y'||da=='Y')

{

p>

for(int j=i;jlt;=n-1;j) //eliminar registro

{

strcpy(stu[j] . nombre, stu [j 1].nombre);

stu[j].num=stu[j 1].num;

strcpy(stu[j].add, stu[j 1 ].add);

stu[j].GS=stu[j 1].GS;

stu[ j].YY=stu[j 1] .YY;

stu[j].JSJ=stu[j 1].JSJ;

}

coutlt;lt; ! " lt; lt; endl;

s=s-1;

p=1;

descanso;

}

else

{

coutlt;lt; "El registro no fue revisado

eliminado! " lt; lt; endl;

p=1;

}

}

}

si (p==0)

coutlt;lt; "Lo sentimos, ¡no se encontró el número de estudiante que buscas! " lt; lt; endl;

}

getch();

}

void estudiante1::sum(int s) //Ordenar módulo

{

int chang;

int b[40]

while(s==0)

{

coutlt;lt; "No hay ningún registro, ¡ingrese el registro primero!" " lt; lt; endl;

descanso;

}

if(s!===0)

{

p>

coutlt;lt; "Nombre \t Escuela No.\Dirección Inglés";

coutlt;lt; "Puntuación total de computadora de matemáticas avanzadas" lt;lt;endl;

for(int k=1;klt;=s;k)

{

b[k]=stu[k].GS stu[k ].YY stu[ k].JSJ;

stu[k].SUM=stu[k].GS stu[k].YY stu[k].JSJ;

}

for(int i=1;ilt;=s;i) //ordenar B[] usando el método de burbujeo

for(int j=1;jlt;=s-i; j)

if(b[j]lt; b[j 1])

{

chang=b[j];

b[j]=b[j 1];

b[j 1]=chang

}

for(int; h=1; hlt ;=s;h )// Genera lo que corresponde a la misma puntuación total que en B[]

for(int e=1;elt;=s;e )

if (b[h]==stu[e].

{

coutlt;lt;stu[e].namelt;lt;"\t";

coutlt;lt;stu[e].numlt;lt;"\t t";

coutlt;lt;stu[e].addlt;lt;"\t";

coutlt;lt;stu[e].YYlt;lt;"\t";

coutlt;lt;stu[e].GSlt;lt;"\t";

coutlt;lt;stu[e].JSJlt;lt;"\t";

coutlt;lt;stu[e].SUMlt;lt;endl;

}

}

getch();

}

void principal()

{

estudiante1 st;

char da, a

char *xm, *dz

int gs, yy, jsj; , xh;

p>

tiempo_t t

;

tiempo(amp;t);

mientras(1)

{

sistema("cls" );

coutlt;lt;" Todos los derechos reservados: shanshanzhang xiao pengli yao yohan"lt;lt;;endl;

coutlt;lt;

coutlt;.lt;"Sistema de gestión del rendimiento estudiantil"lt;lt;endl;

coutlt;lt;" Mostrar hora y fecha del sistema:"lt;lt;lt;ctime(amp;t)lt ;lt; endl;

coutlt;lt; "1. Ingresar/agregar datos del estudiante"lt;

coutlt;lt; "2. Mostrar información del estudiante"lt;lt ;endl;

coutlt;lt; "3. Buscar por número de estudiante"lt;lt;endl;

coutlt;lt; "4. Eliminar registro"lt;lt;endl ;

coutlt;lt; "5. Ordenar por puntuación total"lt;lt;endl;

coutlt;lt; "6.Salir"lt;lt;endl;

p>

coutlt;lt; "Seleccione la operación (1-6)"lt;lt;endl; Computadora: "lt;lt;endl;

xm=new char[];dz =nuevo char[];

cingt;gt;xmgt;gt;xhgt;gt;dzgt;gt;gsgt;gt;yygt;gt;jsj;

while(st. jc(xh)) //Llame al módulo JC para determinar si el número de estudiante está repetido

{

coutlt;lt; "El número de estudiante está repetido, por favor vuelve a entrar! " lt; lt; endl;

cingt; gt; xh;

}

s=s 1;

st.sr (xm, xh, dz, gs, yy, jsj);

coutlt;lt; "¿Quieres seguir escribiendo? (y/n)";

cingt;gt;da;

while (da=='y'||da=='Y') //determina si quieres para continuar escribiendo

{

coutlt;lt;lt; "Ingrese el nombre, el número, la dirección, el número de la escuela secundaria, el número en inglés y el número de computadora del estudiante en ese orden:" lt; lt; endl;

xm=new char[]; dz=new char[];

gt; jsj;

while(st.jc(xh))

{

coutlt; "Número de estudiante duplicado, ¡vuelva a ingresar! " lt; lt; endl;

cingt; gt; xh;

}

s=s 1;

st.sr (xm, xh, dz, gs,

yy, jsj);

coutlt;lt; "¿Quieres seguir escribiendo? (s/n)";

cingt;gt;da;

}

getch();

}; romper;

caso '2':

{

if(s==0) ​​​​//Determine si hay una entrada de registro

{

coutlt;lt; "¡No hay registro, ingrese un registro primero!" ;lt;endl;

getch();

romper

}

si (s!=0)

{

coutlt;lt; "Número de serie"lt;lt;"\t";

coutlt;lt; "nombre " lt;lt;"\t ";

coutlt; lt; "Número de estudiante" lt; lt; "\t";

coutlt; lt; "Dirección" lt; lt; "\t";

coutlt;lt; "Número mayor" lt;lt;"\t";

coutlt;lt; "Inglés"lt;lt;"\t";

coutlt; lt; "Computadora" lt; lt;

for (int i=1; ilt; = s; i)

st.print(i) ;

getch();

}

}; romper

caso '3': st.cz(s); romper;

caso '4': st.sc(s);

caso '5': st.sum(s); > Valor predeterminado:

{

while(a=='0'||agt;'6') //Juzga si la opción es correcta

{

coutlt;lt; "La opción es incorrecta, ¡elija nuevamente!" lt;lt;endl;

cingt;gt;a;

}

ir a

}; romper

}

}

coutlt; lt; "¡Gracias por usar!"lt;lt;endl;

}