Cómo escribir un sistema de gestión de información estudiantil en lenguaje C
Consulte el siguiente código fuente C del sistema de gestión de información de estudiantes.
#include?
#include?
/*Definir estructura estudiantil*/
struct?Student p >
{ char?ID[20]; char?Nombre[20]; flotante?Mark1; flotante?Mark3; flotante?Promedio;
/*Declarar la matriz de estudiantes y el número de estudiantes*/
struct?Student?students[1000];
int?num=0;
/ * Encuentra el promedio*/
float?Avg(struct?Student?stu)
{ return?(stu.Mark1+stu.Mark2+stu.Mark3)/3;
p>}
/*Devuelve el índice de la matriz a través del número de estudiante*/
int?Student_SearchByIndex(char?id[])
{ int ?i; for?(i=0;i } /*Devolver subíndice de matriz por nombre*/ int?Student_SearchByName(char?name[]) { int?i; para?(i=0;i } /*Mostrar un solo registro de estudiante*/ void?Student_DisplaySingle(int?index) { printf("%10s %10s%8s %8s%8s%10s\n","ID de estudiante","Nombre","Calificación","Calificación","Calificación","Calificación promedio"); printf("------ ---- ---------------------------------------------- ---- -\n"); printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",estudiantes[índice].ID,estudiantes[índice].Nombre, estudiantes[índice] ].Mark1, estudiantes[índice].Mark2,estudiantes[índice].Mark3,estudiantes[índice].Promedio); } /*Insertar información del estudiante*/ p> void?Student_Insert() { while(1) { printf("Ingrese el número de estudiante:"); scanf("%s",&students[num].ID); (); printf ("Ingrese su nombre:"); scanf("%s",&students[num].Name); getchar(); ,&estudiantes[núm]. Mark1); getchar(); printf("Por favor, ingrese sus calificaciones:"); intf("Ingrese sus calificaciones:"); scanf("%f",&students[num].Mark3; estudiantes[num].Average=Avg(students[num]); Si Continuar?(y/n)"); if?(getchar()=='n') { break; } } } /*Modificar información del estudiante*/ void?Student_Modify() { //float?mark1,mark2,mark3; while(1) { char?id[20]; ingrese el número de estudiante del estudiante que se va a modificar:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if?(index==-1) { printf("El estudiante no existe!\ n"); } else { printf("La información del estudiante que desea modificar es:\n"); Student_DisplaySingle(index); printf("--? Ingrese un nuevo valor--\n" ); printf("Ingrese el ID del estudiante:"); scanf("%s",&students[index].ID getchar(); &students[index].Name); getchar(); printf("Ingrese sus calificaciones:"); scanf("%f",&students[index].Mark1); "); scanf("%f", &students[index].Mark2); getchar(); printf("Ingrese sus calificaciones:"); scanf("%f",&students[index].Mark3); getchar( ); estudiantes[índice].Promedio=Promedio( estudiantes[índice]); printf("¿Continuar? (y/n)"); if?(getchar()=='n') { break; p> } /*Eliminar información del estudiante*/ void?Student_Delete() { int?i; ?id[20]; int?index; printf("Ingrese el número de estudiante que desea eliminar:"); scanf("%s",&id); ?(index==-1) { printf("¡El estudiante no existe!\n"); else { printf("La información del estudiante que desea eliminar es:\n"); "¿Realmente quieres eliminarlo? (y/n)"); if?(getchar()=='y') { for?(i=index;i { estudiantes[i]=students[i+1];//Mover todos los objetos posteriores hacia adelante } núm--; } getchar(); } printf(" ¿Quieres continuar?(s/n)"); if?(getchar()=='n') { break; } } } /*Consulta por nombre*/ void?Student_Select() { while(1) { char?name[20]; int?index("Ingrese el nombre del estudiante que desea; quiero consultar:") ; scanf("%s",&name); getchar(); index=Student_SearchByName(nombre); if?(index==-1) { printf("¡El estudiante no existe!\n") ; } else { printf("La información del estudiante que desea consultar es:\n"); Student_DisplaySingle(index); } printf("¿Continuar? (y/n)"); ') { descanso } } } /*Ordenar por promedio*/ void?Student_SortByAverage() { int ?i,j; estructura ?Estudiante?tmp; para?(i=0;i tmp=estudiantes[j-1]; estudiantes[j-1]=estudiantes[j]; estudiantes[j ]=tmp; } } } } /*Mostrar información del estudiante*/ void?Student_Display() { int ?i; printf("%10s%10s%8s%8s%8s%10s\n","ID de estudiante","Nombre","Calificación","Calificación","Calificación"," Calificación promedio"); printf ("------------------------------------------ ------ -------------\n"); for?(i=0;i } /*Leer la información del estudiante del archivo*/ void?IO_ReadInfo() { ARCHIVO?*fp; int?i; if?((fp=fopen("Database.txt","rb"))==NULL) { printf("¡No se puede abrir el archivo!\n"); (fread(&num, sizeof(int),1,fp)!=1) { num=-1 } else { for(i=0;i } /*Escribir información del estudiante en el archivo*/ void?IO_WriteInfo () p> { ARCHIVO?*fp; int?i; if?((fp=fopen("Database.txt","wb"))==NULL) { printf("¡No se puede abrir el archivo!\n") ; return; } if?(fwrite(&num,sizeof(int),1,fp)!=1) { printf("¡Error al escribir el archivo!\n" } for?(i=0;i } /*Programa principal*/ void?main() { int?choice; { /*Menú principal*/ printf("\n------?Sistema de gestión del desempeño estudiantil------\n"); printf("1.?Agregar registro de estudiante\n"); "2.?Modificar registros de estudiantes\n"); printf("3.?Eliminar registros de estudiantes\n"); printf("4.?Consultar registros de estudiantes por nombre\n"); puntuación promedio\n"); printf("6.?Salir\n"); printf("Por favor seleccione (1-6):"); scanf("%d",&choice); getchar(); switch (elección ) { caso?1: Student_Insert(); caso?2: Student_Modify(); caso?3: Student_Delete(); caso?4: Student_Select(); caso?5: Student_SortByAverage( ); Student_Display(); romper; caso?6: salir(0); romper; } IO_WriteInfo();