La Red de Conocimientos Pedagógicos - Currículum vitae - C++ diseña un sistema de gestión de información estudiantil

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;

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;

}

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

}

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

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

{

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

}

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

.