Answer to Question #329952 in C++ for mak

Question #329952

Create a class named ‘Rectangle’, Triangle and Square.

Rectangle class:

                       Data Members: length, width and area

                       Functions:input() ,area_Calculator()

Square class:

                       Data Members: length,area

                       Functions :input() , area_Calculator()

Triangle class:

                       Data Members: base,hieght,area

                       Functions :Input() , area_Calculator()

Compare their areas in a friend function and tell which shape has greatest area.

Area of rectangle: length*width;

Area of triangle: ½(base*height);

Area of square: (length)2



1
Expert's answer
2022-04-18T08:40:45-0400
#include <iostream>
using namespace std;


class Triangle;
class Square;


////////////////////////// Rectangle
class Rectangle {
public:
    void input();
    double area_Calculator();


private:
    double length;
    double width;
    double area;
    friend bool compare(Rectangle, Triangle);
    friend bool compare(Rectangle, Square);
    friend bool compare(Square, Triangle);
    friend bool compare(Square, Rectangle);
    friend bool compare(Triangle, Rectangle);
    friend bool compare(Triangle, Square);
};


void Rectangle::input() {
    cout << "Enter a length: ";
    cin >> length;
    cout << "Enter a width: ";
    cin >> width;
}


double Rectangle::area_Calculator() {
    area = length * width;
    return area;
}


///////////////////////////////////// Square
class Square {
public:
    void input();
    double area_Calculator();


private:
    double length;
    double area;
    friend bool compare(Rectangle, Triangle);
    friend bool compare(Rectangle, Square);
    friend bool compare(Square, Triangle);
    friend bool compare(Square, Rectangle);
    friend bool compare(Triangle, Rectangle);
    friend bool compare(Triangle, Square);
};


void Square::input() {
    cout << "Enter a length: ";
    cin >> length;    
}


double Square::area_Calculator() {
    area = length * length;
    return area;
}



////////////////////////////// Triangle
class Triangle {
public:
    void input();
    double area_Calculator();


private:
    double base;
    double height;
    double area;
    friend bool compare(Rectangle, Triangle);
    friend bool compare(Rectangle, Square);
    friend bool compare(Square, Triangle);
    friend bool compare(Square, Rectangle);
    friend bool compare(Triangle, Rectangle);
    friend bool compare(Triangle, Square);
};


void Triangle::input() {
    cout << "Enter a base: ";
    cin >> base;
    cout << "Enter a height: ";
    cin >> height;
}


double Triangle::area_Calculator() {
    area = base * height / 2;
    return area;
}


////////////////////////////// compare
bool compare(Rectangle r, Triangle t) {
    return r.area > t.area;
}


bool compare(Rectangle r, Square s) {
    return r.area > s.area;
}


bool compare(Square s, Triangle t) {
    return s.area > t.area;
}


bool compare(Square s, Rectangle r) {
    return s.area > r.area;
}


bool compare(Triangle t, Rectangle r) {
    return t.area > r.area;
}


bool compare(Triangle t, Square s) {
    return t.area > s.area;
}


///////////////////////////// main
int main() {
    Rectangle r;
    Triangle t;
    Square s;


    cout << "Rectangle:" << endl;
    r.input();
    r.area_Calculator();


    cout << endl << "Triangle:" << endl;
    t.input();
    t.area_Calculator();


    cout << endl << "Square:" << endl;
    s.input();
    s.area_Calculator();
    cout << endl;


    if (compare(r, s)) {
        cout << "Rectangle is greater than Square" << endl;
    }
    else {
        cout << "Rectangle is not greater than Square" << endl;
    }


    if (compare(s, t)) {
        cout << "Square is greater than Triangle" << endl;
    }
    else {
        cout << "Square is not greater than Triangle" << endl;
    }
    if (compare(t, r)) {
        cout << "Triangle is greater than Rectangle" << endl;
    }
    else {
        cout << "Triangle is not greater than Rectangle" << endl;
    }


    return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS