Red de conocimiento del abogados - Ley de patentes - Utilice el lenguaje C para programar un sistema de gestión del desempeño de los estudiantes.

Utilice el lenguaje C para programar un sistema de gestión del desempeño de los estudiantes.

El siguiente es el producto terminado que hice

#include "stdio.h"

#include "stdlib.h"

# include "string.h"

#define N 100 //Número máximo de estudiantes

#define LEN sizeof(struct Student)

ARCHIVO *fp;

int n=0; //Número de estudiantes

struct Student

{

int num;

nombre de char [20];

int x_num;

int class_num;

puntuación flotante1;

puntuación flotante2;

puntuación flotante3;

total flotante;

promedio flotante;

}stu[N]; //Estructura de información del estudiante

/*1. La información del estudiante se almacena en el archivo*/

void creat()

{

int i,j;

.

struct Student t;

printf("Ingrese el número de estudiantes.

(no más de %d)\n",N);

scanf("%d",&n);

if(n>N) exit(0);

p>

printf("Ingrese la información del estudiante en secuencia: número de estudiante, nombre, código de universidad, número de clase, puntaje alto en matemáticas, puntaje en inglés, puntaje en lenguaje C\n");

for(i=0;i

{

scanf("%d %s %d %d %f %f %f",&stu[i] .num,stu[i].nombre, &stu[i].x_num,&stu[i].class_num,&stu[i].score1,&stu[i].score2,&stu[i].score3);

stu[i].total= stu[i].score1+stu[i].score2+stu[i].score3;

stu[i].average=stu[i]. total/3;

}

for(j=0;j

for(i=j;i

{

if(stu[i].num > stu[i+1].num)

{

t=stu[i];

stu[i]=stu[i+1];

stu[i+1]=t;

}

}

if((fp=fopen("student_number","wb"))==NULL) //Guarda el número de estudiantes n

{

printf( "¡No se puede abrir el archivo!\n");

exit(0);

}

fwrite(&n,sizeof(int),1, fp);

if((fp=fopen("estudiante","wb"))==NULL)

{

printf("¡No se puede abrir el archivo!\n");

exit(0);

}

for( i=0;i

fwrite(&stu[i],LEN,1,fp);

fclose(fp);

}

/*2. Agregar información de un estudiante*/

void add()

{

int i,j;

char ch;

estructura estudiante t;

if((fp=fopen("número_estudiante","rb"))==NULL)

{

printf("¡No se puede abrir el archivo!\n");

exit(0);

}

fread(&n,sizeof(n), 1,fp);

if((fp=fopen("estudiante","rb"))==NULL)

{

printf(" ¡No se puede abrir el archivo!\n");

exit(0);

}

for(i=0;i

fread(&stu[i],LEN,1,fp);

printf("

Ingrese la información del estudiante: número de estudiante, nombre, código de universidad, número de clase, puntaje alto en matemáticas, puntaje en inglés, puntaje en lenguaje C\n");

scanf("%d %s %d %d %f %f %f" ,&t.num,t.name,&t.x_num,&t.class_num,&t.score1,&t.score2,&t.score3);

t.total=t.score1+ t.score2+t .score3;

t.average=t.total/3;

if(t.num>stu[n-1].num)

{

n=n+1;

stu[n-1]=t;

}

más

for(i=0;i

{

printf("aw\n");

if(t.num

{

n=n+1;

for(j=n-2;j >i-1; j--) stu[j+1]=stu[j];

stu[i]=t;

romper;

}

}

if((fp=fopen("número_estudiante","wb"))==NULL)

{

printf(" ¡No se puede abrir el archivo!\n");

exit(0);

}

fwrite(&n,sizeof(n ),1,fp );

if((fp=fopen("estudiante","wb"))==NULL)

{

printf ("¡No se puede abrir el archivo!\n");

exit(0);

}

for(i=0;i

fwrite(&stu[i],LEN,1,fp);

fclose(fp);

comenzar:

printf("@ ¿Quieres continuar con la operación "agregar" (y/n)?\n");

fflush(stdin);

ch=getchar() ;

if (ch=='y'||ch=='Y') add();

else if(ch=='n'||ch== 'N') ;

else { printf("¡Entrada incorrecta!\n"); ir a comenzar;}

}

/*3. información*/

void del()

{

int i,numb,mark=0;

char ch;

printf(" Ingrese el número de estudiante del estudiante que desea eliminar:\n");

scanf("%d",&numb);

if( (fp=fopen("número_estudiante","rb "))==NULL)

{

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

salir(0);

p>

}

fread(&n,sizeof(n),1,fp);

if(( fp=fopen("estudiante"

,"rb"))==NULL)

{

printf("¡No se puede abrir el archivo!\n");

exit(0) ;

}

for(i=0;i

{

fread(&stu[i], LEN,1,fp);

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

{

i--;

n--;

mark=1;

}

}

if(mark==0) printf(" No hay información sobre este estudiante\n");

if((fp=fopen("student_number","wb"))==NULL)

{

printf("¡No se puede abrir el archivo!\n");

exit(0);

}

fwrite(&n,sizeof (n) ,1,fp);

if((fp=fopen("estudiante","wb"))==NULL)

{

printf( "¡No se puede abrir el archivo!\n");

salir(0);

}

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

fwrite(&stu[i],LEN,1,fp);

fclose(fp);

comenzar:

printf("@¿Desea continuar con la operación "eliminar" (s/n)?\n");

fflush(stdin);

ch=getchar ();

if(ch=='y'||ch=='Y') del();

else if(ch=='n'||ch =='N') ;

else { printf("¡Entrada incorrecta!\n"); ir a comenzar;}

}

/*4. Modificar la información del estudiante*/

void change()

{

int i,numb,mark=0;

float score1, puntuación2, puntuación3, total, promedio;

char ch;

printf("Ingrese el número del estudiante, puntuación alta en matemáticas, puntuación en inglés, puntuación en lenguaje C:\n");

scanf("%d %f %f %f",&numb,&score1,&score2,&score3);

if((fp=fopen("número_estudiante","rb") )==NULL)

{

printf("¡No se puede abrir el archivo!\n");

exit(0);

}

fread(&n,sizeof(n),1,fp);

if((fp=fopen("estudiante","rb"))== NULL)

{

printf("¡No se puede abrir el archivo!\n");

exit(0);

}

for(i=0;i

{

fread(&stu[i],LEN,1,fp);<

/p>

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

{

totall=puntuación1+puntuación2+puntuación3;

promedio= totall/3;

stu[i].score1=score1;

stu[i].score2=score2;

stu[i].score3= puntuación3;

stu[i].total=totall;

stu[i].average=promedio;

mark=1;

}

}

if(mark==0) printf("No hay información sobre este estudiante\n");

if((fp= fopen ("número_estudiante", "wb"))==NULL)

{

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

salir(0);

}

fwrite(&n,sizeof(n),1,fp);

if((fp=fopen(" estudiante ","wb"))==NULL)

{

printf("¡No se puede abrir el archivo!\n");

salir( 0 );

}

for(i=0;i

fwrite(&stu[i],LEN,1,fp) ;

fclose(fp);

begin:

printf("@¿Quieres continuar con la operación "modificar" (y/n)?\ n");

fflush(stdin);

ch=getchar();

if(ch=='y'||ch==' Y') del( );

else if(ch=='n'||ch=='N') ;

else { printf("¡Entrada incorrecta!\n "); ir a comenzar;}

}

/*5. Operación de consulta*/

//(1) Consulta por número de estudiante, ingrese un estudiante número y generar la información correspondiente del estudiante.

void num_search()

{

int i,num,mark=0;

printf("Ingrese el número de estudiante:\ n");

scanf("%d",&num);

for(i=0;i

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

{

printf("Número de estudiante: %d Nombre: %s Código de universidad: %d Número de clase: %d Puntaje alto en matemáticas: %0.2f Puntuación en inglés:%0.2f c Puntuación en idioma:%0.2f Puntuación total:%0.2f Puntuación media:%0.2f\n",stu[i].num,stu[i].nombre,stu[i]. x_num,stu[i].class_num,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].total,stu[i].average);

mark=1;

}

if(mark==0) printf("No se encontró información relevante.\n");

}

//(2) Buscar por nombre completo.

void name_search()

{

int i,mark=0;

char nombre[20];

printf("Ingrese nombre:\n");

scanf("%s",nombre);

for(i=0;i

if(strcmp(stu[i].name,name)==0)

{

printf("Número de estudiante: %d Nombre: % s Código de universidad: %d Número de clase: %d Puntaje alto en matemáticas: %0.2f Puntaje en inglés: %0.2f c Puntaje en idioma: %0.2f Puntaje total: %0.2f Puntaje promedio: %0.2f\n",stu[i] .num,stu[i].nombre,stu[i].x_num,stu[i].class_num,stu[i].score1,stu[i].score2,stu[i].score3,stu[i]. total,stu[i].average);

mark=1;

}

if(mark==0) printf("No se encontró información relevante . \n");

}

//(3) Buscar por apellido.

void firstname_search()

{

int i,mark=0;

char nombre[20];

printf("Ingrese apellido:\n");

scanf("%s",nombre);

for(i=0;i

if(stu[i].nombre[0]==nombre[0] && stu[i].nombre[1]==nombre[1])

{

printf("Número de estudiante: %d Nombre: %s Código de universidad: %d Número de clase: %d Puntuación alta en matemáticas: %0.2f Puntuación en inglés: %0.2f Puntuación en lenguaje C: %0.2f Total puntuación: %0.2f Puntuación media:%0.2f\n",stu[i].num,stu[i].name,stu[i].x_num,stu[i].class_num,stu[i].score1, stu[ i].score2,stu[i].score3,stu[i].total,stu[i].average);

marca=1;

}

if(mark==0) printf("No se encontró información relevante.\n");

}

//(4) Consulta por universidad e ingresa el nombre de la universidad, genera la información de todos los estudiantes de la universidad.

void x_search()

{

int i,x_num,mark=0;

printf("Ingrese el código de la universidad: \ n");

scanf("%d",&x_num);

for(i=0;i

if( stu [i].x_num==x_num)

{

printf("ID de estudiante: %d Nombre: %s Código de universidad: %d ID de clase: %d Puntaje alto en matemáticas : %0.2f Puntuación en inglés:%0.2f c Puntuación en idioma:%0.2f Puntuación total:%0.2f Puntuación media:%0.2f\n",stu[i].num,stu[i].nombre,stu[i] x_num,stu[i].class_num,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].total,stu[i].average);

mark=1;

}

if(mark==0) printf("No se encontró información relevante.\n");

}

//(5) Consulta por clase, ingresa el nombre de la clase y genera la información de todos los estudiantes de la clase.

void classnum_search()

{

int i,class_num,mark=0;

printf("Ingrese el código de la universidad: \ n");

scanf("%d",&class_num);

for(i=0;i

if( stu [i].class_num==class_num)

{

printf("ID de estudiante: %d Nombre: %s Código de universidad: %d ID de clase: %d Puntaje alto en matemáticas : %0.2f Puntuación en inglés:%0.2f c Puntuación en idioma:%0.2f Puntuación total:%0.2f Puntuación media:%0.2f\n",stu[i].num,stu[i].nombre,stu[i] x_num,stu[i].class_num,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].total,stu[i].average);

mark=1;

}

if(mark==0) printf("No se encontró información relevante.\n");

}

//Módulo de consulta

void search()

{

char ch;

int i;

if((fp=fopen("student_number","rb"))==NULL)

{

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

exit(0);

}

fread(&n,sizeof(n),1,fp);

if((fp=fopen("estudiante","rb"))==NULL)

{

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

salir(0);

}

for(i=0;i

fread ( &stu[i],LEN,1,fp);

fclose(fp);

printf("Seleccione el código de palabra clave a consultar: 1. Consulta de ID de estudiante.

2. Buscar por nombre completo. 3. Buscar por apellido. 4. Consulta universitaria. 5. Consulta de clase. \n");

fflush(stdin);

ch=getchar();

switch(ch)

{

caso '1': num_search(); descanso;

caso '2': nombre_search(); descanso;

caso '3': nombre_búsqueda() ; romper;

caso '4': x_search(); romper;

caso '5': classnum_search();

predeterminado :printf( "El código de entrada es incorrecto.\n");

}

begin:

printf("@Si continuar con la operación de "consulta" (y /n) ?\n");

fflush(stdin);

ch=getchar();

if(ch=='y'| |ch= ='Y') buscar();

else if(ch=='n'||ch=='N') ;

else { printf(" Entrada incorrecta !\n"); ir a comenzar;}

}

/*6. Estadísticas*/

//(1) Información del estudiante basada en puntuación total Ordene (de mayor a menor), genere la información ordenada y almacene la información ordenada del estudiante en un nuevo archivo binario

void total_score()

{

int i,j;

estructura estudiante t;

for(j=0;j

for(i= 0;i

if(stu[i].total

{

t=stu[i];

stu[i]=stu[i+1];

stu[i+1]=t;

}

if((fp=fopen("student_number","wb"))==NULL)

{

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

exit(0);

}

fwrite(&n,sizeof(n),1,fp );

if((fp=fopen("student_totalscore","wb"))==NULL) //Ordenar por puntuación total y guardar en una nueva carpeta.

{

printf("¡No se puede abrir el archivo!\n");

exit(0);

}

for(i=0;i

{

printf("Número de estudiante: %d Nombre: %s Código de universidad: %d Número de clase: %d Puntuación alta en matemáticas: %0.2f Puntuación en inglés: %0.2f Puntuación en lenguaje c: %0.2f Puntuación total: %0.2f Puntuación media: %0.2f\n",stu[i].num,stu[i ].nombre,stu[i].x_num,stu[i].class_num,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].total,stu[i] .average);

fwrite(&stu[i],LEN,1,fp);

}

fclose(fp);

}

//(2) Cuente el número de estudiantes en cada rango de puntuación según la puntuación promedio (reprobado, 60-69, 70-79, 80-89, 90-100).

void each_score()

{

int e,d,c,b,a,i;

a=b= c=d=e=0;

for(i=0;i

{

if(stu[i].average <60) e++;

else if(stu[i].average<70) d++;

else if(stu[i].average<80) c++;

else if(stu[i].average<90) b++;

else a++;

}

printf("El número de errores estudiantes es %d\n El número de personas entre 60-69 es %d\n El número de personas entre 70-79 es %d\n El número de personas entre 80-89 es %d\n El número de personas entre 90-100 es %d\n",e,d,c,b, a);

}

//(3) Encuentra los estudiantes con las puntuaciones más altas en el tres cursos y generar su información.

void high_stu()

{

int max1,max2,max3,i;

max1=max2=max3=0;

for(i=0;i

{

if(stu[max1].score1

if(stu[max2].score2

if(stu[max3].score3

}

printf("Información de los estudiantes con mayor puntaje en matemáticas secundarias:\nNúmero de estudiante: %d Nombre: %s Código de universidad: %d Número de clase: %d Puntuación alta en matemáticas: %0.2f Puntuación en inglés: %0.2f c Puntuación en idioma: %0.2f Puntuación total: %0.2f Puntuación media: %0.2f\n",stu[max1].num,stu [max1] .nombre,stu[max1].x_num,stu[max1].class_num,stu[max1].score1,stu[max1].score2,stu[max1].score3,stu[max1].total,stu[ max1]. Average);

printf("Información del estudiante con el puntaje más alto en inglés:\nNúmero de estudiante: %d Nombre: %s Código de universidad: %d Número de clase: %d Puntaje alto en matemáticas : %0.2f Puntaje en inglés: %0.2f Puntaje en lenguaje c:%0.2f Puntaje total:%0.2f Puntaje promedio:%0.2f\n",stu[max2].num,stu[max2].nombre,stu[max2]. x_num,stu[max2] .class_num,stu[max2].score1,stu[max2].score2,stu[max2].score3,stu[max2].total,stu[max2].average);

printf("c Información del estudiante con la puntuación más alta en idioma:\nNúmero de estudiante: %d Nombre: %s Código de universidad: %d Número de clase: %d Puntuación alta en matemáticas: %0.2f Puntuación en inglés: %0.2f c Puntuación en idioma: %0.2f Puntuación total: % 0.2f Puntuación media:%0.2f\n",stu[max3].num,stu[max3].name,stu[max3].x_num,stu[max3].class_num,stu[max3 ].score1,stu[max3 ].score2,stu[max3].score3,stu[max3].total,stu[max3].average);

}

// (4) Cuente 3 respectivamente. Se calcula y genera la tasa de fracaso del curso.

vacío lleno()

{

int i;

float f1,f2,f3,sf1,sf2,sf3;

f1=f2=f3=0;

for(i=0;i

{

si( stu[i].score1<60) f1++;

if(stu[i].score2<60) f2++;

if(stu[i].score3<60) f3++ ;

}

sf1=f1/n;

sf2=f2/n;

sf3=f3/n; p>

printf("La tasa de fracaso en matemáticas superiores es %0.2f\n",sf1);

printf("La tasa de fracaso en inglés es %0.2f\n", sf2);

printf("Tasa de fallos del lenguaje C %0.2f\n",sf3);

}

//Módulo estadístico

void stat()

{

char ch;

int i;

if((fp=fopen(" número_estudiante" ,"rb"))==NULL)

{

printf("¡No se puede abrir el archivo!\n");

salir( 0) ;

}

fread(&n,sizeof(n),1,fp);

if((fp=fopen("estudiante", "rb "))==NULL)

{

printf("¡No se puede abrir el archivo!\n");

exit(0);

p>

}

for(i=0;i

fread(&stu[i],LEN,1,fp);

printf("Seleccione el código de operación estadística a realizar:\n1. Ordene por puntaje total de mayor a menor.\n2. Cuente el número de estudiantes en cada rango de puntaje por puntaje promedio (fallido, 60 -69, 70-79, 80-89, 90-100). \n3. Encuentre los estudiantes con las calificaciones más altas en los tres cursos \n");

fflush(stdin).

ch=getchar();

switch(ch)

{

caso '1': total_score();

caso '2': each_score(); descanso;

caso '3': high_stu();

caso '4': lleno( ); break;

default :printf("El código de entrada es incorrecto.

\n");

}

begin:

printf("@¿Quieres continuar con la operación "estadísticas" (s/n)?\ n");

fflush(stdin);

ch=getchar();

if(ch=='y'||ch==' Y') stat ();

else if(ch=='n'||ch=='N') ;

else { printf("¡Entrada incorrecta!\n "); ir a comenzar;}

}

/*Opciones principales*/

acción nula()

{

char ch;

printf("Ingrese el código que desea operar:\n1. Ingrese la información del estudiante;\n2. Agregue información del estudiante;\n3. Borre la información del estudiante;\n4. Modificar información del estudiante; \n5. Consultar la información del estudiante según diferentes condiciones;\n6. Realizar trabajo estadístico sobre las puntuaciones de los estudiantes según diferentes condiciones \n");

fflush(stdin);

ch=getchar();

switch(ch)

{

case '1':creat();break //Ingrese la información del estudiante

p>

case '2':add();break; //Agregar información del estudiante

case '3':del();break; //Eliminar información del estudiante

case '4':change();break; //Modificar la información del estudiante

case '5':search();break; //Consultar la información del estudiante según diferentes condiciones

case '6':stat();break; //Estadísticas sobre las puntuaciones de los estudiantes según diferentes condiciones

default:printf("El código de entrada es incorrecto.\n");

}

begin:

printf("#¿Desea continuar con la operación de "administración"? (y/n)\n");

fflush(stdin);

ch=getchar();

if(ch=='y'||ch=='Y') acción() ;

else if(ch=='n'||ch=='N') ;

else { printf("¡Entrada incorrecta!\n"); }

}

//Función principal

void main()

{

printf("~ ~~~~ ~Sistema de gestión del desempeño estudiantil~~~~~~\n\n");

action();

}