Escribir un sistema de gestión de información estudiantil utilizando lenguaje C y estructura de datos. ¡Me gustaría preguntar cómo escribir el marco básico y solicitar orientación de expertos! ! !
No sé cuáles son las funciones de gestión de información que desea implementar. Lo hice hace dos días. Puedo darle una referencia. Está hecho con una función estadística. está hecho por mí y las otras partes están hechas por mí. Fue compilado por el profesor
/*Comando de precompilación*/
#include lt; p>
#include lt; stdlib.hgt;
#include lt;conio.hgt;
#include lt;string.hgt;
/*Tipo de datos personalizado*/
typedef struct Student{
char xh[10]; //Número de identificación del estudiante
char xm[15]; /Name
int cj[3] ; //Calificaciones de 3 cursos
}STU, *STUP;
typedef struct sulist{
STUP elem; // Variable de puntero de estructura
p>int listsize; //Capacidad
int length; //Longitud
}SqList; p>
/*Descripción de la función personalizada*/
int initSqlist(SqList amp; L, int n
int insertSqlist(SqList amp; L, STU x, int); i);
void creatSqlist( SqList amp; L, int m
int deleteSqlist(SqList amp; L, int i
int localizarSqlist); (SqList L, char *xhp);
void disp(SqList L);
int menu();
void tongji(int bh, SqList amp); ; m);
/* Definición de función*/
/*Función de menú*/
int menu(){
int num;
while(1) {
system("cls"); //Borrar pantalla
printf("-------- ----Sistema de gestión de puntuación del estudiante----- --------\n\n");
printf(" 1--Crear tabla de puntuación del estudiante 2--Insertar estudiante puntuación\n\n");
printf(" 3--Eliminar puntuaciones de estudiantes 4--Buscar por número de estudiante\n\n");
printf(" 5- -Mostrar tabla de puntuación de los estudiantes 6--Estadísticas de puntuación\n\ n");
printf(" 0--Salir\n\n");
printf(" -- ------------- --------------------------\n");
printf("Ingrese 0-6:");
scanf("d",amp;num);
fflush(stdin);
si(núm;0|
|numgt; 6){
printf("¡Reseleccionar! ¡Presione cualquier tecla para continuar!"
getch();}
else
break;
}
return num;
}
/*Función de inicialización*/
int initSqlist(SqList amp; L, int n){
L.elem=new STU[n];
if(L.elem==NULL){ p>
printf("¡No se pudo solicitar el espacio!\n");
exit(0); n;
L.length=0;
devolver 1;
}
/*Insertar función*/
int insertSqlist(SqList amp;L,STU x,int i){
int j;
if(igt;L.listsize){
printf ("¡Desbordamiento!\n");
printf("¡Reseleccionar! ¡Presione cualquier tecla para continuar!"); return 0 ;
}
if(ilt;=0||igt;L.length 1){
printf("¡Posición irrazonable!\n" ) ;
printf("¡Reseleccionar! ¡Presione cualquier tecla para continuar!"
getch()
return
}
for(j=L.length-1;jgt;=i-1;j--)
L.elem[j 1]=L.elem[j ] ;
L.elem[i-1]=x;
L.longitud ;
devuelve 1;
}< / p>
/*Crear función*/
void creatSqlist(SqList amp; L, int m){
int i, j;
for(i=1;ilt;=m;i){
printf("Por favor ingrese los datos del désimo estudiante:\n", i);
printf ("ID de estudiante:");
scanf("s",x.xh);
for(j=0;jlt;L.length;j){< / p>
if(strcmp(x.xh, L.elem[j].xh)==0){
printf("El número de estudiante ya existe, vuelva a ingresar:"
scanf("s",x.xh);
}
}
printf("Nombre:") ;
scanf("s", x.xm);
printf("Número alto en idioma C inglés (separado por espacios):
); scanf ("ddd",amp;x.cj[0],amp;x.cj[1],amp;x.cj[2]);
i
nsertSqlist(L, x, i);
}
fflush(stdin);
}
/*Función de visualización*/
void disp(SqList L){
int
printf("10s15s7s7s7s\n", "ID de estudiante", "Nombre", "Alto Número", "Lenguaje C", "Inglés");
for(i=0; ilt; L.length; i )
printf("10s15s7d7d7d\n", L .elem[i].xh, L.elem[i].xm,
L.elem[i].cj[0], L.elem[i].cj[1], L. elem[i].cj[2]);
printf("¡Presione cualquier tecla para continuar!");
getch(); / p>
/*Función de eliminación*/
int deleteSqlist(SqList amp; L, int i){
int j
if( ilt ;=0||igt;L.length){
printf("¡La posición no es razonable, vuelva a ingresar!");
getch();
devolver 0;
}
for(j=i;jlt;=L.length-1;j)
L.elem[ j-1 ]=L.elem[j];
L.length--;
devuelve 1;
}
/*Función de búsqueda */
int localizarSqlist(SqList L, char *xhp){
int
for(i=0; ilt; L .length; i )
if(strcmp(xhp,L.elem[i].xh)==0)break;
if(ilt;L.length)return i 1;
else return 0;
}
/*función estadística*/
void tongji(int bh, SqList amp; m){
int i, max, min
doble suma
switch(bh){
caso 1: si (m. lengthlt; 2) {
printf("El número actual de personas es inferior a 2, las estadísticas no se pueden completar, presione cualquier tecla para continuar:
); getch();
break;
}
suma=0
for(i=0; ilt; m.length ; i ){
suma=sum m.elem[i].cj[0];
}
max=m.elem[0]. cj[0];
for(i=1; ilt; m.length; i ){
if(maxlt; m.elem[i].cj[0])
max= m.elem[i].cj[0];
}<
/p>
min=m.elem[0].cj[0];
for(i=1;ilt;m.length;i){
si (mingt; m.elem[i].cj[0])
min=m.elem[i].cj[0];
}
printf("Puntuación más alta: d\n\nPuntuación más baja: d\n\nPuntuación promedio: .2lf\n", max, min, sum/m.length
printf(" Presione cualquiera); tecla para continuar: ");
getch();
break;
caso 2: if(m.lengthlt; 2){
printf("El número actual de personas es inferior a 2, las estadísticas no se pueden completar, presione cualquier tecla para continuar:");
getch();
}
suma=0;
for(i=0; ilt; m.length; i ){
suma =sum m.elem [i].cj[1];
}
max=m.elem[0].cj[1]; for(i=1 ;ilt;m.length;i ){
if(maxlt;m.elem[i].cj[1])
max=m.elem [i].cj [1];
}
min=m.elem[0].cj[1]; ; ilt; m. longitud; i ){
if(mingt; m.elem[i].cj[1])
min=m.elem[i].cj [1];
}
printf("Puntuación más alta: d\n\nPuntuación más baja: d\n\nPuntuación promedio: .2lf\n", máx, mínimo, suma /m. length);
printf("Presione cualquier tecla para continuar:
getch();
break; p> caso 3: if(m.lengthlt; 2){
printf("El número actual de personas es inferior a 2, las estadísticas no se pueden completar, presione cualquier tecla para continuar:"); /p>
getch();
romper;
}
suma=0; ; ilt; m.longitud; i ){
suma=sum m.elem[i].cj[2]; .elem[0].cj[2] ;
for(i=1;ilt;m.length;i){
if(maxlt;m.elem[i] .cj[2])
max=m.elem[i].cj[2]
}
min=m.elem[0] .cj[2];
for(i=1;ilt;m.length;i){
<p> if(mingt; m.elem[i].cj[2])
min=m.elem[i].cj[2];
}
printf("Puntuación más alta: d\n\nPuntuación más baja: d\n\nPuntuación promedio: .2lf\n", max, min, sum/m.length);
printf( "Presione cualquier tecla para continuar: ");
getch();
break
}
}
/*Función principal*/
void main(){
int menunum, n, m, pos, i; STU x; ;
while(1){
menunum=menu();
switch(menunum){
caso 0: salir ( 0);
caso 1: printf ("Ingrese el número total de estudiantes: ");
scanf ("d", amp; n); p > if(initSqlist(L, n)){
printf("Ingrese el número de estudiantes que deben crearse ahora: "); , amp; m) ;
creatSqlist(L, m);
}
break;
caso 2: printf(" \nPor favor ingrese los datos del estudiante:\n");
printf("ID del estudiante:");
scanf("s",x.xh);
for(i=0;ilt;L.length;i){
if(strcmp(x.xh, L.elem[i].xh)==0){ p>
printf("La identificación del estudiante ya existe, vuelva a ingresar:");
scanf("s", x.xh); p>
}
printf("Nombre: ");
scanf("s", x.xm);
printf("Superior); Matemáticas C Idioma Inglés :");
scanf("ddd",amp;x.cj[0],amp;x.cj[1],amp;x.cj[2]);
while(1){
printf("Ingrese la posición del estudiante a insertar (1-d): ", L.length 1); p> scanf("d" , amp; pos);
if(insertSqlist(L, x, pos))break
}
break;
caso 3: mientras(1){
printf("Ingrese la posición del estudiante que desea eliminar (1-d): ", L.length
scanf("d", amp; pos
if( deleteSqlist(L, pos))break
}
break;
case 4: printf("Ingrese el número de estudiante que desea buscar: ");
scanf("s", xh);
pos=locateSqlist(L, xh);
if(pos!=0 ){
printf("Las calificaciones del estudiante son las siguientes:\n");
printf("10s15s7s7s7s\n", "ID del estudiante", "Nombre", "Superior Matemáticas", "Lenguaje C", "Inglés");
printf("10s15s7d7d7d\n", L.elem[pos-1].xh, L.elem[pos-1].xm,
L.elem[pos-1].cj[0], L.elem[pos-1].cj[1], L.elem[pos-1].cj[2]);
}
else
printf("La puntuación del estudiante no existe\n");
printf("Presione cualquier tecla ¡para continuar!");
getch();
break;
caso 5: disp(L);
break;
caso 6: int bianhao1;
printf("Ingrese el número de curso 1-3 que requiere estadísticas:\n\n"); ("1--Matemáticas superiores 2--Lenguaje C 3--Inglés\n\n");
scanf("d", amp; bianhao1
fflush(); stdin);
while(bianhao1lt; 1||bianhao1gt; 3){
printf("Número incorrecto, vuelva a ingresar:\n");
scanf("d", amp ;bianhao1);
}
tongji(bianhao1, L);
}//cambiar
}//mientras p>
}