[C con Clase] Ejercicio Rectangulo
Luis Gutierrez Gomez
gutierrezgl en hotmail.com
Mar Abr 17 21:57:50 CEST 2012
Cordiales Saludos; envío el siguiente ejercicio para su correccion, el enunciado dice:
Genere una Clase Rectangulo con los atributos Longitud y ancho, cada uno con un valor
predeterminado igual a 1. Proporcione funciones miembro que calculen el perimetro
y el area del rectangulo. Ademas proporcione las funciones establecer y obtener
para los atributos longitud y ancho. Las funciones establecer deben verificar que
longitud y ancho contengan numeros de punto flotante mayores que 0.0 y menores que
20.0 .
SOLUCION
--------
#include <iostream>
using std::cout;
using std::endl;
class Rectangulo{
public:
Rectangulo( double lon = 1.0, double anc = 1.0 );
double Perimetro ()const;
double Area()const;
void EstablecerLongitud( double longi );
void EstablecerAncho( double anch );
double ObtenerLongitud ()const;
double ObtenerAncho()const;
private:
double longitud;
double ancho;
};
Rectangulo::Rectangulo ( double lon , double anc )
{
EstablecerLongitud ( lon );
EstablecerAncho ( anc );
}
double Rectangulo::Perimetro ()const
{
if ( ( longitud == -1 ) || ( ancho == -1 ) ){
cout << " Datos de Rectangulo fuera de Parametros " << endl;
return -1;
}
return ( ( longitud * 2 ) + ( ancho * 2 ) );
}
double Rectangulo::Area() const
{
if ( ( longitud == -1 ) || ( ancho == -1 ) ){
cout << " Datos de Rectangulo fuera de Parametros " << endl;
return -1;
}
return ( longitud * ancho );
}
void Rectangulo::EstablecerLongitud( double longi )
{
if ( ( 20.0 > longi ) && ( longi > 0.0 ) ) longitud = longi;
else {
cout << "El dato de longitud no es valido " << endl;
longitud = -1;
}
}
void Rectangulo::EstablecerAncho( double anch )
{
if ( ( 20.0 > anch ) && ( anch > 0.0 ) ) ancho = anch;
else {
cout << "El dato de ancho no es valido " << endl;
ancho = -1;
}
}
double Rectangulo::ObtenerLongitud() const
{
return ( longitud );
}
double Rectangulo::ObtenerAncho() const
{
return ( ancho );
}
int main()
{
Rectangulo R1 ( 19.9, 9.8 ), R2 ( 9.87, -0.6 ), R3;
cout << R1.Perimetro() << endl;
cout << R1.Area() << endl;
cout << R2.Perimetro() <<"\n" <<R2.Area() << endl;
cout << R3.Perimetro() <<endl;
R3.EstablecerLongitud( 23.8);
R3.EstablecerAncho( 6.9 );
cout << R3.Perimetro() << endl;
}
///////////////////////////////////////////////////////////////////
Gracias por su apoyo
Luis
Más información sobre la lista de distribución Cconclase