Código da Classe Veículos e sub-classes: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
(Criou página com ' #include <iostream> #include <stdlib.h> using namespace std; class veiculo_rodoviario{ //SUPER CLASSE private: int nrodas; int npassageiros; public: void...')
 
imported>Fargoud
Sem resumo de edição
Linha 78: Linha 78:
     system("pause");
     system("pause");
     return 0;
     return 0;
}
ADICIONANDO CONSTRUTORES ÀS CLASSES FILHAS:
#include <iostream>
#include <stdlib.h>
using namespace std;
class veiculo_rodoviario{ /***** SUPER CLASSE *****/
  private:
    int nrodas;
    int npassageiros;
  public:
    void setanrodas(int n)
    {nrodas = n;}
    int pegarodas()
    {return nrodas;}
    void setanpassageiros(int m){npassageiros = m;}
    int pegapassageiros(){return npassageiros;}
};
/***** CLASSE DERIVADA CAMINHAO *****/
class caminhao: public  veiculo_rodoviario{
    int carga;
    void setacarga(int c)
    {carga = c;}
    int pegacarga()
    {return carga;}
public:
      caminhao();
      void Mostra();
};
caminhao::caminhao()
{  int x;
    cout<< "\n\n*** REGISTRO DE CAMINHAO ***\n"<< endl;
    cout<<"\nEntre com o numero de rodas do veiculo: "<<endl;
    cin>> x;
    setanrodas(x);
    cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl;
    cin>> x;
    setanpassageiros(x);
    cout<<"\nEntre com a carga maxima, em toneladas, que o veiculo suporta "<<endl;
    cin>> x;
    setacarga(x);
}
void caminhao::Mostra()
{
  cout<< "\nNumero de rodas: "<< pegarodas() << endl;
  cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
  cout<< "\nCarga suportada [ton]: "<< pegacarga() << endl;
  cout << "\n\n";
}
/***** CLASSE DERIVADA AUTOMOVEL *****/
enum tipocarro {carro, van, SUV};
class automovel: public  veiculo_rodoviario{
    enum tipocarro tipo;
    void setatipo(tipocarro t){tipo = t;}
    enum tipocarro pegatipo(){return tipo;}
public:
      automovel();
      void Mostra();
};
automovel::automovel()
{  int x;
    tipocarro t;
    cout<< "\n\n*** REGISTRO DE AUTOMOVEL ***\n"<< endl;
    cout<<"\nEntre com o numero de rodas do veiculo: "<<endl;
    cin>> x;
    setanrodas(x);
    cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl;
    cin>> x;
    setanpassageiros(x);
    cout<<"\nEntre com o tipo de automovel: "<<endl;
    cout<<"\t\t(1) CARRO \n"<< endl;
    cout << "\t\t(2) VAN ou MINI-VAN \n"<< endl;
    cout << "\t\t(3) SUV ou utilitario \n"<< endl;
    cin>> x;
    switch(x)
    {
        case 1:
        case 'c':
        case 'C': t = carro; break;
        case 2:
        case 'v':
        case 'V': t = van;  break;
        case 3:
        case 's':
        case 'S': t = SUV;  break;
        default: t =carro;
    }
    setatipo(t);
}
void automovel::Mostra()
{
  cout<< "\nNumero de rodas: "<< pegarodas() << endl;
  cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
  cout<< "\ntipo de automóvel: ";
    switch(pegatipo())
    {
        case carro: cout << " CARRO \n"<< endl; break;
        case van: cout << " VAN ou MINI-VAN \n"<< endl;  break;
        case SUV: cout << " SUV ou utilitario \n"<< endl;  break;
    }
    cout << "\n\n";
}
int main()
{ caminhao c1, c2;
  automovel a1;
  veiculo_rodoviario v;
  c1.Mostra();
  c2.Mostra();
  a1.Mostra();  //POLIMORFISMO
  system("pause");
  return 0;
  }
  }

Edição das 09h11min de 29 de novembro de 2019

#include <iostream>
#include <stdlib.h>

using namespace std;

class veiculo_rodoviario{ //SUPER CLASSE
private:
   int nrodas;
   int npassageiros;
public:
   void setanrodas(int n){nrodas = n;}
   int pegarodas(){return nrodas;}
   void setanpassageiros(int m){npassageiros = m;}
   int pegapassageiros(){return npassageiros;}
};

class caminhao: public  veiculo_rodoviario{

  int carga;
  public:
      void setacarga(int c){carga = c;}
      int pegacarga(){return carga;}
      void Mostra();
};

enum tipocarro {carro, van, SUV};

class automovel: public  veiculo_rodoviario{

  enum tipocarro tipo;
  public:
      void setatipo(tipocarro t){tipo = t;}
      enum tipocarro pegatipo(){return tipo;}
      void Mostra();
};

