Red de conocimiento informático - Descarga de software - Utilice la programación en lenguaje C para implementar un sistema sencillo de gestión del desempeño de los estudiantes.

Utilice la programación en lenguaje C para implementar un sistema sencillo de gestión del desempeño de los estudiantes.

#includelt;stdio.hgt;

#includelt;stdlib.hgt;

#includelt;conio.hgt;

# includelt;dos.hgt;

#includelt;string.hgt;

#define?LEN?sizeof(struct?student)

#define?FORMAT? "-8d-15s-12.1lf-12.1lf-12.1lf-12.1lf\n"

#define?DATA?stu[i].num, stu[i].nombre, stu[i] .elec, stu[i].expe, stu[i].requ, stu[i].sum

struct?student/*Definir estructura de desempeño de los estudiantes*/

{ ? int?num;/*número de estudiante*/ char?name[15];/*nombre*/ double?elec;/*curso electivo*/ double?expe;/*curso experimental*/ double?requ;/*curso obligatorio Lección*/ double?sum;/*Puntuación total*/

};

struct?student?stu[50];/*Definir matriz de estructura*/

void?in();/*Ingresar información de puntuación del estudiante*/

void?show();/*Mostrar información del estudiante*/

void?order(); *Ordenar por puntuación total*/

void?del() /*Eliminar información de puntuación del estudiante*/

void?modify() /*Modificar información de puntuación del estudiante*/

void?menu();/*Menú principal*/

void?insert();/*Insertar información del estudiante*/

void?total() ;/*Calcular el número total de personas*/

void?search();/*Encontrar información de los estudiantes*/

void?main()/*Función principal*/

{?int?n; menu(); scanf("d",amp;n);/*Ingrese el número de la función seleccionada*/ while(n) {?switch(n) {? caso?1: ?en(); romper;

caso?2: ?búsqueda();

caso?3: ?del(); >

caso?4: ?modificar(); romper;

caso?5: ?insertar(); romper;

caso?6: ?orden(); ;

caso?7:?total();romper; caso?8:?show();romper;

predeterminado: romper }

obtener; ();

menu(); /*Mostrar la interfaz del menú nuevamente después de ejecutar la función*/

scanf("d", amp; }

);

}

void?in()/*Ingrese la información del estudiante*/

