C++ diseña un sistema de gestión de información estudiantil
#include
#include
#include
#include usando el espacio de nombres std; clase Estudiante{ //Clase de estudiante privado: número de cadena; //Número de estudiante nombre de cadena; //Nombre int edad; //Edad char sexo; //Género calificación de cadena; //Clase p> public: Student(); //Sin construcción de parámetros Student(string Num,string Nam,int Age,char Sex,string Gra):number( Num),nombre(Nam),edad(Edad),sexo(Sexo),calificación(Gra){}//Construcción con parámetros ~Estudiante(){} //Destrucción virtual void Display(); //Mostrar información del estudiante virtual void Add(); //Declarar una función para agregar nuevos objetos de estudiante virtual int FindRevise(string str) {if(str==number) return 1;else return 0;} void Setname(string str) {name=str;} //Modificar nombre void SetGrade(string str) {grade=str;} //Modificar la clase }; Student::Student(){ //Definir el constructor sin parámetros de la clase de estudiante número="001"; nombre="Zhangsan"; edad=18; sexo='M'; grade="One"; } void Student::Display(){ //Definir la función para mostrar la información del estudiante cout< <"Número de estudiante:"< cout<<"Nombre:"< cout<<"Edad:"<< edad< cout<<"Género:"< cout<<"Grado:"< } void Student::Add(){ //Definir la función para agregar información del estudiante cout<<"Por favor ingrese"< cout< <"Número de estudiante:";cin>>número; cout<<"Nombre:";cin>>na yo; cout<<"Edad:";cin>>edad; cout<<"Género:";cin>>sexo; cout <<"Calificación:";cin>>calificación; } clase Pregrado:public Estudiante{ //Clase Pregrado, hereda la clase Estudiante privado : puntuación doble1; //puntuación 1 puntuación doble2; //puntuación 2 puntuación doble3; //puntuación 3 puntuación doble4; //Puntuación 4 Monitor de estudiante //Monitor (clase de estudiante) público: Subgrado(); Grado básico(string Num,string Nam,int Edad,char Sexo,string Gra,doble s1,doble s2,doble s3,doble s4,Estudiante Mon):Estudiante(Num,Nam,Edad,Sexo, Gra){ puntuación1=s1; puntuación2=s2; puntuación3=s3; puntuación4=s4; monitor=Mon; }//Construcción con parámetros virtual void Display_monitor();//Definir función para mostrar información del monitor ~ Undergrade (){} //Destrucción void Display();//Declaración de visualización de la función de información de estudiantes de pregrado void Add(); //Declaración de nuevos estudiantes de pregrado Función virtual void AddMon();//Declara la función para agregar información del monitor int FindRevise(string str); // Se utiliza para buscar y determinar si el número de estudiante es el estudiante. str es el número del estudiante void Revise(int n); //Modifica la información del estudiante, n es la información que debe modificarse (consulte ReviseMenu para obtener más detalles) }; Undergrade::Undergrade(){ //Definir el constructor sin argumentos para estudiantes universitarios puntuación1=100; puntuación2=100; puntuación3= 100; puntuación4=100; Estudiante t; monitor=t; } void Undergrade::Display_monitor(){ //Definir la función para mostrar información de pregrado monitor.Display(); } void Undergrade::Display() { //Definir la función para mostrar información de pregrado Student::Display(); p> cout<<"Puntuación 1:"< cout<<"Puntuación 2:"< cout <<"Puntuación 3:"< cout<<"Puntuación 4:"< cout<<"Monitor:" < Display_monitor(); } void Undergrade::AddMon(){ //Definir una función para agregar información del monitor monitor.Add(); } void Undergrade::Add(){ //Definir la función para agregar información de pregrado Estudiante :: Add(); cout<<"Puntuación 1:";cin>>puntuación1; cout<<"Puntuación 2:";cin>>puntuación2; p> cout<<"Partitura 3:";cin>>partitura3; cout<<"Partitura 4:";cin>>partitura4; cout<< "Monitor :"< AddMon(); } int Undergrade::FindRevise(string str){//Se utiliza para buscar y determinar el tema ¿Es el número de estudiante str el número de estudiante? if(Student::FindRevise(str)) devuelve 1; else devuelve 0; } p> void Undergrade::Revise(int n){ //Modifica la información del estudiante n al tipo específico de modificación (consulte ReviseMenu para obtener más detalles) string str; switch( n){ caso 1:{ cout<<"Ingrese un nuevo nombre:";cin>>str; Student::Setname(str ); break; } caso 2:{ cout<<"Por favor, introduzca un nueva clase:";cin> >str; Estudiante::SetGrade(str); break; } } } clase Graduado:público Estudiante{//Clase de posgrado privado: puntuación dobleA //puntuación a p> puntuación dobleB ; //Puntuación b Monitor de estudiante; //Monitor (estudiante) cadena res_direction; //Dirección de la investigación string res_teacher; //Tutor de investigación doble salario;//Salario público: Graduado (); //Sin construcción de parámetros Graduado(string Num,string Nam,int Age,char Sex,string Gra,double A,double B,Student Mon,string Dir,string Tea,double Pay) :Estudiante(Num,Nombre,Edad,Sexo,Gra){ puntajeA=A; puntajeB=B; monitor=Mon; res_direction=Dir; res_teacher=Té; pay=Pagar; }//Construcción con parámetros void Display_monitor();//Declarar la función para mostrar información del monitor ~Graduate(){} //Destrucción void Display();//Declarar la función para mostrar el graduado información del estudiante void Add();//Agregar información del estudiante void AddMon();//Agregar información del monitor int FindRevise(string str); //Se utiliza para buscar y determinar si el número de estudiante es el estudiante str es el número de estudiante void Revise(int n); //Modifica la información del estudiante n al tipo específico de modificación (consulte ReviseMenu para obtener más detalles). ) }; Graduate::Graduate(){ //Definir el constructor sin argumentos para estudiantes graduados scoreA=100; puntuaciónB= 100; Estudiante t; monitor=t; res_direction="Zhang"; res_teacher= "Zhang"; pay=999; } void Graduate::Display_monitor(){ //Definir la función para mostrar información del monitor monitor.Display (); } void Graduate::Display(){ //Definir la función para mostrar información del egresado Estudiante ::Display(); cout<<"Puntuación A:"< cout<<"Puntuación B:"< cout< <"Monitor:"< Display_monitor(); cout<<"Dirección de la investigación:"< l; cout<<"Tutor de investigación:"< cout<<"Salario:"< } void Graduate::AddMon(){//Definir la función para agregar información del monitor monitor.Add(); } p > void Graduate::Add(){ //Definir la función para agregar información del egresado Student::Add(); cout<<"Calificación A: ";cin >>puntuaciónA; cout<<"Puntuación B:";cin>>puntuaciónB; cout<<"Monitor:"< AddMon(); cout<<"Dirección de la investigación:";cin>>res_direction; cout<<"Tutor de la investigación:";cin>>res_teacher; cout<<"Salary:";cin>>pay; } int Graduate::FindRevise(string str){//Se utiliza para buscar y determinar el número de estudiante ¿Es str el número de estudiante para este estudiante? if(Student::FindRevise(str)) devuelve 1; else devuelve 0; } void Graduate::Revise(int n){ //Revisa la información del estudiante n al tipo específico de modificación (consulte ReviseMenu para obtener más detalles) string str; switch(n ){ caso 1:{ cout<<"Ingrese un nuevo nombre:";cin>>str; Student::Setname(str) ; break; } caso 2:{ cout<<"Por favor ingrese una nueva clase:";cin>> str; Student::SetGrade(str); break; } } } void MainMenu() //Menú principal { cout<<"\n\tSistema de gestión de estudiantes" ; cout<<"\n******************************\n"; p> cout< <" \t1. Agregar nuevos estudiantes de pregrado\n"; cout<<" \t2. Agregar nuevos estudiantes de posgrado\n"; cout <<" \t3 .Mostrar información de estudiantes de pregrado\n"; cout<<" \t4.Mostrar información de estudiantes de posgrado\n" ; cout<<" \t5. Modificar información de estudiantes de pregrado\n"; cout<<" \t6. Modificar información de estudiantes de posgrado\n"; cout<<" \t7. Eliminar información del estudiante de pregrado\n"; cout<<" \t8. Eliminar información del estudiante de posgrado\n"; cout<<" \t9.\n"; cout<<" \t10.\n"; cout<<"\n******** **** *******************\n"; cout<<"Por favor seleccione:"; } void ReviseMenu() //Definir la función para modificar la información del estudiante { cout<<"\n************ ******************\n"; cout<<"1 Modificar nombre\n"; cout<. <"2. Modificar clase"; cout<<"\n***************************** *\n "; cout<<"Por favor seleccione:"; } int main() { p> Undergrade UndGra[100]; //Definir matriz de objetos de pregrado int UndGraVis[100] //Se utiliza para determinar si existen estudiantes de pregrado Graduate Gra[100] ]; //Definir la matriz de objetos de estudiantes de posgrado int GraVis[100]; //Se utiliza para determinar si existen estudiantes de posgrado int i,UndGraPeo=1,GraPeo=1,a [2]; memset(UndGraVis,1,sizeof(UndGraVis)); memset(GraVis,1,sizeof(GraVis)); mientras (1) { Menú principal(); int c; cin>>c; cout<< endl; switch(c) { caso 1:{//Nuevo estudiante universitario UndGra[ UndGraPeo]. Add(); cout<<"¡Agregado exitosamente!"< UndGraPeo++; break; } caso 2:{//Agregar estudiante de posgrado Gra[GraPeo].Add(); cout<<"¡Agregado exitosamente!"< < endl; GraPeo++;< /p> break; } caso 3:{//Mostrar estudiantes universitarios if(UndGraPeo==1) cout<<" No ¡registro!\n"; else{ for(i=1;i if(!UndGraVis[i] ) continuar; UndGra[i].Display(); cout< } } break; } caso 4:{//Mostrar estudiantes graduados if(GraPeo==1) cout<<"¡Sin registro! \n"; else{ for(i=1;i if(!GraVis[i]) continuar; Gra[i].Display(); cout< } } break; } caso 5:{//Modificar información de pregrado ReviseMenu(); int cin > >n; string str; int num=0; cout<<"Por favor ingrese el número de estudiante:";cin>>str ; for(i=1;i if(UndGra[i].FindRevise(str)) {num=i;break;} p> } if(num==0||!UndGraVis[num]) {cout<<"¡Error de entrada!"< else UndGra[num].Revise(n); cout<<"¡Modificación exitosa!"< dl; break; } caso 6:{//Modificar información del estudiante graduado ReviseMenu(); int n; cin>>n; string str; int num=0; cout<<"Por favor, introduzca el número de estudiante :";cin>>str; for(i=1;i if(Gra[i].FindRevise(str)) {num= i;break;} } if(num==0||!GraVis[num]) {cout<<"Error de entrada!"< else Gra[num].Revise(n); cout<<"¡Modificación exitosa!"< break; } caso 7:{//Eliminar información universitaria string str; int num=0; cout <<"Por favor ingrese el número de estudiante:";cin>>str; for(i=1;i if(UndGra[i ]. FindRevise(str)) {num=i;break;} } if(num==0||!UndGraVis[num]) {cout<<"¡Error de entrada! "< else UndGraVis[num]=0; cout<<"¡Eliminado!"< break; } caso 8:{//Eliminar información del graduado string str; int num =0; cout<<"Por favor ingrese el número de estudiante:";cin>>str; for(i=1;i if(Gra[i].FindRevise(str)) {num=i;break;} } if(num==0||!GraVis[num]) {cout<<"¡Error de entrada!"< else GraVis[num]=0; cout<<"¡Eliminado!"< break; } default:cout<<"¡Error de entrada!\n"; } } return 0; } Esto funciona absolutamente. Acabamos de hacer esto