Red de conocimiento informático - Conocimiento de Internet de las cosas - Programación Xiaoyu

Programación Xiaoyu

Diseño e implementación de un sistema sencillo de gestión docente: resultado de medio año de investigación

Escrito en C-FREE. Al mirar el foro, parece que muchas personas no aprendieron muchos capítulos, pero aprendieron más de lo que aprendimos en el libro de texto.

Oye, la Clase C de la escuela se completará en medio año. ¿Qué se puede hacer en el futuro? !

#Definición M 25

#Definición N 6

# incluir & ltstdio.h & gt

# incluir & ltstdlib.h & gt

# include & ltmath.h & gt

estructura estudiante

{

int num

nombre de char[20];

puntuación int[N];

calle flotante;

} ST[M];

Ke Estructura de la ciudad

{

int num

char kcname[20];

Caída de nieve en polvo;

Calle Flotante;

Doble bzc

}Curso[N];

Tongji Estructural

{

int exc

int bueno

int medio

int pase

int nopass

}Tongji[N];

/*Leer archivo de datos WL0114.txt */

void read_dat1()

{

int i, j;< / p>

char str 1[100];

ARCHIVO * fp

FP = fopen(" D:\ \ ​​​​wl 0114 . txt ", " r ")

Si (fp==0)

{

printf("No se puede abrir");

Salir(0); }

fgets(str1,10000,FP);

for(I = 0;i<m;i++)

{

fscanf (fp, " %d%s ", & st[i].num,st[i].nombre);

for(j=0;j<n;j++)

fscanf(fp, "%d", & st[i].score[j]);

}

fclose(FP);

}

/*Leer archivo de datos WL01kc.txt */

void read_dat2()

{

ARCHIVO * fp

int k;

char str 2[100];

fp=fopen("D:\\WL01kc.txt "," r ") ;

If (fp==0)

{

printf("No se puede abrir");

Salir

}

fgets(str2, 100, FP);

for(k = 0; k & ltn; k++)

fscanf(fp, " % d%s%f ", y cursos de amplificador[k]. número, por supuesto [k]. kcnombre y cursos[k].

Nieve en polvo);

fclose(FP);

}

/*Calcular el promedio ponderado de N cursos para cada estudiante*/

void jqave()

{ FILE * fp/* * * * * *Crear automáticamente el archivo CTJ0114.txt* * * * * */

FP = fopen(" D :\\ctj0114.txt","w");

Fprintf(fp,"Ranking Nombre Inglés Idioma C Álgebra lineal Matemáticas discretas Matemáticas avanzadas Criptografía Promedio\n");

fclose(FP);

int i,j;

float s=0,sum

for(I = 0;i<n; i++)

s+=curso[i]. nieve en polvo;

for(I = 0;i<m;i++)

{

suma = 0;

for( j = 0; j & ltn; j++)

suma+=st[i]. Puntuación[j]*Curso[j]. Nieve en polvo;

Santo [I]. ave =(int)(sum * 10.0/s+0.5)/10.0;

}

}

/*Calcular la puntuación media de cada curso Estándar desviación*/

void course_ave()

{

int i, j;

Suma flotante;

for(I = 0;i<n;i++)

{ suma = 0;

for(j = 0;j<m;j++)

suma+=st [j]. Puntuación[I];

Por supuesto[I]. ave = suma/M;}

for(I = 0;i<n;i++)

{

suma = 0;

for(j = 0; j & ltm; j++)

suma+=(st[j].score[i]-curso[I].ave)*(st[j].score[ i] -curso[i]. ave);

Por supuesto[i]. bzc = sqrt(sum/M);

}

}

/*Estadísticas de aprobados y reprobados para cada curso*/

Void Tutorial_Tongji()

{

int i,j;

for(I = 0;i<m;i++)

{

for(j = 0; j & ltn; j++)

{

if(st[i].score[j] & gt;=90) Tongji[j]. exc+= 1;

else if(st[i].score[j]>=80) Tongji[j]. bueno += 1;

else if(st[i].score[j]>=70)tongji[j]. mid+= 1;

else if(st[i].score[j]& gt; 60) Tongji[j]. pasar+= 1;

elseTongji[j].

nopass+= 1;

}

}

}

/*Utiliza los resultados estadísticos de la función course_tongji() para obtener el siguiente distribución de calificaciones del curso Diagrama esquemático*/

void course_tjpic()

