Código fuente C++ del sistema de gestión de información estudiantil
#include
#include
#include
#include< malloc.h>
#define INIT_SIZE 10
#define INCRE_SIZE 10
#define SUBJECT_NUM 3
#define LEN 3 p>
void show_Start();
void show_Table();
void addRecord();
void Info_delete();
void eliminarRegistro();
void eliminar_Num(int);
void eliminar_Nombre(char tarName[]);
void Info_modify();
void modificarRecord();
void modificar_Num(int);
void modificar_Nombre(char[]);
void Info_query() ;
void queryRecord();
void query_Num(int);
void query_Name(char[]);
visualización nula ();
void quit();
void menu_CMD();
char *subject[SUBJECT_NUM] = {"Alta generación","Puntuación " ,"lenguaje C"};
struct STUDENT
{
int num;
char name[20];
p>char sex;
puntuación flotante[SUBJECT_NUM];
};
//struct STUDENT stu[LEN + 1];< / p>
//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);
int static stuNum = 0
//Definido temporalmente; primeros tres estudiantes...
STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);;
int main()
{
//registro = (ESTUDIANTE*)malloc(tamañode(ESTUDIANTE)*INIT_SIZE);
//ESTUDIANTE *registro = (ESTUDIANTE*)malloc(tamañode(ESTUDIANTE) * INIT_SIZE);
/*
registro[1].num = 1001;
strcpy(registro[1].nombre,"Jason"); /p>
registro[1].sexo = 'M';
registro[1].puntuación[0] = 85,0;
registro[1].puntuación [ 1] = 90,0;
registro[1].puntuación[2
] = 95,0;
registro[2].num = 1002;
strcpy(registro[2].nombre,"Jerry");
registro[ 2].sexo = 'M';
registro[2].score[0] = 85,0;
registro[2].score[1] = 90,0;
registro[2].puntuación[2] = 95,0;
registro[3].num = 1003;
strcpy(registro[3].nombre,"Jessie ");
registro[3].sexo = 'F';
registro[3].puntuación[0] = 85,0;
registro[3 ].puntuación[1] = 90,0;
registro[3].puntuación[2] = 95,0;
*/
/*
Info_modify();
int key;
cout<<"Por favor, introduzca su elección: ";
cin>>key;
p>if(key == 1)
{
int targetNum;
cout<<"Ingrese el número de estudiante que desea modificar. Número: ";
cin>>targetNum;
modificar_Num(targetNum);
cout< mostrar. () ; } if(key == 2) { char targetName[20]; cout<<"Ingrese el nombre del estudiante que desea modificar: "; cin>>targetName; modificar_Name(targetName); cout<< endl; display(); } if(clave == 3) { p> salir(0); } */ show_Start(); menu_CMD(); return 0; } //Aún debería mostrarse después de la modificación void show_Start() { //cout< cout<<" *********************** ******** *********** "< cout<<" Este es un "< cout<<" sistema de gestión del desempeño de los estudiantes "< cout<<" Puede administrar el desempeño de los estudiantes"< cout<<" Todos son bienvenidos a usar "< cout<<" Hecho por Jason "< cout<<" ********** ** ****************************** "< } // Muestra información del encabezado, es decir: número de estudiante, nombre, sexo, educación superior, puntaje, lenguaje C void show_Table() { cout<<"\t"< cout< } void menu_CMD() { tecla int; while(1) { cout<<"1. Agregar información del estudiante"< cout<<"2. Eliminar información del estudiante"< cout<<"3. Modificar información de los estudiantes"< cout<<"4. Consultar información de los estudiantes"< cout<<"5. p> cout<<"6. Salir"< cout<<"Ingrese su elección: "; cin>>clave;< / p> while(1) { if((clave < 1)||(clave > 6)) { p > int key; cout<<"¡Su entrada es incorrecta, vuelva a ingresar!"< cout<<"Por favor seleccione (1 - 5 ) : "; cin>>tecla; } más { descanso; } } interruptor(tecla) { caso 1: addRecord(); romper; caso 2: eliminarRecord(); romper; caso 3: modificarRecord(); romper; caso 4: queryRecord(); ruptura; caso 5: mostrar(); romper; caso 6: salir(); romper; } } p> } ////////////////////////////////////// // ///////////////////////////////////////////// / /////////////////////////////////////////////// //////// ///////////////////////////////////Agregar información del estudiante void addRecord() { if(stuNum == 0) { cout<<"Hubo no había ningún registro antes, ahora cree una nueva tabla!"< stuNum++; } else { p> cout<<" ¡Ahora agregue nueva información al final de la tabla actual!"< stuNum++; } // Si el espacio de la matriz no es suficiente, vuelva a solicitar espacio if(stuNum > INIT_SIZE) { cout<<"El espacio de memoria no es suficiente, ¡ahora vuelva a solicitar espacio de memoria nuevo!"< record = (STUDENT*)realloc(record,(INIT_SIZE + INCRE_SIZE)*sizeof(STUDENT)); cout<<"¡Solicitud espacial completada!"< } cout<<"Quieres agregar un nuevo conjunto de información ahora, ¿estás seguro? ?"< cout<<"Por favor, introduzca su elección (Y/N): "; char choi; cin>>choi ; if((choi == 'Y')| |(choi == 'y')) { cout<<"Por favor, ingrese su número de estudiante: "; cin>>record[stuNum] .num; cout<<"Por favor, ingrese su nombre: "; cin> >record[stuNum].name; cout<<"Por favor, ingrese Género (M es masculino, F es femenino): "; cin>>record[stuNum].sex ; int i; for(i = 0;i < SUBJECT_NUM;i++) { cout<<"Por favor ingrese la puntuación de "< cin>>record[stuNum].score[i]; } } if((choi == 'N')|| (choi == 'n')) { cout<<" ¡Salga de agregar información de nuevos estudiantes!"< cout< } cout<<"¡Ahora hay "< cout< } ////////////////////////////////////////// // //////////////////////////////////////// / //// /////////////////////////////////////////////// //////// /////////////////////////////////////Eliminar información completada por la noche ... //Mostrar información del encabezado de borrado de registro void Info_delete() { cout<<"Por favor, introduzca la eliminación método: "< cout<<"1. Eliminar por número de estudiante"< cout<<"2. cout<<"3. Salir de la eliminación"< } //Eliminar información del estudiante, incluidas dos subfunciones void deleteRecord() { int key; cout< Info_delete(); p> cout<<"Por favor, introduzca su Select: "; cin>>clave; if(clave == 1) { int targetNum; cout<<"Ingrese el número de estudiante del estudiante que desea eliminar: "; cin>>targetNum; //Eliminar por número de estudiante delete_Num(targetNum); cout< } if(key == 2) { char targetName[20]; cout<<"Ingrese el nombre del estudiante que desea para eliminar: "; cin>>targetName; //Eliminar por nombre eliminar_Nombre(targetName); cout< } si( clave == 3) { mientras(1) { menu_CMD(); } } } //Eliminar información del estudiante por número de estudiante //Completar solo la operación de eliminación sin generar operaciones de salida se pueden realizar en el menú principal void delete_Num(int tarNum) { int i; for( i = 1;i <= stuNum;i++) { if(record[i] .num == tarNum) { //La eliminación debe discutirse en dos situaciones //1. La información del estudiante que se eliminará es la. el ultimo //2. La información del estudiante a eliminar no es la última //En el primer caso, la información del estudiante a eliminar es la última if (i = stuNum) { cout<<"La información del estudiante que desea eliminar es: "< show_Table (); p> cout< < cout< cout< show_Table() ; for(int i = 1;i <= stuNum - 1;i++) { cout< for(int j = 0;j < SUBJECT_NUM;j++) { p> cout<<"\t"< } cout< } //La información mostrada debe colocarse en la parte posterior /* stuNum--; > cout<<"Ahora quedan "< cout< */ } //2. En el segundo caso, el alumno a eliminar no es el último if(i != stuNum) cout<< "La información de la carta del estudiante que desea eliminar es: "< show_Table(); cout< < { registro[j-1] = registro[j]; } // Luego complete la salida cout< cout<<"Después de la eliminación, la tabla de información del estudiante es: "< show_Table() ; for(int i = 1;i <= stuNum-1;i++) { cout< for(int j = 0;j < SUBJECT_NUM;j++) { cout<<"\t"< } cout < } /* stuNum--; cout<<"Aún quedan"<< stuNum<< "Información del estudiante"; cout< */ } stuNum--; p > cout<<"Aún quedan "< cout< } } } /* //El mismo método que el anterior void delete_Name(char tarName[]) p> { int i; for(i = 1;i <= stuNum;i++) { if (strcmp(record[i].name,tarName) == 0) { //La eliminación se discutirá en dos situaciones / / 1. La información del estudiante a eliminar es la última //2. La información del estudiante a eliminar no es la última //La primera situación: el estudiante. a eliminar es el último if(i = stuNum) { cout<<"La información del estudiante que desea eliminar es: " < show_Table(); cout< < cout< cout< show_Table(); for(int i = 1;i <= stuNum - 1;i++) { cout< for(int j = 0;j < SUBJECT_NUM;j++) { cout<<" \t"< } cout< } } //Segundo caso: El alumno a eliminar no es el último if(i != stuNum) { cout<<"La información de la carta del estudiante que desea eliminar es: "< show_Table(); cout< < //Avanzar todo un paso; lugar for(int j = i+1;j <= stuNum;j++) { registro[j-1] = registro[j] ; } cout< // Luego complete la salida cout<<"Después de la eliminación, el estudiante la tabla de información es: " < show_Table(); for(int i = 1;i <= stuNum-1;i++) { cout< for( int j = 0;j < SUBJECT_NUM;j++) { cout<<"\t"< } cout< } cout< } } } */ void delete_Name(char tarName[]) { int i; for(i = 1;i <= stuNum;i++) { / /La eliminación también debe dividirse en Discusión de dos situaciones //1. La información del estudiante a eliminar es la última //2 La información del estudiante a eliminar no es la última //Cuando el estudiante a eliminar es el último. uno, genere directamente información sobre los estudiantes anteriores de LEN-1 if(strcmp(record[i].name,tarName) == 0) { if(i == stuNum) { cout<<"La información del estudiante que desea eliminar es: "< show_Table( ); cout< < cout< cout<<"Después de la eliminación, la tabla de información del estudiante es: "< show_Table (); for(int i = 1;i <= stuNum-1;i++) { cout< for(int j = 0;j < SUBJECT_NUM;j++) { cout<<"\t"< } cout< } /* stuNum--; cout<<"Todavía hay "< cout< */ } //Cuando el estudiante a eliminar no es el último, mueve todo hacia adelante un dígito if(i != stuNum) { cout<<"El La información del estudiante que desea eliminar es: "< show_Table(); cout< cout< cout< // Mueve todo hacia adelante un dígito for(int j = i+1;j <= stuNum;j++) { registro[j-1] = registro[j]; } // Luego genera cout< cout<<"Después de la eliminación, la tabla de información del estudiante es: "< show_Table(); for(int i = 1;i <= stuNum-1;i++) { cout< for(int j = 0; j < SUBJECT_NUM;j++) { cout<<"\t"< } p> cout< } /* stuNum--; cout<<"Allí todavía son Siguientes "< cout< */ } stuNum--; cout<<"Aún queda "< cout< } } } /************************ ** ************************************************* * ** ****************************************** * *****************************************/ //Mostrar información del encabezado de modificación del registro void Info_modify() { cout<<"Ingrese el método de modificación: "< cout<<"1. Modificar por número de estudiante"< cout<<"2. Modificar por nombre"< cout< <"3. Salir de la modificación"< } //Consultar las calificaciones de los estudiantes, que por supuesto incluye dos subfunciones void modificarRegistro () { int clave; cout< Info_modify(); cout<<"Por favor ingrese su elección: "; cin>>key; //Modificar por número de estudiante if(key == 1) { int targetNum; cout<<"Ingrese el número de identificación del estudiante que desea modificar: "; cin>>targetNum; modify_Num(targetNum) ; p> cout< //display(); } //Modificar por nombre if(key == 2) { char targetName[20]; cout<<"Por favor, introduzca el nombre del estudiante que desea modificar: "; cin>>targetName; modificar_Nombre(targetName); cout< //display(); } //Salir de la modificación if(key == 3) { mientras(1 ) { menu_CMD(); } } } //Modificar por número de estudiante void modificar_Num(int tarNum) { int i; for(i = 1 ;i <= stuNum;i++) { if(record[i].num == tarNum) { cout< cout<<"Por favor ingrese el ID de estudiante del estudiante: "; p> cin>>record [i].num; cout<<"Por favor ingrese el nombre del estudiante: "; cin>>record[i].name ; cout<<"Por favor ingrese el género del estudiante: "; cin>>record[i].sex; cout<<"Por favor ingrese "< cin>>record[i].score[0]; cout<<"Por favor, ingrese"<< asunto[1]<< "puntuación: "; cin>>record[i].score[1]; cout<<"Por favor, introduzca "< cin>>record[i].score[2]; } } } p> //Modificar por nombre void modificar_Nombre(char tarName[]) { int i; for(i = 1;i <= stuNum;i++) { if(strcmp(record[i].name,tarName) == 0) { cout< Información del estudiante: "< cout<<"Por favor ingrese el número de estudiante: "; cin>>record[i].num; cout<<"Ingrese el nombre del estudiante: "; cin>>record[i].name; cout<<"Ingrese el nombre del estudiante Género: "; cin>>record[i].sex; cout<<"Por favor, introduzca la puntuación de "< cin>>record[i].score[0]; cout<<"Por favor, introduzca la puntuación de "< cin>>record[i].score[1]; cout<<"Por favor, introduzca la puntuación de "< cin>>record[i].score[2]; } } } //// / /////////////////////////////////////////////////// /// //////////////////////////////////////////////// /////////////////////////////////////////////////// //// /////////// //Mostrar la información del encabezado de queryRecord void Info_query() { cout<<"Por favor ingrese el método de consulta: "< cout<<"1. Consulta por número de estudiante"< cout<<"2 . Consulta por nombre"< cout<<"3. Salir de la consulta"< } / /Consultar información del estudiante queryRecord void queryRecord() { int key; cout< Info_query( ); cout<<"Por favor, introduzca su elección: "; cin>>key; if(key == 1 ) { int targetNum; cout<<"Ingrese el número de estudiante que desea consultar: "; cin >>NumDestino; Num_Consulta(NumDestino); cout< } if(clave == 2) { char targetName[20]; cout<<"Ingrese el número de estudiante que desea consultar: "; cin>> nombre_objetivo; nombre_consulta(ta rgetName); cout< } //Salir de la consulta y volver al menú principal... if(clave == 3) { mientras(1) { menu_CMD(); } } } //Consulta por número de estudiante void query_Num(int tarNum) { int i; for(i = 1;i <= stuNum;i++) { si ( record[i].num == tarNum) { //Si hay información sobre el estudiante en la tabla, simplemente genere la información sobre el estudiante. //Salir la información del estudiante cout<<"La información del estudiante es la siguiente: "< //Mostrar información del encabezado show_Table(); //Muestra la información específica del estudiante cout< cout<<"\t"< cout< } } } //Consulta por nombre void query_Name(char tarName[]) { p > int i; for(i = 1;i <= stuNum;i++) { if(strcmp(record[i ] .name,tarName) == 0) { cout<<"La información del estudiante es la siguiente: "< show_Table( cout< cout<<"\t"< cout< } } } // ///////////////////////////////////////////////// ////// ///////////////////////////////////////////// //// //////////////////////////////////////////////// //////// ///////// //// //Mostrar primero la información de todos los estudiantes //Mostrar las puntuaciones de todos los estudiantes en el registro void display() { show_Table(); int i,j; for(i = 1;i <= stuNum;i++) p> { //cout<<"ID de estudiante"<<"\t"<<"Nombre"<<"\t"<<"Género"; cout< para (j = 0;j < SUBJECT_NUM;j++) { cout<<"\t"< cout< } cout<