// Rhombus.h
#ifndef _RHOMBUS_H
#define _RHOMBUS_H
class Rhombus {
private:
double DiagonalA, DiagonalB;
public:
Rhombus(double DA = 10, double DB = 10);
double GetDiagonalA();
double GetDiagonalB();
void SetDiagonalA(double DA);
void SetDiagonalB(double DB);
double GetSide();
double GetPerimeter();
double GetArea();
bool IsSquare();
};
#endif // _RHOMBUS_H
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
// Rhombus.cpp
#include "Rhombus.h"
#include <cmath>
using namespace std;
Rhombus::Rhombus(double DA, double DB) {
SetDiagonalA(DA);
SetDiagonalB(DB);
}
double Rhombus::GetDiagonalA() {
return DiagonalA;
}
double Rhombus::GetDiagonalB() {
return DiagonalB;
}
void Rhombus::SetDiagonalA(double DA) {
DiagonalA = DA > 0 ? DA : 1;
}
void Rhombus::SetDiagonalB(double DB) {
DiagonalB = DB > 0 ? DB : 1;
}
double Rhombus::GetSide() {
return sqrt((DiagonalA / 2) * (DiagonalA / 2) + (DiagonalB / 2) * (DiagonalB / 2));
}
double Rhombus::GetPerimeter() {
return 4 * GetSide();
}
double Rhombus::GetArea() {
return (DiagonalA * DiagonalB) / 2;
}
bool Rhombus::IsSquare() {
return (DiagonalA == DiagonalB);
}