{?int?i, m=0 /*m es el número de registros*/; char?ch[2] ; FILE?*fp;/*Definir puntero de archivo*/ if((fp=fopen("data.txt", "a "))==NULL)/*Abrir el archivo especificado

*/ {? printf("¿no?abrir\n"); return } while(!feof(fp)) { if(fread(amp;stu[m]?,LEN,1,fp)==1 ) m; /*Cuenta el número actual de registros*/ } fclose(fp); if(m==0) printf("¡No? registro!\n"); else { system("cls"); ; /*Llame a la función show para mostrar la información original*/ } if((fp=fopen("data.txt", "wb"))==NULL) { printf("can?not?open\n"); ; return ; } for(i=0; ilt; m; i )

fwrite(amp; stu[i]?, LEN, 1, fp); / printf("por favor?input(y/n):"); scanf("s",ch);

while(strcmp(ch,"Y")==0||strcmp(ch , "y")==0)/*Determinar si se ingresa nueva información*/

{

printf("number: ");

scanf ( "d",amp;stu[m].num);/*Ingrese el número de estudiante*/

for(i=0;ilt;m;i)

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

{

printf("¿el?número?existe, presione?cualquiera?para?continuar!"

getch();

fclose(fp);

retorno

} printf("nombre:");

scanf("s", stu[m].name); /*Ingrese el nombre del estudiante*/ printf("elective:"); );/*Ingrese los resultados del curso electivo*/ printf("experiment:");

scanf("lf",amp;stu[m].expe);/*Ingrese los resultados del curso experimental* / printf ("required?curso:");

scanf("lf",amp;stu[m].requ);/*Ingrese los puntajes requeridos del curso*/ stu[m].sum= stu[m ].elec stu[m].expe stu[m].requ;/*Calcular la puntuación total*/ if(fwrite(amp;stu[m],LEN,1,fp)!=1)/* Ingrese el nuevo Escriba la información en el archivo de disco especificado*/ {

printf("can?not?save!"

getch();

} else

{

printf("s?saved!\n", stu[m].name);

} printf("¿continuar?(s/n):"); /*Preguntar si desea continuar*/ scanf("s", ch } fclose(fp); ;

}

void?show() {?FILE?*fp;

int?

i, m=0;

fp=fopen("datos.txt", "rb"

mientras(!feof(fp))

{

if(fread(amp;stu[m]?,LEN,1,fp)==1)?

m;

}?

fclose(fp);

printf("número?nombreexperimento selectivo?requiredsum\t\n");

for(i=0;ilt;m; i )

{? printf(FORMATO, DATOS); /*Imprimir la información en el formato especificado*/

} }

void?menu() / *Función personalizada para implementar la función del menú*/

{ system("cls"); printf("\n\n\n\n\n"); - ------------------ESTUDIANTE-------------------|\n"); printf("\t \t|\t?0.?salir|\n"); printf("\t\t|\t?1.?input?record|\n"); printf("\t\t|\t? 2.?buscar?registro|\n"); printf("\t\t|\t?3.?eliminar?registro|\n"); printf("\t\t|\t?4.?modificar ?registro|\n"); printf("\t\t|\t?5.?insertar?registro|\n"); printf("\t\t|\t?6.?orden|\n" ); printf("\t\t|\t?7.?número?|\n"); printf("\t|\t?8.?show|\n"); \t|----------------------------------------------- --- |\n\n"); printf("\t\t\tchoose(0-8):");

}

void?order()/ *función de clasificación personalizada*/

{?FILE?*fp; struct?student?t; int?i=0, j=0, m=0; txt", "r "))==NULL) {?

printf("¿no puede? abrir!\n");

return; } while(!feof( fp) )? if(fread(amp;stu[m]?,LEN,1,fp)==1)? m; fclose(fp); if(m==0)? \n "); retorno; } if((fp=fopen("data.txt","wb"))==NULL) { printf("¿no se puede?abrir\n"); retorno;} para(i =0 ;ilt;m-1;i) for(j=i 1;jlt;m;j)/*doble bucle para lograr comparación e intercambio de rendimiento*/ if(stu[i].sumlt;stu[j]. suma) { ?t=stu[i]; stu[i]=stu[j]; stu[j]=t;} si((fp=f

open("data.txt","wb"))==NULL) {?printf("can?not?open\n");return;} for(i=0;ilt;m;i)/*will Vuelva a escribir el contenido reordenado en el archivo de disco especificado*/ if(fwrite(amp;stu[i]?, LEN, 1, fp)!=1)

{?

printf ("s?no?no?guardar!\n");?

getch() } fclose(fp); printf("guardar?con éxito\n");

}

void?del()/*función de eliminación personalizada*/

{FILE?*fp; int?snum, i, j, m= 0 char?ch[; 2]; if((fp=fopen("data.txt", "r "))==NULL) {?printf("¿no?open\n");} while (!feof(fp) )?if(fread(amp;stu[m],LEN,1,fp)==1)?m fclose(fp); if(m==0)? { printf("no ?record!\n" ); return; } printf("por favor?ingrese?el?número: "); scanf("d",amp;snum);

for(i=0;ilt ;m;i) si (snum==stu[i].num)

break; printf("buscar?el?estudiante,eliminar?(s/n)"); scanf("s" ,ch); strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*Determinar si eliminar*/ for(j=i;jlt;m; j) stu[j]= stu[j 1];/*Mover el siguiente registro a la posición del registro anterior*/ m--;/*Reducir el número total de registros en 1*/ if((fp=fopen( "data.txt", "wb"))==NULL) {?printf("can?not?open\n");return;} for(j=0;jlt;m;j)/*se cambiará Reescriba los registros al especificado archivo de disco*/ if(fwrite(amp;stu[j]?, LEN, 1, fp)!=1)

{?printf("¿No puedo? guardar!\n"); ();} fclose(fp); printf("¿eliminar? exitosamente!\n");

}

void?search()/ *Función de búsqueda personalizada*/

