Solução Exercício Polimorfismo: mudanças entre as edições
Ir para navegação
Ir para pesquisar
imported>Fargoud (Criou página com ' #include <iostream> using namespace std; →***********: class FormaGeometrica { public: float area; float perimetro; virtual void Entraparam()=0; //m...') |
imported>Fargoud Sem resumo de edição |
||
| Linha 67: | Linha 67: | ||
Retangulo r1; | Retangulo r1; | ||
Quadrado q1; | Quadrado q1; | ||
cout<< "*** PROGRAMA DE GEOMETRIA ****"<< endl; | cout<< "*** PROGRAMA DE GEOMETRIA ****"<< endl; | ||
cout<<"\n\nDigite qual sua forma geometrica desejada: "<< endl; | cout<<"\n\nDigite qual sua forma geometrica desejada: "<< endl; | ||
Edição das 15h26min de 16 de maio de 2018
#include <iostream>
using namespace std;
/*************/
class FormaGeometrica {
public:
float area;
float perimetro;
virtual void Entraparam()=0; //metodos virtuais puros
virtual float CalculaArea() =0;
virtual float CalculaPerimetro()=0;
};
/*************/
class Circulo: public FormaGeometrica {
private:
float raio;
public:
void Entraparam()
{ cout<< "\nEntre com o raio do circulo: "<< endl;
cin>>raio; }
float CalculaArea()
{ area = 3.14159 *raio*raio;
return area;}
float CalculaPerimetro()
{ perimetro = 2*3.14159 *raio;
return perimetro;}
~Circulo() { cout << "\n\nDestrói circulo" << endl; }
};
/*************/
class Retangulo: public FormaGeometrica {
private:
float altura;
float largura;
public:
void Entraparam()
{ cout<< "\nEntre com o valor da altura do retangulo: "<< endl;
cin>>altura;
cout<< "\nEntre com o valor da largura do retangulo: "<< endl;
cin>>largura; }
float CalculaArea()
{ area = altura*largura;
return area;}
float CalculaPerimetro()
{ perimetro = 2*altura + 2*largura;
return perimetro;}
~Retangulo() { cout << "\n\nDestrói retangulo" << endl; }
};
/*************/
class Quadrado: public FormaGeometrica{
private:
float lado;
public:
void Entraparam()
{ cout<< "\nEntre com o comprimento do lado do quadrado: "<< endl;
cin>>lado; }
float CalculaArea()
{ area = lado*lado;
return area;}
float CalculaPerimetro()
{ perimetro = 4*lado;
return perimetro;}
~Quadrado() { cout << "\n\nDestrói quadrado" << endl; }
};
/*************/
int main(void) {
char op;
Circulo c1;
Retangulo r1;
Quadrado q1;
cout<< "*** PROGRAMA DE GEOMETRIA ****"<< endl;
cout<<"\n\nDigite qual sua forma geometrica desejada: "<< endl;
cout<<"\n(c) Circulo; \n(r) Retangulo; \n(q) Quadrado \n>> "<< endl;
cin>> op;
switch(op)
{ case '1':
case 'c':
case 'C': c1.Entraparam();
cout<< "\nArea de saida: "<< c1.CalculaArea() << endl;
cout<< "\nPerimetro de saida: "<< c1.CalculaPerimetro() <<endl;
break;
case '2':
case 'r':
case 'R': r1.Entraparam();
cout<< "\nArea de saida: "<< r1.CalculaArea() <<endl;
cout<< "\nPerimetro de saida: "<< r1.CalculaPerimetro() <<endl;
break;
case '3':
case 'q':
case 'Q': q1.Entraparam();
cout<< "\nArea de saida: "<< q1.CalculaArea() << endl;
cout<< "\nPerimetro de saida: "<< q1.CalculaPerimetro() << endl;
break;
default: cout<< "\nTipo invalido/inexistente!!"<<endl;
}
return 0;
}