void caminhao::Mostra()
{
   cout<< "\nNumero de rodas: "<< pegarodas() << endl;
   cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
   cout<< "\nCarga suportada [ton]: "<< pegacarga() << endl;
   cout << "\n\n";
}

void automovel::Mostra()
{
   cout<< "\nNumero de rodas: "<< pegarodas() << endl;
   cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
   cout<< "\ntipo de automóvel: ";
    switch(pegatipo())
    {
        case carro: cout << " CARRO \n"<< endl; break;
        case van: cout << " VAN ou MINI-VAN \n"<< endl;  break;
        case SUV: cout << " SUV ou utilitario \n"<< endl;  break;
    }
    cout << "\n\n";
}
int main()
{ caminhao c1, c2;
 automovel a1;
 veiculo_rodoviario v;

   c1.setanrodas(6); //metodos da super classe
   c2.setanrodas(10); //metodos da super classe
   c1.setanpassageiros(4); //metodos da super classe
   c2.setanpassageiros(6); //metodos da super classe
   c1.setacarga(2);
   c2.setacarga(5);
   c1.Mostra();
   c2.Mostra(); 

   a1.setanrodas(4);
   a1.setanpassageiros(5);
   a1.setatipo(van);
   a1.Mostra();  //POLIMORFISMO


   system("pause");
   return 0;
}


ADICIONANDO CONSTRUTORES ÀS CLASSES FILHAS:

#include <iostream>
#include <stdlib.h>

using namespace std;

class veiculo_rodoviario{ /***** SUPER CLASSE *****/
  private:
   int nrodas;
   int npassageiros;
  public:
   void setanrodas(int n)
   {nrodas = n;}
   int pegarodas()
   {return nrodas;}
   void setanpassageiros(int m){npassageiros = m;}
   int pegapassageiros(){return npassageiros;}
};

/***** CLASSE DERIVADA CAMINHAO *****/

class caminhao: public veiculo_rodoviario{

    int carga;
    void setacarga(int c)
    {carga = c;}
    int pegacarga()
    {return carga;}
public:
     caminhao();
     void Mostra();
};

caminhao::caminhao()

{  int x;
   cout<< "\n\n*** REGISTRO DE CAMINHAO ***\n"<< endl;
   cout<<"\nEntre com o numero de rodas do veiculo: "<<endl;
   cin>> x;
   setanrodas(x);
   cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl;
   cin>> x;
   setanpassageiros(x);
   cout<<"\nEntre com a carga maxima, em toneladas, que o veiculo suporta "<<endl;
   cin>> x;
   setacarga(x);
}

void caminhao::Mostra()
{
  cout<< "\nNumero de rodas: "<< pegarodas() << endl;
  cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
  cout<< "\nCarga suportada [ton]: "<< pegacarga() << endl;
  cout << "\n\n";
}

/***** CLASSE DERIVADA AUTOMOVEL *****/

enum tipocarro {carro, van, SUV};

class automovel: public  veiculo_rodoviario{
    enum tipocarro tipo;
    void setatipo(tipocarro t){tipo = t;}
    enum tipocarro pegatipo(){return tipo;}
public:
     automovel();
     void Mostra();
};

automovel::automovel()
{  int x;
   tipocarro t;
   cout<< "\n\n*** REGISTRO DE AUTOMOVEL ***\n"<< endl;
   cout<<"\nEntre com o numero de rodas do veiculo: "<<endl;
   cin>> x;
   setanrodas(x);
   cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl;
   cin>> x;
   setanpassageiros(x);
   cout<<"\nEntre com o tipo de automovel: "<<endl;
   cout<<"\t\t(1) CARRO \n"<< endl;
   cout << "\t\t(2) VAN ou MINI-VAN \n"<< endl;
   cout << "\t\t(3) SUV ou utilitario \n"<< endl;
   cin>> x;
   switch(x)
   {
       case 1:
       case 'c':
       case 'C': t = carro; break;

       case 2:
       case 'v':
       case 'V': t = van;  break;

       case 3:
       case 's':
       case 'S': t = SUV;  break;

       default: t =carro;
   }
   setatipo(t);
}

void automovel::Mostra()
{
  cout<< "\nNumero de rodas: "<< pegarodas() << endl;
  cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
  cout<< "\ntipo de automóvel: ";
   switch(pegatipo())
   {
       case carro: cout << " CARRO \n"<< endl; break;
       case van: cout << " VAN ou MINI-VAN \n"<< endl;  break;
       case SUV: cout << " SUV ou utilitario \n"<< endl;  break;
   }
   cout << "\n\n";
}
int main()
{ caminhao c1, c2;
  automovel a1;
  veiculo_rodoviario v;
  c1.Mostra();
  c2.Mostra();
  a1.Mostra();  //POLIMORFISMO
  system("pause");
  return 0;
}