Es necesario administrar la información de los estudiantes, y la información de cada estudiante incluye tres elementos de datos: número de estudiante, nombre y calificaciones.
¿Intenta escribir un programa en lenguaje C?
/****************************************** *****************************
--Establezca la contraseña inicial del administrador en 123abc
************************************************ ******************************/
#includelt;stdio.hgt;
#includelt ;string.hgt;
#includelt;stdlib.hgt;
#includelt;conio.hgt;
struct?Estudiante/** **definir estructura Tipo struct?Student****/
{
int?id
char?name[20];
flotador ?sql;
flotador?c
flotador?java
flotador?avg; /p>
typedef?struct?Student?Stu;?/*****Cambiar el nombre de struct?Student a Stu*****/
void?Student_head();?/** *** *******Información del cabezal de impresión******************/
void?Student_print();/**** ********Imprimir información del menú************/
void?Student_printError();/************ Imprimir mensaje de error*********** *****/
int?Student_loanding(Stu?*);?/*************** *****Función de lectura************ ****/
int?Student_judgeIdIsEntity(Stu?*, int);?/****Juzga si se ha utilizado el ID ingresado****/
int?Student_judgeScore(float);?/****Juzga si el puntaje ingresado es legal********/
int?Student_input(Stu?*, int);/** *************Función de entrada******************/
int?Student_delete(Stu?*, int);/*** **********Función de eliminación****************** /
void?Student_output(Stu?*, int);?/*** **********Función de salida************** **/
void?Student_line(Stu?*, int);/**** **********Función de clasificación*************** ***/
void?Student_save(Stu?*, int);/***** ********Función de guardar*********** ****/
int?Student_password(int);/********Función de verificación de contraseña ***************/
void?Student_modi_password(Stu?*, int);
/*********Función de modificación de contraseña******************/
char?password[7]="123abc"; /*** *****Definir una variable global de contraseña******/
main()?/**************Función principal* *** ***********/
{
Stu?Stud[100];?//Matriz de estructura para almacenar información de los estudiantes
int?count=0; //Almacena la cantidad de información del estudiante existente actualmente
int?password1;?//Determina la contraseña del usuario. 1 significa que la contraseña ingresada es correcta, 0 significa incorrecta
int?isRead=0;?//Determine si el usuario ha leído la información guardada originalmente
Student_head();// Imprimir información del encabezado
do
{
Student_print();?//Imprimir menú
int?user;
scanf("d",&user);
if(user?=?1?amp;amp;?isRead==0)
{
?Student_printError();
?continuar;
}
cambiar(usuario)
{
caso?1:
count=Student_loanding(Stud);
isRead?=?1;
descanso;
case?2:
Student_modi_password(Stud, count);
descanso
case?3:
count=Student_input(Stud; , contar);
Student_save(Stud, contar);
romper
caso?4:
Student_output(Stud, contar); );
romper;
caso?5:
contraseña1=Contraseña_estudiante(recuento
if(contraseña1==1);
{
count=Student_delete(Estudiante, conteo);
Student_save(Estudiante, conteo
}
);else?if(contraseña1==0)
{
printf("\n\t\t?Ha ingresado la contraseña incorrecta 3 veces. No está autorizado para realizar esta operación.
\n\n");
}
else
{
printf("\n\n"); p> p>
}
descanso
caso?6:
Student_line(Stud, count
Student_output); (Semental, contar);
romper;
caso?7:
Student_save(Semental, contar
romper; /p >
caso?8:
salida(0);
ruptura
predeterminado:
printf(" \t \t┏━━━━━━━━━━━━━━━━━━━━━━┓");
printf("\n\t\t┃?No dichas opciones de función, seleccione 1-8┃");
printf("\n\t\t┗━━━━━━━━━━━━━━━━━━━━ ━━ ┛\n");
}
}mientras(1);
}
void?Student_head()? // Información del cabezal de impresión
{
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓Gestión del rendimiento estudiantil〓〓〓〓〓〓〓 〓〓 〓");
printf("\n\tNota: ①Si hay un registro, léalo primero.");
printf("\n\t ?② Si no hay ningún registro, agregue el registro primero y guárdelo ");
printf("\n\t?③Los datos se guardarán automáticamente después de agregarlos y eliminarlos.") ;
printf("\n\t?④Para eliminar y cambiar contraseñas es necesario verificar la contraseña.
\n");
printf("\n--------------------------------- -------------------------------------------------- ");
}
void?Student_print()
{
printf("\n\t\t?┌┄ ┄┄┄ ┄┄?Gestión del desempeño estudiantil?┄┄┄┄┄┄┐");
printf("\n\t\t?┆?----------- -----------------------?┆");
printf("\n\t\t?┆?1 .?Leer Obtener información del estudiante2.?¿Cambiar contraseña de administrador?┆");
printf("\n\t\t?┆?3.?Agregar información del estudiante4.?Ver información del estudiante┆");
printf("\n\t\t?┆?5.?Eliminar información del estudiante6.?Ordenar por puntaje promedio?┆");
printf("\n\ t \t?┆?7.?Guardar información del estudiante8.?Salir del programa┆");
printf("\n\t\t?└┄┄┄┄┄┄┄┄┄┄┄ ┄ ┄┄┄┄┄┄┄┘");
printf("\n\t\t\t?Seleccione 1-8: ");
} p >
void?Student_printError()?//Imprimir mensaje de error
{
printf("\t\t┏━━━━━━━━━ ━━━ ━━━━━━━━━━┓");
printf("\n\t\t┃? Primero recupere la información guardada original...
?┃");
printf("\n\t\t┗━━━━━━━━━━━━━━━━━━━━━━┛\n");
}
int?Student_loanding(Stu?a[])?//Función de lectura
{
int?i= 0 , j=0;
ARCHIVO?*fp;
fp=fopen("Estudiante.txt", "r"); =NULL)
{
printf("\t\t┏━━━━━━━━━━━━━━━━━┓"); >
printf("\n\t\t┃No se pueden leer registros de estudiantes┃");
printf("\n\t\t┗━━━━━━━━ ━ ━━━━━━━━┛\n\n");
}
else
{
fscanf( fp , "d", amp; j);
fscanf(fp, "s", contraseña
for(i=0; ilt; j; i)// fread); (y a[i], sizeof(Stu), 1, fp
{
fscanf(fp, "d", y a[i].id )
fscanf(fp, "s", a[i].nombre);
fscanf(fp, "f", amp; a[i].sql); /p>
fscanf(fp, "f", y a[i].c);
fscanf(fp, "f", y a[i].java); /p>
fscanf(fp, "f", amp; a[i].avg
}
printf("\t\t┏━━ ━); ━━━━━━━━━━━━━━┓");
printf("\n\t\t┃Leer exitosamente registros de estudiantes 2d┃", i);
printf("\n\t\t┗━━━━━━━━━━━━━━━━━┛\n\n");
}
return(i);
}
int?Student_judgeIdIsEntity(Stu?a[], int? id, int ?n)?//Determine si la identificación ingresada por el usuario está disponible
{ int?i, flage?=?1; for(i=0;ilt;n;i){
if(a[i].id==id){
flage=0;
romper
} } return?flage;
}
int?Student_judgeScore(float?score)//Juzga si la puntuación ingresada es correcta
{
if(scoregt ; =0?amp;amp;?scorelt;=100){
return?1;
}
else{
printf ("\t\t?La puntuación no es válida, vuelva a ingresarla.
\n");
return?0;
}
}
int?Student_input(Stu?a[], int ?n)?//Función de entrada
{
char?flag
int?id
float?sql, c; , java;
printf("\t\t?-------------------------------- ---\n");
do
{
printf("\t\t? Ingrese la información del estudiante:\n"); loopId :printf("\t\t?Número de estudiante: ");
scanf("d", amp; id
if(Student_judgeIdIsEntity(a, id, n) ==1){
a[n].id?=?id;
}
else{
printf(" \t\t?id no es válido, vuelva a ingresarlo.
\n");
goto?loopId;
}
printf("\n");
printf("\ t\t?Nombre: ");
scanf("s", a[n].nombre);
printf("\n");
loopSql: printf("\t\t?Puntuación de la base de datos: ");
scanf("f", amp; sql
if(Student_judgeScore(sql)= =1)
{
a[n].sql?=?sql;
}
else
{
goto?loopSql;
} loopC: printf("\t\t?C?Puntuación de idioma:");
scanf(" f",amp;c);
if(Student_judgeScore(c)==1){
a[n].c?=?c;
}
else{
goto?loopC;
}
loopJava: printf("\t\t?JAVA?score :");
scanf("f",amp;java);
if(Student_judgeScore(java)==1){
a[n ].java?=?java;
}
else{
goto?loopJava;
}
a[n].avg=(a[n].sql a[n].c a[n].java)/3
n
printf("\; n");
printf("\n\t\t? ¿Continuar ingresando la información del estudiante?\n");
printf("\t\t?Presione cualquier tecla Continuar, n salir");
scanf("?c", amp; flag);
printf("\n");
} while (bandera!='n'?amp;amp;?flag!='N');
printf("\t\t?-------------- ------------ ---------------------\n\n");
retorno(n );
} p>
int?Student_delete(Stu?a[], int?n)//Función de eliminación
{
int?i, j, d_id;
char?flag;
Stu?temp;
hacer
{
printf("\n\t\t ? Ingrese el ID del estudiante que desea eliminar: "
scanf("d", amp; d_id
for(i=0; ilt; n; i )
{
if(a[i].id==d_id)
break;
}
if(ilt; n)
{
printf("\n\t?Elimine los siguientes datos ");
printf("\n\ t--------------------------
----------------------");
printf("\n\tNúmero de estudiante\tNombre \tBase de datos \tC? Idioma\tProgramación JAVA\tPuntuación promedio");
printf("\n\td\ts\t5.2f\t5.2f\t5.2f\t\t5. 2f\n" , a[i].id, a[i].nombre, a[i].sql, a[i].c, a[i].java, a[i].avg); p>
for(j=i;jlt;n-1;j)
{
temp=a[j];
a[ j]=a [j 1];
a[j 1]=temp;
}
n--;
}
else
{
printf("\n\t\t? ¡No hay información del estudiante que desee eliminar!");
}
printf("\n\t\t? ¿Continuar eliminando la información del estudiante?");
printf("\n\t\t?Presione cualquier tecla para continuar, n salir");
scanf("?c",amp;flag);
} while(flag!='n'?amp;amp;?flag!= 'N ');
printf("\t\t?-------------------------------- - -----\n\n");
return(n);
}
void?Student_output(Stu?a[], int ?n)?//Función de salida
{
int?i;
printf("\n\t-------- ------------------------------------------------- -");
printf("\n\tID de estudiante\tNombre\tBase de datos\tC? Idioma\tProgramación JAVA\tCalificación promedio\n");
for(i=0 ;ilt;n;i )
{
printf("\td\ts\t5.2f\t5.2f\t5.2f\t\t5.2f\n" , a[i].id, a[i].nombre, a[i].sql, a[i].c, a[i].java, a[i].avg);
}
printf("\t------------------------------------ ---- --------------------\n\n");
}
void?Student_line( Stu?a[ ], int?n)?//Función de clasificación
{
int?i, j;
Stu?temp;
for(i=0;ilt;n-1;i)
{
for(j=i 1;jlt;n;j)
{
if(a[i].avglt; a[j].avg)
{
temp=a[i];
a[i]=a[i 1]
a[i 1]=temp
}
} p>
}
}
void?Student_save(Stu?a[], int?n)?//Función de guardado
{
int?i;
ARCHIVO?*fp;
fp=fopen("Estudiante.txt", "w");
fprintf(fp, " d", n);
fprintf(fp, "\ts\n", contraseña);
for(i=0; ilt; n; i)?//fwrite (a, tamaño de (Stu), n, fp);
{
fprintf(fp, "d\ts\t5.2f\t5.2f\t5.2f\t); \t5.2f\n", a[i].id, a[i].nombre, a[i].sql, a[i].c, a[i].java, a[i].avg) ;
}
fclose(fp);
printf("\t\t┏━━━━━━━━━━━━━━ ━━━┓");
printf("\n\t\t┃?¿Registros de estudiantes guardados correctamente?┃");
printf("\n\t\t ┗━━━━━━━━━━━━━━━━━┛\n");
}
int?Student_password(int?n)?// Función de verificación de contraseña
{
int?l, i, j=0, k
char?pass[7]; > char?palabra[7];
ARCHIVO?*fp;
fp=fopen("Estudiante.txt", "r");
si (fp==NULL?||?n==0)
{
printf("\n\t\t?----------- -----------------");
printf("\n\t\tPor favor lea el registro primero.
");
printf("\n\t\tSi no hay ningún registro, ¡agréguelo primero!\n");
i=2;
}
else
{
fscanf(fp, "d", amp; k);
fscanf(fp, "s" , palabra);
fclose(fp);
printf("\n\t\t?-------------- --- ------------------");
printf("\n\t\t? Por favor ingrese la contraseña (6 dígitos): ");
l=0;
fflush(stdin);
hacer
{
pasar [l]= getch();
printf("*");
l
}mientras(pasar[l-1]!=' \r') ;
pass[l-1]='\0';
while(jlt;3)
{
j ;
if(strcmp(contraseña, palabra)==0)
{
i=1
break;
}
más
{
if(jlt;3)
{
printf ("\n\t\t?Contraseña incorrecta, vuelva a ingresar:");
l=0;
fflush(stdin);
hacer
{
pasar[l]=getch();
printf("*"); l ;
}mientras(pasar[l-1]!='\r');
pasar[l-1]='\0';
} p>
i=0;
}
}
}
printf("\n \t\t? ----------------------------------");
regresar (i);
}
void?Student_modi_password(Stu?a[], int?n)//Modificar función de contraseña
{
int ?contraseña2;
int?i, l=0;
contraseña2=contraseña_estudiante(n);
if(contraseña2==1)
{
printf("\n\t\t? Ingrese una nueva contraseña (6 dígitos): ");
hacer
{
contraseña[l]=getch()
printf("*");
l;
}mientras(contraseña[l-1]!='\r');
contraseña[l-1]='
\0';
ARCHIVO?*fp;
fp=fopen("Estudiante.txt", "w");
fprintf(fp, " d", n);
fprintf(fp, "\ts\n", contraseña);
for(i=0; ilt; n; i)
{
fprintf(fp, "d\ts\t5.2f\t5.2f\t5.2f\t\t5.2f\n", a[i].id, a[ i].nombre, a[i].sql, a[i].c, a[i].java, a[i].avg
}
fclose); (fp);
printf("\n\t\t?La contraseña se cambió correctamente.\n");
printf("\t\t?----- -------------------------------\n\n");
}
else?if(contraseña2==0)
{
printf("\n\t\t?Ha ingresado la contraseña incorrecta 3 veces. No está autorizado para realizar esta operación.\ n");
printf("\t\t?------------------------ --------- ----\n\n");
}
más
{
printf("\n\n" );
}
}