Red de conocimiento del abogados - Bufete de abogados - Programación en lenguaje C: ¡sistema de consulta de puntuación de estudiantes! ¡urgente! ! !

Programación en lenguaje C: ¡sistema de consulta de puntuación de estudiantes! ¡urgente! ! !

Esta es una clase que hice yo mismo. Puedes cambiarla según tus propios requisitos. No es difícil y es similar a la tuya.

#include

#include

#include

#include

#define N 10

/****Definir estructura*****/

typedef struct Students /*marcados como estudiantes*/

{

char num[10]; /*Número de estudiante*/

char nombre[10]; /*Nombre del estudiante*/

int edad; */

char sex[10]; /*Género*/

float cyy; /*Puntuación del lenguaje C*/

computadora flotante; Puntuación*/

float inglés; /*Puntuación en inglés*/

float pj /*Puntuación media*/

}STU;

p >

STU temp;

void sort(STU estudiantes[],int n); //Ordenar

void save(STU estudiantes[],int n);/ / Exportar

int Locate(STU Students[],int n);//Consulta

/*--------------Mostrar menú- - ------------------*/

char displaymenu()

{

char k

system("cls");

printf("Gestión del desempeño estudiantil\n");

printf("-------- -- -------------------------menú de aplicaciones--------------------- -- --------------\n");

printf(" 1 Ingrese las calificaciones de los estudiantes\n\n");

printf (" 2 Generar puntajes de los estudiantes\n\n");

printf(" 3 Consultar puntajes de los estudiantes\n\n");

printf(" 4 Modificar puntajes de los estudiantes\n \n ");

printf(" 5 Ver clasificación de puntuación\n\n");

printf(" 6 Ver estadísticas de puntuación\n\n");

imprimirf("

7 Guardar datos\n\n");

printf(" 8 Leer datos\n\n");

printf(" 9 Salir del sistema\n\n" );

printf("Seleccione la operación que desea realizar:");

k=getchar();

return k;

}

/****Definir la función de salida*****/

void printheader() /*Formatear el encabezado de salida*/

{

printf("\n\n************************Sistema de gestión de puntuación del estudiante***** * ************************\n\n\n");

printf("| ID de estudiante | Nombre | Edad | Género | Puntuación en lenguaje C | Puntuación en ordenador | Puntuación media | \n");

}

void printdata(STU pp) /*Formatear los datos en la salida tabla* /

{

STU* p;

p=&pp;

printf("| %-5s| %- 5s | %-4d| %-4s| %-6.0f| %-6.0f| %-6.0f|\n",p->núm,p->nombre,p->edad,p -> sex,p->cyy,p->computer,p->english,p->pj);

}

/*****Agregar información del estudiante* ** **/

int add(estudiantes STU[] ,int *n)

{

int i=0;

system ("cls");

printf(" \n");

printf(" Ingrese la información del estudiante\n");

printf (" Para salir, ingrese: 0 \n");

printf("Ingrese el ID del estudiante:\n ");

scanf("%s",estudiantes [ i].num);

while(strcmp(students[i].num,"0") )//Finalizar la entrada cuando el número de estudiante ingresado sea 0

{

printf("Ingrese el nombre del estudiante:\n ");

scanf("%s",estudiantes[i].nombre);

printf (" ****************\n\n\n");

printf("Ingrese la edad del estudiante:\n ");

scanf("%d",&estudiantes[i].edad);

printf("******************\n\n\ n" );

printf("Por favor ingrese el género del estudiante:\n");

scanf("%s",estudiantes[i].sexo);

printf("***********

*****\n\n\n");

printf("Ingrese la puntuación en lenguaje C:\n ");

scanf("%f",&students [i].cyy);

printf("****************\n\n\n");

printf ("Ingrese las puntuaciones de la computadora:\n ");

scanf("%f",&students[i].computer);

printf("****** **********\n\n\n");

printf("Por favor, introduce tu puntuación en inglés:\n ");

scanf(" % f",&estudiantes[i].inglés);

printf("******************\n\n\n");

estudiantes[i].pj=(estudiantes[i].cyy+estudiantes[i].computadora+estudiantes[i].inglés)/3;

printf("Estudiantes' puntuación media: % -8.0f\n",estudiantes[i].pj);

i++;

printf("************ **** \n\n\n");

printf("Por favor ingrese el número de estudiante:\n ");

scanf("%s",estudiantes[ i].num );

}

*n=i;

guardar(estudiantes,i);

devolver i;

}

/*****Función de consulta de información del estudiante*****/

int Locate(STU Students[],int n)

{

int k,m=-1;

char num[10],nombre[20];

int i= 0;

p>

system("cls");

printf("Ingrese: 0 para salir \n");

printf("Por favor elija cómo realizar la consulta: 1 ). Consulta por número de estudiante 2). Consulta por nombre de estudiante\n");

scanf("%d",&k);

if( k==1)

{

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

scanf("%s ",num);

while(i

{

if(strcmp(estudiantes[i].num,num)==0) /*Si se encuentra el estudiante No.*/

{

printf(">>Número de estudiante: %s\n*Nombre del estudiante: %s\n*Edad del estudiante: %d\n*Sexo del estudiante:%s\n>Puntuación en lenguaje C:%-8.0f\n>Puntuación en computadora:%-8.0f\n>>Puntuación en inglés:%-8.0f\n>>Puntuación promedio:% -8.0f\n", estudiantes[i].num,estudiantes[i].nombre,estudiantes[i].edad,estudiantes[i].sexo,estudiantes[i].cyy,estudiantes[i].computadora,estudiantes [i].inglés,estudiantes [i].pj);

m=i;

getchar();

romper;

}

i++; /p>

if(i>=n)

printf("No se encontró información del estudiante\n");

getchar();

}

else if(k==2)

{

printf("Ingrese el nombre del estudiante que desea consultar:\n")

scanf("%s",nombre);

while(i

{

if(strcmp( estudiantes[ i].nombre,nombre)==0) /*Si se encuentra el nombre*/

{ printf("Número de estudiante: %s\nNombre del estudiante: %s\nEdad del estudiante: %d \ nSexo del estudiante: %s\nPuntuación de lenguaje C del estudiante:%-8.0f\nPuntuación de computadora:%-8.0f\nPuntuación de inglés:%-8.0f\nPuntuación promedio:%-8.0f\n",estudiantes[ i].num ,estudiantes[i].nombre,estudiantes[i].edad,estudiantes[i].sexo,estudiantes[i].cyy,estudiantes[i].computadora,estudiantes[i].inglés,estudiantes[i ].pj) ;

m=i;

getchar();

romper;

}

i++;

}

if(i>=n)

printf("No se encontró información del estudiante\n");

}

return m;/*Devuelve una raíz m para facilitar la modificación de la información del estudiante*/

getchar();

}

/* ****Función de visualización*****/

entrada nula (estudiantes STU[],int n)

{

int i ;

system("cls"); //Borrar la pantalla

if(n==0) /*Indica que no hay ningún registro de información del estudiante*/

{

printf("\n¡No hay registro de estudiante!\n");

}

printf("\n\n");

printheader(); /*Muestra el encabezado de la tabla*/

i=0;

while(i

{

printdata(estudiantes[i]);

i++

}

getchar( );

}

/*****Modificar subrutina*****/

void Modificar(Estudiantes STU[],int n)

{

int i;

if(n<=0)

{

sistema (" cls");

printf(" \nIngrese: 0 para salir \n");

printf("\n---------- no encontrado !----------\n");

getchar();

return ;

}

system("cls");

printf("Modificar información del estudiante");

input(estudiantes,n);

i=Ubicar(estudiantes, n); /*Consulta el elemento de la matriz y devuelve el valor del subíndice*/

if(i!=-1) /*Si i!=-1, indica que se ha encontrado el elemento de la matriz* /

{

printf("Ingrese la información del nuevo estudiante: \n");

printf("ID del estudiante: ");

scanf("%s",estudiantes[i].num);

printf(" Nombre: ");

scanf("%s",estudiantes[i ].nombre);

printf("Edad: ");

scanf("%d",&estudiantes[i].edad);

printf (" Género: ");

scanf("%s",estudiantes[i].sexo);

printf(" Lenguaje C: ");

scanf("%f",&estudiantes[i].cyy);

printf(" Inglés: ");

scanf("%f",&estudiantes[i] .inglés);

printf(" Computadora: ");

scanf("%f",&estudiantes[i].computadora);

estudiantes[ i].pj=(estudiantes[i].cyy+estudiantes[i].inglés+estudiantes[i].computadora)/3;

printf("Calificación promedio: %-9.0f\n" ,estudiantes[i].pj);

save(estudiantes,n);

printf("\n-------------Modificación exitosa !-------------\n");

}

else

printf("¡no encontrado!\n ");

getchar();

}

/*****Subrutina de clasificación de puntuación del estudiante*****/

void sort(Estudiantes STU[],int n)

{

int i,j,a,b,c,d,e,f,k;

p>

float p;

printf("\nIngrese: 0 para salir");

printf("Selección del método de clasificación de puntajes: 1. Presione lenguaje C 2 Presione Inglés 3. Presione promedio\n ");

scanf("%d",&k);

if(k==1) /*Usar método de selección para C. clasificación de idiomas*/

{

for(i=0; i

for(j=0;j

{

if(estudiantes[i].inglés

{

temp=estudiantes[i];

estudiantes[i]=estudiantes[j+1];

estudiantes[j+1]=temp;

}

}

}

else if(k==2)/*El inglés usa el método de burbujeo*/

{

para(a=0; a

{

c=a;

para(b=a + 1; b

si(estudiantes[b].cyy>estudiantes[c].cyy)

c=b;

si (c!=a)

{

temp=estudiantes[a];

estudiantes[a]=estudiantes[c];

estudiantes[c]=temp;

}

}

}

if(k==3) /* El La calificación promedio se calcula usando el método de inserción*/

{

for(d=1;d

{

p =estudiantes[d].pj;

for(e=0;e

if(estudiantes[e].pj

romper;

if(e==d)

continuar

for(f=d;f>e;f-- )

p>

estudiantes[f]=estudiantes[f-1];

estudiantes[e]=temp

}

}

input(estudiantes,n); /*Mostrar todos los registros ordenados*/

save(estudiantes,n);

printf("\n Clasificación completada \n");

}

/*****Subrutina para contar el número de estudiantes con puntajes en cada nivel*****/

void Tongji(estudiantes de STU[],int n)

{

int count6085=0,count85=0,count60=0;

int i=0;

system("cls");

printf(" \nIngrese: 0 para salir \n");

input(estudiantes,n);

i=0;

mientras(i

{

if(estudiantes[ i].pj>85) {count85++;i=i+1;continue;} /*Puntuación promedio=>85*/

if(estudiantes[i].pj>=60&&estudiantes[i]. pj<=85) {count6085++;i=i+1;continue;} /*60

if(estudiantes[i].pj<60) {count6+;i= i+1;continue;} /*Puntuación promedio<60*/

}

printf("\n************resultados estadísticos* ***********\n\n");

printf("Número de personas con puntuaciones medias superiores a 85:%d \n",count85);

printf(" \n");

printf("Número de personas con puntuaciones promedio entre 65 y 80: %d \n", count6085);

printf (" \n");

printf("Número de personas cuyo puntaje promedio es inferior a 60 puntos: %d \n",count60);

printf(" \n ") ;

printf("\n\n************estadísticas finales************");

getchar() ;

}

/*****Exportar o guardar datos*****/

void save(estudiantes de STU [],int n)

{

ARCHIVO* fp;

int i=0;

fp=fopen("estudiantes ","wb+") ;/*Abrir y crear un archivo binario en modo lectura-escritura*/

if(fp==NULL) /*Error al abrir el archivo*/

{

printf("\n*******Error al abrir el archivo!*******\n");

return ;

}

for(i=0;i

{

if(fwrite(&students[i],sizeof( STU),1,fp)==1 )/*Escribe un registro o un elemento de matriz de estructura en el archivo cada vez*/

{

continuar;

}

más

{

descanso;

}

}

if(i>0)

{

getchar();

printf("\n\n****Exportar %d información del estudiante* \n",i);

getchar();

}

más

>

{

system("cls");

printf("**No se exporta información*\n");

getchar() ;

}

fclose(fp); /*Cerrar este archivo*/

}

/*****Importar Datos*****/

void Read(Estudiantes STU[],int * n)

{

ARCHIVO* fp;

int i=0;

fp=fopen("students","rb");/*Abrir un archivo binario existente en modo de solo lectura*/

if ( fp==NULL) /*Error al abrir el archivo*/

{

printf("\n********Error al abrir el archivo!***** ***\n");

salir(0);

}

for(i=0;i

{

if(fread(&students[i],sizeof(STU),1,fp)==1)/*Leer un registro o un elemento de matriz de estructura en el archivo cada vez* /

continuar;

más

romper;

}

*n=i;

if(i>0)

{

printf("\n\n****************** Importar:%d Información del estudiante************\n",i);

getchar();

}

else

{ system("cls");

printf("************¡No se importó información!******* *** **\n");

getchar();

}

getchar();

fclose(fp ); / *Cerrar este archivo*/

}

/*****función principal*****/

void main()<); /p>

{

Estudiantes de STU[N];

int n;

char s1[3],s2[3]={" 1"} ;

int i,k;

printf("\n\n");

printf("******* ***** ********************************************** ***\n");

printf("^ ^\n\n");

printf("^ ^ \n\n\n");

printf("^ : Lu Jingguang : 09623 : 34 ^\n");

printf("^ ^\n");

printf("******************************

****************************\n");

printf("\n\n");

p>

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

{

printf("\nPor favor, introduzca la contraseña:");

obtiene(s1);

if(strcmp(s1,s2)==0)

descanso;

más

printf ("\n>Contraseña incorrecta, vuelva a ingresarla");

}

if(i>2)

{

printf("\nHa ingresado incorrectamente tres veces seguidas, ¡el sistema saldrá!\n");

exit(0);

}

más

{

mientras(1)

{

k=displaymenu();

cambiar(k)

{

caso '1': agregar(estudiantes,&n);

caso '2': leer( estudiantes,&n);entrada (estudiantes,n) ;descanso;

caso '3' : Leer(estudiantes,&n);Localizar(estudiantes,n);descanso

caso; '4' : Leer( estudiantes,&n);Modificar(estudiantes,n);;descanso

case '5' : Leer(estudiantes,&n);sort(estudiantes,n);descanso;

caso '6' : Leer(estudiantes,&n);Tongji(estudiantes,n);

caso '7' : guardar(estudiantes,n) ;descanso;

caso '8' : Leer(estudiantes,&n);descanso;

caso '9' : sistema("cls");

printf("\n ****** ****Gracias por su uso**********\n");exit(0);break;

predeterminado: printf("\ n\nError de entrada, ingrese Debe ser un número entre 0 y 9. Vuelva a ingresar\n");getchar();getchar();

}

}

}

}