Entrenamiento en lenguaje C
/*8. Sistema de gestión del desempeño estudiantil
Atributos del estudiante: número de estudiante, nombre, año y mes de inscripción, número de semestres con calificaciones, calificaciones de cuatro cursos, etc. miembros,
En programación, se requiere que cuando se ingresa el estado de ejecución, i sea ingresar el registro del estudiante, D sea eliminar y s sea consultar (use el número del estudiante como condición de consulta , ingrese p para generar el registro completo del estudiante y use la programación de matriz de estructura o puntero de estructura)
*/
#include "stdio.h"
#include "conio.h"
# include "stdlib.h"
#include "string.h"
#include "windows.h"
int stu_num=0; //variable global, el número de estudiantes que ingresaron sus calificaciones
struct Student //Matriz de estructura, utilizada para almacenar los datos de los estudiantes
{
char num[11]; / /Guardar número de estudiante
char name[11]; //Guardar nombre
char sex[3]; //Guardar género
char date[11] ; //Año de almacenamiento y mes de admisión
int term; //Número de semestre de almacenamiento
float score1; //Puntuación de almacenamiento 1
puntuación flotante2; //Puntuación de almacenamiento 2
puntuación flotante3; //Guardar puntuación 3
puntuación flotante4 //Guardar puntuación 4
}estudiante[100];
void advertencia() //Función de advertencia
{
char a;
printf("No hay datos del estudiante que buscas, presiona cualquier tecla Retorno y vuelve a ingresar");
a=getch() //Guardar cualquier tecla
}
void input() //Función de entrada
{
char a;
do
{
system("cls");
printf("(i)Ingrese los datos del estudiante\n(e) Regrese al menú principal\nPor favor ingrese la opción que desea ejecutar: ");
a=getch(); //Obtener opciones de entrada
if(a=='i'||a=='I') / /Ingresar datos del estudiante
{
system("cls") ; //Función borrar pantalla
printf("Ingresar los datos del désimo estudiante a continuación\ nNúmero de estudiante: ", stu_num 1); //Las siguientes operaciones almacenan los datos del estudiante en la estructura
scanf("s",amp;student[stu_num].num);
printf("Nombre:");
scanf("s",amp;estudiante [stu_num].nombre);
> printf("Género:");
scanf("s", amp; estudiante[stu_num].sexo);
printf("Año y mes de inscripción:");
scanf("s", amp; estudiante[stu_num].fecha);
printf("semestre:
scanf("d"); , amp; estudiante[stu_num].term);
printf("Puntuación 1:");
scanf("f", amp; estudiante[stu_num].puntuación1);
printf("Puntuación 2: ");
scanf("f", y estudiante[stu_num].puntuación2); 3 : ");
scanf("f", amp; estudiante[stu_num].score3);
printf("Puntuación 4: ");
scanf("f",& estudiante[stu_num].score4);
stu_num;
}
if(a=='e'|| a=='E') //Salir de la función de entrada
{
break; //Forzar que el bucle salga de la función de entrada
} p>
} while(1);
}
void salida() //Función de salida
{
sistema (" cls"); //Función borrar pantalla
int i, j;
printf("ID del estudiante\t Nombre, sexo, año y mes de ingreso, semestre grado 1 grado 2 grado 3 grado 4\ n");
for(i=0; ilt; stu_num; i ) //Envíe los datos de los estudiantes uno por uno a través de la declaración for
{
printf(" -12s-8s-8s-10s-6d-8.2f-8.2f-8.2f-5.2f\n", estudiante[i].num, estudiante[i].nombre, estudiante[i].sexo, estudiante[i].fecha, estudiante[i].término, estudiante[i].puntuación1, estudiante[i].puntuación2, estudiante[i].puntuación3, estudiante[i].puntuación4);
} p>
printf("Presione cualquier tecla para regresar al menú principal");
j=getch(); //Guardar cualquier tecla
p>
}
void review() //Modificar función
{
int i=0;
char a , num[11], nombre[11];
p>
st: system("cls"); //Función borrar pantalla
printf("(x) Buscar y modificar por número de estudiante\n(m)
Buscar y modificar por nombre\n(e) Regresar al menú principal\nIngrese la opción que desea ejecutar: ");
a=getch(); //Obtener opciones de entrada
if(a=='x'||a=='X') //Buscar por ID de estudiante
{
printf("Ingrese el ID de estudiante: ") ;
scanf("s", amp; num); //Ingrese los datos de búsqueda y use la declaración for para comparar uno por uno
for(i=0; ilt; stu_num; i )
{
if(strcmp(num, estudiante[i].num)==0)
{
break; // Finaliza el ciclo después de encontrarlo
}
}
}
else if(a== 'm'||a==' M') //Buscar por nombre
{
printf("Ingrese el nombre del estudiante: "); > scanf("s", amp; name); //Ingrese los datos de búsqueda y use la declaración for para comparar uno por uno
for(i=0; ilt; stu_num; i )
{
if( strcmp(nombre, estudiante[i].nombre)==0)
{
//Finalizar el descanso; bucle después de encontrarlo
}
}
}
else if(a=='e'||a==' E') //Salir de la función de modificación
{
return;
}
else //Para evitar elegir la opción incorrecta
{
goto st;
}
if(i==stu_num) //Avisa cuando los datos del estudiante no están disponibles encontrado y buscar de nuevo
{
advertencia ();
goto st
}
sistema( "cls");
printf("El estudiante que desea cambiar La información es:\n"); //Envíe la información del estudiante a modificar
printf("Estudiante ID\t Nombre, Género, Año de inscripción, Mes, Semestre Grado 1 Grado 2 Grado 3 Grado 4\n");
printf("-12s-8s-8s-10s-6d-8.2f -8.2f-8.2f-5.2f\n", estudiante[i].num, estudiante[i].nombre, estudiante[i].sexo, estudiante[i].fecha, estudiante[i].término, estudiante[ i].score1, estudiante[i].score2, estudiante[i].score3, estudiante[i].score4);
printf("Actualice los datos del estudiante\nNúmero de estudiante: "/); /Actualiza los datos después de encontrarlos
scanf("s",amp; Student[i] .num);
pr
intf("Nombre:");
scanf("s",amp; estudiante[i].nombre);
printf("Género:");
scanf("s", amp; estudiante[i].sex);
printf("Año y mes de inscripción:"); amp ;estudiante[i].fecha);
printf("Término:");
scanf("d", & estudiante[i].term);
printf("Puntuación 1:");
scanf("f", estudiante[i].puntuación1);
printf("Puntuación 2:" );
scanf("f", amp; estudiante[i].score2);
printf("Puntuación 3: "); ", estudiante[i].puntuación3);
printf("Puntuación 4: ");
scanf("f", estudiante[i]. puntuación4);
printf("Los datos del estudiante han sido modificados, presione cualquier tecla para regresar");
a=getch() //Guardar cualquier tecla
} p>
void search() //Función de consulta
{
int i=0;
char a, num[11 ], nombre[ 11];
st: system("cls"); //Función borrar pantalla
printf("(x)Buscar por número de estudiante\n(m) Buscar por nombre\ n(e) Regresar al menú principal\nPor favor ingrese la opción que desea ejecutar: ");
a=getch(); //Obtener opciones de entrada
if (a =='x'||a=='X') //Buscar por ID de estudiante
{
printf("Ingrese el ID de estudiante:"); >
scanf("s", amp; num); //Ingrese los datos de búsqueda y use la declaración for para comparar uno por uno
for(i=0; ilt; stu_num; i) p>
{
if(strcmp(num, estudiante[i].num)==0)
{
break; / encontrado Luego finaliza el ciclo
}
}
}
else if(a=='m'||a= ='M ') //Buscar por nombre
{
printf("Ingrese el nombre del estudiante: "); amp; name ); //Ingrese los datos de búsqueda y use la declaración for para comparar uno por uno
for(i=0; ilt; stu_num; i )
{ p>
if(strcmp (name, Student[i].name)==0)
{
break; // Finaliza el ciclo después de encontrarlo
}
<p> }
}
else if(a=='e'||a=='E') //Salir de la función de consulta
{
return;
}
else //Para evitar elegir la opción incorrecta
{
ir a st ;
}
if(i==stu_num) //Aparece una advertencia cuando no se encuentran los datos del estudiante y busca nuevamente
{
advertencia( );
goto st;
}
printf("ID del estudiante\t Nombre Género Inscripción Año, Mes, Semestre Grado 1 Grado 2 Grado 3 Grado 4\n ");
printf("-12s-8s-8s-10s-6d-8.2f-8.2f-8.2f-5.2f\n", estudiante[i]. num, estudiante[i].nombre, estudiante[i].sexo, estudiante[i].fecha, estudiante[i].término, estudiante[i].puntuación1, estudiante[i].puntuación2, estudiante[i].puntuación3 , estudiante[i]. puntuación4);
printf("Presione cualquier tecla para regresar al menú principal"
a=getch(); >}
void del() //Eliminar función
{
int i=0, j
char a, num; [11], nombre[11];
st: system("cls"); //Función borrar pantalla
printf("(x) Buscar y eliminar por número de estudiante\ n(m) Buscar y eliminar por nombre\n (e) Regresar al menú principal\nIngrese la opción que desea ejecutar: ");
a=getch(); //Obtener opciones de entrada
if(a==' x'||a=='X') //Buscar por número de estudiante
{
printf("Por favor, ingrese el número de estudiante del estudiante:");
scanf("s", amp; num); //Ingrese los datos de búsqueda y use la declaración for para comparar uno por uno
para (i=0; ilt; stu_num; i)
{
if(strcmp(num, estudiante[i].num)==0)
{
break; // Finaliza el ciclo después de encontrar
p>}
}
}
else if(a=='m'||a=='M') //Presione Buscar nombre
{
printf("Por favor ingrese el nombre del estudiante: ");
scanf("s", amp; name); //Entrada Encuentra datos y úsalos para comparar una por una
for(i=0;ilt;stu_num;i )
{
if(strcmp(nombre, estudiante[ i].nombre)==0)
{
bre
ak; // Finaliza el ciclo después de encontrarlo
}
}
}
else if(a=='e' || a=='E') //Salir de la función de eliminación
{
return
}
else p>
{
goto st; //Para evitar una selección incorrecta de opciones
}
if(i==stu_num) //Preguntar cuando no se encuentran datos del estudiante Advertir y buscar nuevamente
{
advertencia()
goto st
}
for( j=i;jlt;stu_num;j) //Eliminar los datos del estudiante sobrescribiendo los datos con la declaración for
{
estudiante[j]=estudiante[j 1 ];
p>}
stu_num-=1;
printf("Los datos del estudiante han sido eliminados, presione cualquier tecla para regresar al menú principal ");
a=getch();
}
void menu() //Función de directorio
{
do
{
char a;
st: system("cls"); //Función borrar pantalla
printf("\t\t Bienvenido Sistema de gestión del desempeño estudiantil versión 1.22\n\n\n\t\t\t(i) Ingresar datos del estudiante\n\n\t\t\t(d) Eliminar datos del estudiante\ n\n\t\t\t (o) Ver datos de estudiantes\n\n\t\t\t(s) Consultar datos de estudiantes\n\n\t\t\t(r) Modificar datos de estudiantes\n\ n\t\t\t(e )Salga del sistema\n\n\nPor favor ingrese la opción que desea ejecutar: "); //Menú principal
a=getch(); //Obtener opciones de entrada
switch (a)
{
case 'i': //Ingrese la función de entrada
case 'I' :
input() ;
break;
case 'o': //Ingrese la función de salida
case 'O' :
salida();
break;
case 'r': //Ingrese la función de modificación
case 'R' :
revise();
break;
case 'd': //Ingrese la función de eliminación
case 'D' :
del();
p>
break;
case 's': //Ingresa la función de búsqueda
case 'S':
search();
break;
case 'e': //Salir del programa
caso 'E'
:
return;
default: //Para evitar elegir la opción incorrecta
goto st; p > } while(1);
}
void main()
{
printf("Miembro del equipo:\nLi Donghai Chen Zhirui\nLinghua Fulin lo sucedió\nA Dewei Zhong Penghui\n\n\n\n\t\tPor favor espere..."); //Columna de reconocimiento
Sleep(7000); p >
menu();
}
Esta es la tarea final realizada por varios de nosotros, puede usarla como referencia si no se puede usar la función de Windows; elimínelo. También elimine el sueño.