Ayúdame a escribir un programa en C++
//Hola amigos, simplemente pueden modificar el siguiente programa. Los comentarios son muy claros
Título:
Personas en universidades Divididas en tres categorías: estudiantes. , docentes y personal, su información básica es la siguiente:
Estudiantes: nombre, edad, número de estudiante, grado, calificaciones
Profesores: nombre, edad, cédula de identidad, cargo , salario
Personal: nombre, edad, número de identificación, salario
Ahora necesitamos administrar la información de varios miembros del personal, utilice el método orientado a objetos para diseñar una lista enlazada heterogénea , utilizado para almacenar su información.
/*Implementación de lista enlazada heterogénea: hay tres clases: estudiante, profesor y personal, y luego define una clase de lista enlazada
. Esta clase se utiliza para almacenar objetos de estos diferentes. clases, y declarar la lista de clases de la lista vinculada como amiga de todas estas clases para que puedan acceder a sus miembros privados.
*/
#include
#include
#include
class person{ //Definir una clase base diferente con miembros de datos públicos
lista de clases amigas; //La clase de lista enlazada sirve como amiga de esta clase
protegida: p>
char name[20]; //Definir nombre
int age; //Definir edad
char add[40] / /Definir dirección
char tele[20]; //Definir número de teléfono
persona estática *ptr; //Definir un puntero estático que apunta al objeto de clase persona
persona *next; Puntero al siguiente objeto
public:
person(char *name,int age,char *add,char *tele);//Función de construcción
virtual void print(); //Describe la función virtual
virtual void insert(){};//Define una función virtual y no hace nada, solo define una interfaz
}; /p>
estudiante de clase:persona pública{ //Estudiante de clase derivada
lista de clases de amigos //La clase de lista vinculada sirve como amiga de esta clase
int nivel; ; //Definir calificación
float grade_point_average; //Definir puntaje promedio
public:
estudiante(char *nombre,int edad,char *add,char *tele, int nivel,
float grade_point_average); //Declarar el constructor
void print() //Redefinir la función print() p>
void insert(); //Redefinir la función insert()
};
//
profesor de clase:persona pública{ // Profesor de clase derivado p>
lista de clases de amigos; //La clase de la lista vinculada sirve como amiga de esta clase
salario flotante; //Definir salario
público:
p >teacher(char *nombre,int edad,char *add,char *tele,salario flotante
//Declarar el constructor
void print(); /Redefinir la función print()
void insert(); //Redefinir la función insert()
}
//
class staff:public person{ //Personal de clase derivada
lista de clases de amigos; //La clase de lista vinculada sirve como amiga de esta clase
float hourly_wages; //Definir salarios por hora
public:
staff(char *name,int age,char *add,char *tele,
float hourly_wages); constructor
void print(); //Redefinir la función print()
void insert(); //Redefinir la función insert()
}; /p>
//
lista de clases{ //Definir clase de lista enlazada heterogénea
persona *root //Puntero principal de lista enlazada
public; :
list(){ root=0 } //Constructor de lista vinculada, inicialmente 0
void insert_person(person *node);
void remove(char *name); //Eliminar un nodo de objeto de la lista enlazada
void print_list() //Generar toda la lista enlazada
>};
//
persona::persona(char *nombre,int edad,char *añadir,char *tele)
{ //Constructor de persona
strcpy(persona::nombre,nombre);
strcpy(persona::añadir,añadir
strcpy(persona::tele, tele)
persona::edad=edad;
siguiente=0;
}
void persona::imprimir() // La versión print() de la función miembro virtual de la clase base genera los miembros de datos de la clase base
{