Red de conocimiento del abogados - Ley de patentes - Sistema de gestión del desempeño de los estudiantes de diseño de cursos de lenguaje C

Sistema de gestión del desempeño de los estudiantes de diseño de cursos de lenguaje C

Gracias al cartel original

#include

#include

#define TAMAÑO 10 /* Definir el TAMAÑO constante para facilitar futuras modificaciones*/

struct Student /*Definir una matriz de estructura para almacenar la información del estudiante*/

{

int número; / *número de estudiante*/

nombre de char[20];/*nombre*/

puntuación flotante[3];/*puntuación*/

promedio flotante ;/*Puntuación promedio*/

}stu[SIZE];

void menu();/*Llamar a la función del menú*/

void write() ;/*Leer información*/

void save();/*Guardar función del archivo stud.dat*/

void open();/*Compruebe si es guardado correctamente*/

void inturn (struct Student c[]);/*Función utilizada para ordenar la información de los estudiantes por puntuación promedio*/

void save2();/*La información ordenada La información se almacena en el archivo studsort.dat*/

void read();/*Lee la información de los estudiantes de 2º 4 6 8 10 en el archivo studsort.dat*/

void main()

{

int Choice;/*Variable de elección del usuario*/

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

printf("* *\n");

printf ("* Hwadee &Gestión de archivos de puntuación de estudiantes& Hwadee *\n");

printf("* *\n");

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

printf( "******** *************************●●Bienvenido●●************ *********** *************");

sistema("pausa");

mientras (1)

{

menu();/*Llame a la función de menú para formar la interfaz de operación*/

printf("Seleccione:\t ");

scanf("%d", &choice);

if ( elección == 0 )

{

sistema ("cls");

printf("\ n\n\t\t\t\tGracias

¡¡¡Uso!!!);

break;

}

switch(choice) /*Múltiples opciones para lograr diferentes funciones*/

{

caso 1:

escribir();

romper;

caso 2:

sistema ("cls");

save();

break;

caso 3:

system("pause") ;

system("cls");

open();

break;

caso 4:

system("cls");

printf("Información del estudiante antes de ordenar:\n");

open();

inturn( stu) ;

save2();

break;

caso 5:

system("cls");

read();

break;

predeterminado:

printf("\n¡No existe tal función!\nVuelva a ingresar\n ");

}

}

}

menú vacío()

{

printf ("\n1*****Ingrese la información del estudiante\t\t2*****Guarde la información en el archivo stud.dat\n");

printf("3 **** *Verifique el archivo data\t\t4***** Ordene la información del estudiante y guárdela en el archivo studsort.dat\n");

printf("5***** Lea el información del 2º 4 6 8 10º estudiante en el archivo studsort.dat\n");

printf("0*****Salir del sistema\n\n\n");

}

/*********************************** ** ********************************\

Nombre de la función:

escribir

Descripción de la función:

Escritura completa de la información del estudiante

Parámetros de la función:

i stu

Valor de retorno:

Ninguno

Historial del módulo:

\******************** ************************************************* ***** **/

void write()

