All pastes #1587222 Raw Edit

RightTriangle.h

public cpp v1 · immutable
#1587222 ·published 2009-10-01 04:30 UTC
rendered paste body
#include <math.h>class RightTriangle{	double height;	double base;	double hypotenuse;public:	RightTriangle(void);	RightTriangle(double setBase);	RightTriangle(double setBase,double setHeight);	RightTriangle(double setBase,double setHeight,double setHypotenuse);	void setHeight(double setHeight);	double getHeight(void);	void setBase(double setBase);	double getBase(void);	void setHypotenuse(double setHypotenuse);	double getHypotenuse(void);	bool calculateSides(void);	double getArea(void);	double getPerimeter(void);};RightTriangle::RightTriangle(){	height = base = hypotenuse = 0;}RightTriangle::RightTriangle(double setBase){	RightTriangle();	RightTriangle::setBase(setBase);}RightTriangle::RightTriangle(double setBase,double setHeight){	RightTriangle();	RightTriangle::setBase(setBase);	RightTriangle::setHeight(setHeight);}RightTriangle::RightTriangle(double setBase,double setHeight,double setHypotenuse){	RightTriangle();	RightTriangle::setBase(setBase);	RightTriangle::setHeight(setHeight);	RightTriangle::setHypotenuse(setHypotenuse);}void RightTriangle::setHeight(double setHeight){	height = setHeight;}double RightTriangle::getHeight(){	if(!height) { calculateSides(); }	return height;}void RightTriangle::setBase(double setBase){	base = setBase;}double RightTriangle::getBase(){	if(!base) { calculateSides(); }	return base;}void RightTriangle::setHypotenuse(double setHypotenuse){	hypotenuse = setHypotenuse;}double RightTriangle::getHypotenuse(){	if(!hypotenuse) { calculateSides(); }	return hypotenuse;}bool RightTriangle::calculateSides(){	if(base && height && hypotenuse && (hypotenuse > height) && (hypotenuse > base)) { return true; }	if(base && height && !hypotenuse)	{		setHypotenuse		(			sqrt((base * base) + (height * height))		);		if (hypotenuse > base && hypotenuse > height) { return true; }		else { return false; }	}	if(base && hypotenuse && !height)	{		setHeight		(			sqrt((hypotenuse * hypotenuse) - (base * base))		);		if (hypotenuse > base && hypotenuse > height) { return true; }		else { return false; }	}	if (height && hypotenuse && !base)	{		setBase		(			sqrt((hypotenuse * hypotenuse) - (height * height))		);		if(hypotenuse > base && hypotenuse > height) { return true; }		else { return false; }	}	return false;}double RightTriangle::getArea(){	if(!base || !height) { calculateSides(); }	return 0.5 * base * height;}double RightTriangle::getPerimeter(){	if(!base || !height || !hypotenuse) { calculateSides(); }	return base + height + hypotenuse;}