Crear una clase Rectangulo debe almacenarse las coordenadas cartesianas de las cuatro esquinas del rectangulo. El constructor llama una función establecer que acepta cuatro coordenadas y verifica que cada una de éstas se encuentren en el primer cuadrante y que ninguna coordenada x o y sea mayor que 20. La función establecer verifica también que las coordenadas proporcionadas forman un rectangulo. Proporcione funciones miembro que calcule la largo, el ancho, el perímetro y el área.
codificación CodeBlocks
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
class Coordenada
{
private:
int x;
int y;
public:
Coordenada(int =0, int y=0);
void estXY(int ,int );
void estX(int );
void estY(int );
int obtenerX();
int obtenerY();
int verificaX();
int verificaY();
void imprimeCoordenada();
};
Coordenada::Coordenada(int pX, int pY)
{
x=pX;
y=pY;
}
void Coordenada::estXY(int pX, int pY)
{
x=pX;
y=pY;
}
void Coordenada::estX(int pX)
{
x=pX;
}
void Coordenada::estY(int pY)
{
y=pY;
}
int Coordenada::obtenerX()
{
return x;
}
int Coordenada::obtenerY()
{
return y;
}
int Coordenada::verificaX()
{
if (x>=0 && x<=20)
return 1;
else
return 0;
}
int Coordenada::verificaY()
{
if(y>=0 && y<=20)
return 1;
else
return 0;
}
void Coordenada::imprimeCoordenada()
{
cout<<"La coordenada es "<<"( "<<x<<","<<y<<" )"<<endl;
}
class Rectangulo
{
private:
Coordenada c1[4];
int x;
int ancho;
int largo;
public:
Rectangulo(Coordenada c1[4]);
int establecer ();
void estAncho(int);
void estLargo(int);
Coordenada obtenerCoordenas();
int obtenerValor();
int obtenerAncho();
int obtenerLargo();
int area();
int perimetro();
};
Rectangulo::Rectangulo(Coordenada c1[4])
{
x=establecer();
}
int Rectangulo::establecer( )
{
int puntoX, puntoY,i;
cout<<"Recuerde las coordenadas deben estar en el primer cuadrante\nlos valores debes >=0 y <=20\n\n";
for(i=0;i<=3;i++)
{
if(i==0)
{
cout<<"(x,y)________\n";
cout<<"| |\n";
cout<<"|___________ |\n";
}
else
{
if(i==1)
{
cout<<" ________(x,y)\n";
cout<<"| |\n";
cout<<"|___________ |\n";
}
else
{
if(i==2)
{
cout<<" __________\n";
cout<<"| |\n";
cout<<"|(x,y)______|\n";
}
else
{
if(i==3)
{
cout<<" ____________\n";
cout<<"| |\n";
cout<<"|_______(x,y)|\n";
}
}
}
}
do
{
cout<<"\nIntroduce la coordenada "<<i+1<<" del rectangulo:\n";
cout<<" X : ? ";
cin>>puntoX;
c1[i].estX(puntoX);
}
while (c1[i].verificaX()==0);
do
{
cout<<" Y : ? ";
cin>>puntoY;
c1[i].estY(puntoY);
}
while(c1[i].verificaY()==0);
}
cout<"\n\nLas coordenadas son\n";
for(i=0;i<=3;i++)
c1[i].imprimeCoordenada();
if((c1[0].obtenerX() == c1[2].obtenerX())&&(c1[1].obtenerX()==c1[3].obtenerX())&&(c1[0].obtenerY()==c1[1].obtenerY())&& c1[2].obtenerY()==c1[3].obtenerY())
return 1;
else
return 0;
}
/*Coordenada c1[4] Rectangulo::obtenerCoordenas()
{
return c1;
}*/
void Rectangulo::estLargo(int lar)
{
largo=lar;
}
void Rectangulo::estAncho(int an)
{
ancho=an;
}
int Rectangulo::obtenerValor()
{
return x;
}
int Rectangulo::obtenerAncho()
{
int y1,y2;
y1=c1[0].obtenerY();
y2=c1[2].obtenerY();
ancho=abs(y2-y1);
return ancho;
}
int Rectangulo::obtenerLargo()
{
int x1,x2;
x1=c1[0].obtenerX();
x2=c1[1].obtenerX();
largo=abs(x2-x1);
return largo;
}
int Rectangulo::area()
{
return largo*ancho;
}
int Rectangulo::perimetro()
{
return 2*(largo+ancho);
}
int main()
{ int valor;
Coordenada c1[4];
Rectangulo R1(c1);
valor=R1.obtenerValor();
if(valor==1)
{
cout<<"\nLas Coordenadas forman un rectangulo\n\n";
cout<<setw(15)<<"Ancho: "<<R1.obtenerAncho()<<endl;
cout<<setw(15)<<"Largo: "<<R1.obtenerLargo()<<endl;
cout<<setw(15)<<"Area: "<<R1.area()<<endl;
cout<<setw(15)<<"Perimetro: "<<R1.perimetro()<<endl;
}
else
cout<<"\n\nLas coordenadas no forman un rectangulo\n";
return 0;
}
No hay comentarios:
Publicar un comentario