Está en la página 1de 7

UNIVERSIDAD MILITAR NUEVA GRANADA

DEPARTAMENTO DE TECNOLOGÍAS DEL CONOCIMIENTO


PROGRAMACIÓN II
HERENCIA - POLIMORFISMO

Elaborar un programa en C++, que permita obtener el área de una figura geométrica,
teniendo en cuenta lo siguiente:

1. Existen dos clases de figuras geométricas: triángulo y circunferencia.


2. Las figuras geométricas en general se caracterizan por su color, mientras que el
triángulo y la circunferencia se caracterizan por los datos que requieren para halla su
área
3. Para la resolución del ejercicio aplicar el concepto de polimorfismo.
4. La función a la cual se le aplicará el concepto de polimorfismo (virtual) se llamará
calcularArea().
5. Al ejecutar el programa se debe solicitar a qué tipo figura dese obtener el área y luego
mostrarla.

Programación II Polimorfismo Página 1


Figura_Geometrica.h
#ifndef _FIGURA_GEOMETRICA_H
#define _FIGURA_GEOMETRICA_H

#include <iostream>
#include <string>

using namespace std;

class Figura_Geometrica
{
protected:
string color;
public:
Figura_Geometrica();
Figura_Geometrica(string pcolor);
~Figura_Geometrica();
void setcolor(string pcolor);
string getcolor();
virtual double calcularArea();
};
#endif

-------------------------------------------//---------------------------------------------

Figura_Geometrica.cpp
#include "Figura_Geometrica.h"

Figura_Geometrica::Figura_Geometrica()
{
color = "";
}
Figura_Geometrica::Figura_Geometrica(string pcolor)
{
color = pcolor;
}
Figura_Geometrica::~Figura_Geometrica()
{
}
void Figura_Geometrica::setcolor(string pcolor)
{
color = pcolor;
}
string Figura_Geometrica::getcolor()
{
return color;
}
double Figura_Geometrica::calcularArea()
{
cout << " Color : " << getcolor();
cout << endl << endl;
return 0;
}

Programación II Polimorfismo Página 2


Circunferencia.h
#ifndef _CIRCUNFERENCIA_H
#define _CIRCUNFERENCIA_H

#include "Figura_Geometrica.h"
#include <cmath>
#define M_PI 3.14159265358979323846

class Circunferencia : public Figura_Geometrica


{
private:
double radio;
public:
Circunferencia();
Circunferencia(string pcolor, double pradio);
~Circunferencia();
void setradio(double pradio);
double getradio();
double calcularArea();
};
#endif

-------------------------------------------//---------------------------------------------

Circunferencia.cpp

#include "Circunferencia.h"

Circunferencia::Circunferencia() : Figura_Geometrica()
{
radio = 0;
}
Circunferencia::Circunferencia(string pcolor, double pradio) : Figura_Geometrica(pcolor)
{
radio = pradio;
}
Circunferencia::~Circunferencia()
{
}
void Circunferencia::setradio(double pradio)
{
radio = pradio;
}
double Circunferencia::getradio()
{
return radio;
}
double Circunferencia::calcularArea()
{
double area = 0;
Figura_Geometrica::calcularArea();
area = M_PI * (getradio()*getradio());
return area;
}

Programación II Polimorfismo Página 3


Triangulo.h

#ifndef _TRIANGULO_H
#define _TRIANGULO_H

#include "Figura_Geometrica.h"

class Triangulo : public Figura_Geometrica


{
private:
double base;
double altura;
public:
Triangulo();
Triangulo(string pcolor, double pbase, double paltura);
~Triangulo();
void setbase(double pbase);
void setaltura(double paltura);
double getbase();
double getaltura();
double calcularArea();
};
#endif

-------------------------------------------//---------------------------------------------

Triangulo.cpp

#include "Triangulo.h"

Triangulo::Triangulo() :Figura_Geometrica()
{
base = 0;
altura = 0;
}
Triangulo::Triangulo(string pcolor, double pbase, double paltura) :
Figura_Geometrica(pcolor)
{
base = pbase;
altura = paltura;
}
Triangulo::~Triangulo()
{

}
void Triangulo::setbase(double pbase)
{
base = pbase;
}
void Triangulo::setaltura(double paltura)
{
altura = paltura;
}
double Triangulo::getbase()

Programación II Polimorfismo Página 4


{
return base;
}
double Triangulo::getaltura()
{
return altura;
}
double Triangulo::calcularArea()
{
double area = 0;
Figura_Geometrica::calcularArea();
area = ((getbase()*getaltura()) / 2);
return area;
}

-------------------------------------------//---------------------------------------------

Main.cpp

#include "Circunferencia.h"
#include "Triangulo.h"
#include "Figura_Geometrica.h"

int main()
{
Triangulo *ObjTrian[10];
Circunferencia *ObjCirc[10];
double base;
double altura;
double radio;
string color;
string tipofigura;
int opc;
int p = 0;
string salir;
do{
system("cls");
cout << "\t=== Menu Figuras ===";
cout << endl << endl;
cout << " 1. Triangulo...";
cout << endl;
cout << " 2. Circunferencia...";
cout << endl;
cout << " 3. Salir...";
cout << endl << endl;
cout << " Ingresar Un Opcion: ";
cin >> opc;
if (opc<1 || opc>10)
{
cout << "Opcion incorrecta\n";
}
else
{
switch (opc)

Programación II Polimorfismo Página 5


{
case 1:
system("cls");
cout << "\t=== Triangulo ===";
cout << endl << endl;
if (p < 10)
{
cout << " Ingrese Color de la Figura: ";
cin >> color;
cout << " Ingrese Base del Triangulo: ";
cin >> base;
cout << " Ingrese Altura del Triangulo: ";
cin >> altura;
ObjTrian[p] = new Triangulo(color, base, altura);
system("cls");
cout << "\t=== Triangulo ===";
cout << endl << endl;
cout << " Base : " << ObjTrian[p]->getbase();
cout << endl;
cout << " Altura: " << ObjTrian[p]->getaltura();
cout << endl;
cout << " ==> Su area es: " << ObjTrian[p]->calcularArea();
cout << endl;
p++;
}
else
{
cout << "\nNo se Pueden Ingresar mas Datos\n";
}
break;
case 2:
system("cls");
cout << "\t=== Circunferencia ===";
cout << endl << endl;
if (p < 10)
{
cout << " Ingrese Color de la Figura: ";
cin >> color;
cout << " Ingrese Radio de la Circunferencia: ";
cin >> radio;
ObjCirc[p] = new Circunferencia(color, radio);
system("cls");
cout << "\t=== Circunferencia ===";
cout << endl << endl;
cout << " Radio : " << ObjCirc[p]->getradio();
cout << endl;
cout << " ==> Su area es: " << ObjCirc[p]->calcularArea();
cout << endl;
p++;
}
else
{
cout << "\nNo se Pueden Ingresar mas Datos\n";
}
break;
case 3:
return 0;

Programación II Polimorfismo Página 6


break;
default:
cout << endl;
cout << " Opcion no Valida....";
break;
}
}
cout << endl << endl;
cout << " Realiza Otro Operacion (Si-No): ";
cin >> salir;
} while (salir == "si" || salir =="Si");
cout << endl << endl;
system("pause");

Programación II Polimorfismo Página 7

También podría gustarte