//----------------------------------------------------------
// programa demo de C++
// versao #1:  objetos e classes
// preparado para MAC441, 2do sem. 1998, MAC-IME-USP
// Hernan Astudillo

//----------------------------------------------------------
#include <iostream.h>

//----------------------------------------------------------
class Pessoa {
   private:
      char* nome;
      int rg;
   public:
      // metodo (member) para ler os dados da pessoa
      void ler_dados()
	{
	    cout << "** ingresse dados de pessoa:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	};//ler_dados
      // metodo (member) para mostrar os valores da pessoa
      bool mostrar_todo(){
	  cout << "** dados da pessoa:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
      }; //apresentar
}; //Pessoa

//----------------------------------------------------------
class Trabalhador {
   private:
      char* nome;
      int rg;
      float salario;
   public:
      // metodo (member) para ler os dados do trabalhador
      void ler_dados()
	{
	    cout << "** ingresse dados de trabalhador:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	    cout << "salario?";
	    cin >> salario;
	};//ler_dados
      // metodo (member) para mostrar os valores da trabalhador
      bool mostrar_todo(){
	  cout << "** dados de trabalhador:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
	  cout << "salario=" << salario << endl;
      }; //apresentar
}; //Pessoa

//----------------------------------------------------------
class Estudiante {
   private:
      char* nome;
      int rg;
      float numUSP;
   public:
      // metodo (member) para ler os dados do estudiante
      void ler_dados()
	{
	    cout << "** ingresse dados de estudiante:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	    cout << "numUSP?";
	    cin >> numUSP;
	};//ler_dados
      // metodo (member) para mostrar os valores da trabalhador
      bool mostrar_todo(){
	  cout << "** dados de estudiante:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
	  cout << "numUSP=" << numUSP << endl;
      }; //apresentar
}; //Estudiante

//----------------------------------------------------------
class Monitor {
   private:
      char* nome;
      int rg;
      float numUSP;
      float salario;
   public:
      // metodo (member) para ler os dados do trabalhador
      void ler_dados()
	{
	    cout << "** ingresse dados de trabalhador:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	    cout << "numUSP?";
	    cin >> numUSP;
	    cout << "salario?";
	    cin >> salario;
	};//ler_dados
      // metodo (member) para mostrar os valores da trabalhador
      bool mostrar_todo(){
	  cout << "** dados de trabalhador:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
	  cout << "numUSP=" << numUSP << endl;
	  cout << "salario=" << salario << endl;
      }; //apresentar
}; //Monitor

//----------------------------------------------------------
main (){
    Pessoa* p = new Pessoa;
    Trabalhador* t = new Trabalhador;
    Estudiante* e = new Estudiante;
    Monitor* m = new Monitor;
    p->ler_dados();
    t->ler_dados();
    p->mostrar_todo();
    t->mostrar_todo();
};
//----------------------------------------------------------
