[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