
Patrick B. answered 08/02/21
Math and computer tutor/teacher
using namespace std;
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <math.h>
typedef
class Triangle
{
private:
double side1,side2,side3;
public:
Triangle(double s1, double s2, double s3)
{
side1=s1; side2=s2; side3=s3;
}
Triangle() { side1=side2=side3=0; }
Triangle (const Triangle& triangle)
{
side1 = triangle.side1;
side2 = triangle.side2;
side3 = triangle.side3;
}
double GetSide1() { return(side1); }
double GetSide2() { return(side2); }
double GetSide3() { return(side3); }
void SetSide1(double s1) { side1=s1; }
void SetSide2(double s2) { side2=s2; }
void SetSide3(double s3) { side3=s3; }
double GetPerimeter() { return(side1+side2+side3); }
//Heron's formula for area
double GetArea()
{
double S = this->GetPerimeter()/2;
return (
sqrt (
S*(S-side1)*(S-side2)*(S-side3)
)
);
}
} * TTriangle;
#define TRIANGLE_SIZE (sizeof(Triangle))
void Triangle_Dump (Triangle triangle, char * strTitleMsg=NULL)
{
if (strTitleMsg!=NULL)
{
cout << "***********************************************************" << endl;
cout << strTitleMsg << endl;
}
cout << "***********************************************************" << endl;
cout << "Side #1 = " << triangle.GetSide1() << endl;
cout << "Side #2 = " << triangle.GetSide2() << endl;
cout << "Side #3 = " << triangle.GetSide3() << endl;
cout << "Perimeter = " << triangle.GetPerimeter() << endl;
cout << "Area = " << triangle.GetArea() << endl;
}
typedef
class Fraction
{
private:
int numerator,denominator;
public:
Fraction(int n,int d)
{
numerator=n;
denominator = (d==0) ? 1 :d;
}
Fraction() { numerator=0; denominator=1; }
Fraction(const Fraction& fraction) { numerator=fraction.numerator; denominator=fraction.denominator; }
int GetNumerator() { return(numerator); }
int GetDenominator() { return(denominator); }
void SetNumerator(int n) { numerator=n; }
void SetDenomianator(int d) { denominator = (d==0) ? 1:d; }
double Decimal(){ return( numerator*1.0f/denominator); }
double Percent() { return( numerator*100.0f/denominator); }
//perhaps overload operators: +,-,*, and /
} * TFraction;
#define FRACTION_SIZE (sizeof(Fraction))
void Fraction_Dump(Fraction fraction, char * strTitleMsg=NULL, int _precision=4)
{
if (strTitleMsg!=NULL)
{
cout << "***********************************************************" << endl;
cout << strTitleMsg << endl;
}
cout << "***********************************************************" << endl;
cout << "Numerator = " << fraction.GetNumerator() << endl;
cout << "Denominator = " << fraction.GetDenominator() << endl;
cout << "Decimal expansion=" << fixed << setprecision(_precision) << fraction.Decimal() <<endl;
cout << "Percent = " << fixed << setprecision(_precision) << fraction.Percent() <<endl;
}
int main(int argc, char** argv)
{
Triangle t;
Triangle triangle(5,12,13);
Triangle_Dump(t,(char*)"EMPTY");
Triangle_Dump(triangle);
Fraction f;
Fraction fraction(4,7);
Fraction_Dump(f,(char*)"ZERO");
Fraction_Dump(fraction,(char*)" ",7);
return 0;
}