Red de conocimiento informático - Material del sitio web - Cómo escribir un sistema de gestión de información estudiantil en lenguaje C

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

{ 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*/

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();