{

int i;/*count variable*/

stu[i]. promedio = 0;/*Inicializar el promedio de miembros de la estructura*/

printf("Ingrese la información del estudiante\n");

printf("Número de estudiante\tNombre \ tChino\tMatemáticas\tInglés\t\n");

for (i=0; i

{

scanf (" %d\t",&stu[i].number);

if (stu[i].number == 0)/*Ingrese 0 cuando no se requiera información*/

romper;

scanf("%s\t

%f\t%f\t%f",&stu[i].nombre, &stu[i].puntuación[0], &stu[i].puntuación[1], &stu[i].puntuación[2]);

stu[i].promedio = (stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/* Calcular nota media*/

}

}

/********************* * ************************************************* \

Nombre de la función:

guardar

Descripción de la función:

Leer la información escrita en el archivo

Parámetros de función:

ARCHIVO *fp i

Valor de retorno:

Ninguno

Historial del módulo:

\ ************************************************** ** ************************/

void save()

{

ARCHIVO *fp ;/*Defina el puntero del archivo para leer datos del archivo*/

int i;

if ((fp=fopen("stud.dat" ,"wb")) == NULL)

{

printf("no se puede abrir el archivo\n");

return;

}

for (i=0;i

if (fwrite(&stu[i],sizeof(struct Student),1,fp) != 1)

printf("error de escritura de archivo\n");

fclose(fp);

printf("\n¡Información guardada exitosamente! ¡¡Felicitaciones!! \n\n" );

}

/*************************** ***** *************************************\

Función nombre:

abrir

Descripción de la función:

Se utiliza para verificar si los datos leídos en el archivo son correctos

Parámetros de la función:

ARCHIVO *cp i

Valor de retorno:

Ninguno

Historial del módulo:

\**** ****** ********************************************** ******* **********/

void open()

{

int i;

ARCHIVO *cp ;

cp = fopen ("stud.dat","rb");

printf("Información guardada en el archivo stud.dat:\ n\n");

printf("Número de estudiante\tNombre\tMatemáticas\tChino\tInglés\tPuntuación promedio\n\n");

for (i=0;i < TAMAÑO;i++)

{

fread(&stu[i],sizeof(struct estudiante),1,cp);

printf("%d \ t%s\t%.1f\t%.1f\t%.1f\t%.1f\n\n\n",stu[i].n

número, stu[i].nombre, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average );

}

fclose (cp);

}

/***************** ***** ********************************************** ****** ***\

Nombre de la función:

inturn

Descripción de la función:

Se utiliza para ordenar los elementos en la matriz de estructura

Parámetros de función:

en i,j,k

estructura temporal del estudiante

Valor de retorno:

Ninguno

Historial del módulo:

\*************************** ********* *************************************/

void inturn(struct Student m[])

{

int i,j,k;/*count variable*/

struct Student temp;/*el tipo de variable intermedia es el cuerpo de la estructura*/

for(i=0; i

for (j=i +1; j

{

if( m[i].average < m[j].average )

{

temp = m[i];

m[i] = m[j];

m[j] = temp;

}

}

printf("\nInformación ordenada del estudiante:\n\n");

printf("Número de estudiante \tNombre\ tMatemáticas\tChino\tInglés\tPuntuación promedio\n");

for (i=0; i

{

printf("%d nombre%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n\n\n",i+1, stu[i] .número , stu[i].nombre, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average );

}/*Salida de información del estudiante ordenada*/

}

/****************** **** *********************************************** **\

Nombre de la función:

guardar2

Descripción de la función:

Leer la información ordenada del estudiante en otro archivo Medio

Parámetros de función:

ARCHIVO *mp

i

Valor de retorno:

Ninguno

Historial del módulo:

\***************************************** ** ********************************/

void save2()

{

ARCHIVO *mp;

int i;

if ((mp=fopen("studsort.

dat","wb"))==NULL)

{

printf("no se puede abrir el archivo\n");

return;

}

for (i=0;i

if (fwrite(&stu[i], sizeof(struct Student), 1, mp) != 1)

printf("error de escritura de archivo\n");

fclose(mp);/*Cerrar el archivo después de leer*/

}

/****************************************** * *******************************\

Nombre de la función:

leer

Descripción de la función:

Leer información de otro archivo

Parámetros de la función:

ARCHIVO *tp

i

Valor de retorno:

Ninguno

Historial del módulo:

\*************** * ************************************************* ** *****/

void read()

{

int i=1;

ARCHIVO *tp;

tp = fopen ("studsort.dat", "rb" );

printf("La información de los estudiantes pares en el archivo studsort.dat es la siguiente:\ n\n");

printf("Número de estudiante\tNombre\tMatemáticas\tChino\tInglés\tPuntuación promedio\n\n");

for (i = 1;i

{

fseek(tp,i*sizeof(struct Student),0);/*fseek puede desplazar el comienzo del archivo según para que el usuario necesite Shift para leer los datos del archivo.

k*sizeof(struct Student) significa mover el puntero de posición a k bytes en la posición actual*/

fread(&stu[ i],sizeof(struct Student),1,tp);

/*Nota: Debes usar la función fseek para posicionarlo antes de poder leer los datos según tus necesidades, pero solo usa fseek funciona sin fread,

simplemente imprime los datos en la pantalla sin leerlos del archivo. Este es un problema común*/

printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n", stu[ i ].número, stu[i].nombre, stu[i].puntuación[0], stu[i].puntuación[1], stu[i].puntuación[2], stu[i].promedio ); /p>

}

fclose (tp);/*Cerrar el archivo después de leer*/

}