{

int i, j;

printf(" \ n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

printf(" \nDiagrama esquemático de distribución de calificaciones para cada curso\ n ");

Printf ("\n 0. Volver Menú principal 1. Inglés 2. Lenguaje C 4. Matemáticas discretas 6. Criptozoología.

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

while(1){

Printf("Ingrese el número del curso (1-6):");

scanf("%d ", & ampj);

Interruptor(j){

Caso 1:Caso 2:Caso 3:Caso 4:Caso 5:Caso 6:{

Printf("\t\t%10s tabla de distribución de calificaciones\n ", curso [j-1].kcname);

Printf("Excelente:\t "); for(I = 0;i<m;i++)if(I<tongji[ j-1].exc)printf(" = ");printf("\n");

printf ("Bueno:\ t");for(I = 0;i<m;i++)if (I<tongji[j-1].good)printf(" = ");printf("\n") ;

printf(" Medio:\ t "); i<m;i++)if(I<tongji[j-1].mid)printf(" = " ); printf(" \ n ");

printf(" Pasar:\ t "); (I = 0; I & ltm; i++) si (I & lt; Tongji [j-1]. pasar)printf(" = "); printf(" \ n ");

Printf("Error:\ t "); Tongji [j-1]. sin pase) printf (" = "); printf (" \ n ");

Caso 0: Devolución

Predeterminado:printf ("¡Error de entrada! \ n "); break

}

}}

/*Cuenta los estudiantes reprobados y genera su información* //p >

Vacío st _Tongji()

{

int i,j;

printf("\nNúmero de estudiante nombre nombre del curso créditos\n") ;

for(i = 0;i<m;i++)

{

for(j = 0;j<n ;j++)

{

si(st[i].

puntuación[j]<60)

printf(" \n % 2d % 10s % 15s % 10.1f % 10d \n ", st[i].num, st[i].nombre, curso [j].kcname,curso[j].snowpowder,st.score[j]);

si no, continuar;

}

}

}

/*Utilice los resultados de la función jqave() para clasificar a los estudiantes*/

int paim (punto flotante t)

{

int i, n = 0;

for(I = 0;i<m;i++)

{

if(t<st [i].ave)n++;

De lo contrario continuar;

}return n+1;

}

/*Estadísticas sobre estudiantes destacados y mostrar su información*/

void st_tongji2()

{

int i, j;

printf("\ nNombre del estudiante Inglés Idioma C Lineal Discreto Matemáticas avanzadas Criptografía Clasificación promedio\n");

for(I = 0;i<m;i++)

{

for (j = 0; j & ltn; j++)

{

if(st[i].ave & gt=92 ||paim(st[i].ave)< ;=5||(st[i].ave>= 88 &&st[i].score[j]>=99))

{

printf("\n% 2d%9s ", st[i].num, st[i].nombre);

for(j = 0;j<n;j++)

printf("%8d " , st[i].score[j]);

printf(" % 10.1f % 4d \ n ", st[i]. Paim Street. ave));

}

De lo contrario, continúe;

}

}

}

/*Escriba la transcripción de la clase clasificada en MC0114.txt */

void Write_cjd()

{

ARCHIVO * fp

int i, j

FP = fopen(" D:\ \ ​​​​MC 0114 . txt ", " w ");

Si (fp==0)

{

printf("¡Error al crear un nuevo archivo! \n ");

Salir (0);

}

Fprintf(fp, "Ranking Nombre Inglés Idioma C Álgebra lineal Matemáticas discretas Matemáticas avanzadas Criptografía promedio \n");

for(i=0;i<m;i++)

{

fprintf(fp," %3d%4d% 10s ", paim(st[i].ave), st[i].num, st[i].nombre);

for(j = 0; j & ltn; j++)

fprintf(fp, " %10d ", st[i]. puntuación[j]);

fprintf(fp, " %10.1f\n ", st[i].

ave);

} printf("Archivo creado correctamente, ruta completa: D:\ \ ​​​​MC 0114 . txt \ n \ n ");

p>

}

/*Escribe las estadísticas de aprobados y reprobados de cada curso en MC0114.txt */

void Write_course()