{?FILE?*fp; int?snum, i, m=0; char?ch[2]; ) {?printf("¿no?no?abrir\n");return;} while(!feof(fp))?if(fread(amp;stu[m], LEN, 1, fp)==1)? m; fclose(fp); if(m==0)?{printf("¡no?registro!\n");} printf("por favor?ingrese?n

umber: "); scanf ("d", amp; snum); for (i=0; ilt; m; i) if (snum==stu[i].num)/* Encuentre si el número de estudiante ingresado está registrado en */ {?printf("encontrar?el?estudiante,mostrar?(s/n)"); scanf("s",ch); if(strcmp(ch,"Y")==0||strcmp( ch, "y")==0)?

{ printf("number?nameelectiveexperiment?requiredsum\t\n"); printf(FORMAT, DATA);/*Convierte los resultados encontrados al especificado. Formatear salida*/ break; } } if(i==m)?printf("can?not?find?the?student!\n"); /*La información que busca no se encuentra*/

}

void?modify()/*función de modificación personalizada*/

{?FILE?*fp; int?i, j, m=0, snum; if( (fp=fopen("data.txt", "r "))==NULL) {?printf("¿no?abrir\n");} while(!feof(fp))? (fread (amp; stu[m], LEN, 1, fp)==1)?m; if(m==0)?{printf("no?record!\n"); ; } show(); printf("¿por favor?ingrese?el?número?del?estudiante?¿cuál?quiere?modificar!\n"); scanf( "d",amp; snum); for(i=0;ilt;m;i) if(snum==stu[i].num)/*Recuperar si hay información para modificar en el registro*/ break; printf( "¡encontrar?el?estudiante!¿puede?modificar!\n"); printf("nombre:"); printf("electiva:"); scanf("lf",amp;stu[i].elec);/*Ingrese los resultados del curso optativo*/ printf("experimento:"); i].expe ;!"); stu[i].sum=stu[i].elec stu[i].expe stu[i].requ; if((fp=fopen("data.txt", "wb "))== NULL) {?printf("can?not?open\n");return;} for(j=0;jlt;m;j)/*Escribe la información recién modificada en el archivo de disco especificado* / if( fwrite(amp;stu[j]?,LEN,1,fp)!=1)

{?printf(

"¿No puedo guardar!");?getch();?} fclose(fp) }

void?insert()/*función de inserción personalizada*/

{ ?ARCHIVO?*fp; int?i,j,k,m=0,snum; if((fp=fopen("data.txt","r "))==NULL) {?printf("no puede? ?open\n"); return;} while(!feof(fp))? if(fread(amp;stu[m],LEN,1,fp)==1)?m; if(m==0 ) ?{printf("¡no?registro!\n"); fclose(fp); return } printf("¿por favor?ingrese?posición?¿dónde?¿quiere?insertar!(ingrese?el?número) \n"); scanf("d",amp;snum);/*Ingrese la posición a insertar*/ for(i=0;ilt;m;i) if(snum==stu[i].num) break; for(j=m-1;jgt;i;j--)

stu[j 1]=stu[j];/*Mover una posición hacia atrás desde el último registro* / printf( "ahora?por favor?ingrese?la?nueva?información.\n"); printf("número: "); scanf("d",amp;stu[i 1].num); ;m;k)

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

{

printf( "el? ¿Hay un número?existente, presione?¿cualquiera?para?continuar!");

getch();

fclose(fp);

return;

} printf("nombre:"); scanf("s",stu[i 1].nombre); printf("electiva:"); ].elec); printf("experimento:"); scanf("lf",amp; stu[i 1].expe); printf("requerido?curso:"); i 1].requ[i 1].sum=stu[i 1].elec stu[i 1].expe stu[i 1].requ; "wb"))==NULL) {?printf("¿no?abrir\n");return;} for(k=0;klt;=m;k) if(fwrite(amp;stu [k] ?, LEN, 1, fp)!=1)/*Escribe el registro modificado en el archivo del disco*/

{?printf("can?not?save!"); ?} fclose(fp); }

void?total()

{?FILE?*fp; int?m=0; txt","r "))==NULL) {?pr

intf("¿no?abrir\n"); return;} while(!feof(fp))? if(fread(amp;stu[m],LEN,1,fp)==1)? *El número de registros estadísticos es el número de estudiantes*/ if(m==0)?{printf("no?record!\n");fclose(fp);return;} printf("the?class?are ?d ?estudiantes!\n", m); /*Emite el número contado*/ fclose(fp); }