question archive Draw an inheritance hierarchy for classes Quadrilateral, Trapezoid, Parallelogram, Rectangle and Square

Draw an inheritance hierarchy for classes Quadrilateral, Trapezoid, Parallelogram, Rectangle and Square

Subject:Computer SciencePrice:3.86 Bought15

Draw an inheritance hierarchy for classes Quadrilateral, Trapezoid, Parallelogram, Rectangle and Square. Use Quadrilateral as the base class of the hierarchy. Make the hierarchy as deep as possible. 

 

pur-new-sol

Purchase A New Answer

Custom new solution created by our subject matter experts

GET A QUOTE

Answer Preview

Explanation:

// Name : Quadrilateral.cpp

// Author : Rohit

// Version :

// Copyright : Your copyright notice

// Description : Hello World in C++, Ansi-style

//============================================================================

 

 

#include <iostream>

using namespace std;

class Quadrilateral // @suppress("Class has a virtual method and non-virtual destructor")

{

public:

int side_a,side_b,side_c,side_d;

double perimeter;

Quadrilateral(int a,int b,int c,int d)

{

side_a=a;

side_b=b;

side_c=c;

side_d=d;

perimeter=0.0;

}

//virtual double cal_area();

};

class Trapezoid:public Quadrilateral // @suppress("Class has a virtual method and non-virtual destructor")

{

public:

Trapezoid(int a,int b,int c,int d):Quadrilateral(a,b,c,d)

{

}

double cal_perimeter()

{

cout<<"The perimetre of Trapizoid:";

return side_a+side_b+side_c+side_d;

}

double cal_area()

{

double h;

cout <<"\nEnter the hight of Trapizoid:";

cin>>h;

cout<<"\nThe area of Trapizoid:";

return ((side_a+side_c)*h);//assume a and c are parallel sides

}

};

class Parallelogram:public Trapezoid // @suppress("Class has a virtual method and non-virtual destructor")

{

public:

Parallelogram(int a,int b,int c,int d):Trapezoid(a,b,c,d)

{

}

double cal_perimeter()

{

cout<<"\nThe perimeter of Parallelogram:";

return side_a+side_b+side_c+side_d;

}

double cal_area()

{

double h;

cout <<"\nEnter the hight of Parallelogram:";

cin>>h;

cout<<"\nThe area of Parallelogram:";

return side_c*h;//assume side c is base

}

};

class Rectangle:public Parallelogram // @suppress("Class has a virtual method and non-virtual destructor")

{

public:

Rectangle(int a,int b,int c,int d):Parallelogram(a,b,c,d)

{

}

double cal_perimeter()

{

cout<<"\nThe perimeter of Rectangle:";

return side_a+side_b+side_c+side_d;

}

double cal_area()

{

cout<<"\nThe area of Rectangle:";

return side_a*side_b;

}

};

class Square:public Rectangle // @suppress("Class has a virtual method and non-virtual destructor")

{

public:

Square(int a,int b,int c,int d):Rectangle(a,b,c,d)

{

}

double cal_perimeter()

{

cout<<"\nThe perimeter of Square:";

return 4*side_a;

}

double cal_area()

{

cout<<"\nThe area of Square :";

return side_a*side_a;

}

};

int main() {

Square S1(2,2,2,2);

Parallelogram p1=S1;

Rectangle R1=S1; //every Square is Rectagle

Trapezoid t1=S1;

Square s=S1;

cout<<t1.cal_perimeter();

cout<<t1.cal_area();

cout<<R1.cal_perimeter();

cout<<R1.cal_area();

cout<<p1.cal_area();

cout<<p1.cal_perimeter();

cout<<s.cal_area();

cout<<s.cal_perimeter();

return 0;

}

.......................................................................

Output