{

ARCHIVO * fp

int i, j; float t

FP = fopen(" D:\ \ ​​​​KC 0114 . txt ", " w ");

If (fp==0)

{

printf("¡Error al crear un nuevo archivo!\n ");

Salir(0);

}

Fprintf(fp, "Desviación estándar de la puntuación promedio del curso No.");

for(I = 0; i<n;i++)

fprintf(fp, " % d % 10s % 10.1f % 1f % 1d % 10d % 10d % 10d % 10d % 10d % 10d \n ", curso[i]. num, curso [i]. ave, curso [i]. exc, tongji [i]. exitosamente, ruta completa: D:\ \ ​​​​KC 0114 ;

fclose (FP);

}

/. *Mostrar la puntuación de cada estudiante*/

void st_cjd()

{

ARCHIVO * fp

int i,j;

FP = fopen(" D:\ \ ​​​​ctj 0114 . txt ", " a "

Printf("Ingrese el ID del estudiante:");

scanf("%d ", & ampI);

If (i & gt= 0 & amp& ampi & lt=M)

{printf ("Nombre del rango Inglés Idioma C Álgebra lineal Matemáticas discretas Matemáticas avanzadas Criptografía Puntuación promedio\ n ");

fprintf(fp, " %2d %4d%10s ",paim(st[i-1]).ave),st[i -1]. Número, ST[número de identificación 1]. nombre);

printf("%3d%4d%10s ", paim(st[i-1]).ave), st[i-1]. Número, ST[número de identificación 1]. nombre);

for(j = 0; j & ltn; j++) {fprintf(fp, " %8d ", st[i-1]. puntuación[j]); p>printf("%8d ", st[i-1]. puntuación[j]);}

fprintf(fp, " %10.1f\n ", st[i-1].ave );

printf("%10.1f\n ", st[i-1].

ave); fclose(FP);

printf(" \ nLas calificaciones del estudiante se han guardado en: d:\ \ ctj 0114 . txt \ n \ n ");

Else {printf("¡Número de estudiante no válido! \ n "); ST _ CJD() }

}

void main_chaxun()

{

int n;

printf(" \ n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n ");

Printf("\nSistema de consulta detallada de puntajes de estudiantes\ n ");

Printf("\n 1. Generar las calificaciones de los estudiantes especificados. 2. Mostrar la lista de estudiantes reprobados. 3. Mostrar los estudiantes destacados Lista de estudiantes 4. Regresar al menú principal \ n ");

printf(" \ n * * * * * * * * * * * * * * * * * *. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n ");

Mientras(1){ printf("Ejecutar comando de consulta:");

scanf("%d ", & ampn);

Cambiar (n)

{caso 1:ST_CJD();romper;

Caso 2:st _Tongji();romper;

Caso 3:ST_Tongji 2();romper

Caso 4: Retorno;

Predeterminado: printf("¡Error de entrada!\n ");

}}}

void main_menu ()

{ int n;

printf(" \ n & amp;& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp \ n ");

Printf("\nSistema de gestión docente sencillo\ n ");

Printf("\n1 . Hacer una boleta de calificaciones de la clase 2. Crea estadísticas de puntuaciones para cada curso3. Verificar las calificaciones de los estudiantes 4. Consultar distribución de calificaciones del curso 5. Abandonar.

\ n ");

printf(" \ n & amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp& amp \ n ");

while(1){ printf(" Ejecutar comando:");

scanf("%d " , & ampn);

Switch(n)

{ caso 1:Escribir _ CJD();

Caso 2: Escribir _ curso(); ; break;

Caso tres: main_chaxun(); main_menu()

Caso 4: course_TJ pic(); Salir(0);

p>

Predeterminado: printf("¡Error de entrada!\n "); break; /p>

{

leer _ dat 1();

leer _ dat 2()

jqave();

curso _ ave();

Curso_Tongji();

menú_principal().

}

Contenido de dos archivos de datos

(1) Dos archivos de datos

/* Contenido del archivo Wl0114.txt* /

Nombre del estudiante Inglés Idioma C Álgebra lineal Matemáticas discretas Matemáticas avanzadas Criptografía

Liu** 91 92 93 94 95 96

2 *** 85 92 67 75 93 86

3 *** 88 76 91 92 93 77

4Yang Xin65 94 54 91 88 66

5Tuoba Ye93 85 33 54 94 90

Liang Xiao90 94 89 90 92 91

7 Cheng Dong69 98 92 59 58 90

8 Zhou Fengli 92 89 86 94 59 92

9Tian Xiaoyu89 78 92 88 70 74

10Qin Yu89 69 77 74 68 90

11Hua Xiaoshuang90 92 93 91 89 78

12 Liu Yingying 91 85 59 88 65 92

13 Pluma de Gong Yang 89 68 91 89 87 88

Xiang Shaolong 88 77 66 55 87 94

15 Dong Shuaimin 89 92 77 91 65 67

16 AG 88 56 88 78 69 89

17 Hua Qingxiao 89 65 82 94 84 89

Wang Xiaobao 69 58 44 24 33 55

19 Gushen 92 91 90 93 94 91

20 Lu Jian 85 89 84 81 83 92

21 Yu 59 91 80 85 85 84

22Liang Wenjing85 84 94 92 93 94

230.000 de regreso al Tíbet91 94 85 83 81 61

Naruto85 57 93 94 58 68

25 Universidad de Wuhan 85 81 87 86 80 72

/* Contenido del archivo WL01LC.txt*/

Nombre del curso Número de créditos del curso

1 Inglés 6.0

2 Idioma C 4.0

3 Álgebra lineal 5.0

4 Matemática discreta 4.5

5 Matemática avanzada 3.0

6 Criptozoología 2.0