Red de conocimiento informático - Conocimiento informático - 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?

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>

}

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: ");

}

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

}

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

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

}

}

}

}

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';

}

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

}

}