#include <iostream>
#include <cmath>
#define PI 3.14159
class Shape{
public:
virtual double getArea() = 0;
virtual double getPerimeter() = 0;
};
class Rectangle : public Shape{
private:
double width, height;
public:
Rectangle(){
std::cout << " Enter width: ";
std::cin >> width;
std::cout << " Enter height: ";
std::cin >> height;
}
double getArea(){
return width * height;
}
double getPerimeter(){
return (width+height)*2;
}
};
class Circle : public Shape{
private:
double radius;
public:
Circle(){
std::cout << " Enter radius: ";
std::cin >> radius;
}
double getArea(){
return PI*pow(radius, 2);
}
double getPerimeter(){
return 2*PI*radius;
}
};
class Triangle : public Shape{
private:
double base, L_Side, R_Side, height;
public:
Triangle(){
std::cout << " Enter base length: ";
std::cin >> base;
std::cout << " Enter left side length: ";
std::cin >> L_Side;
std::cout << " Enter right side length: ";
std::cin >> R_Side;
std::cout << " Enter height: ";
std::cin >> height;
}
double getArea(){
return 0.5 * base * height;
}
double getPerimeter(){
return base + L_Side + R_Side;
}
};
int main(){
std::cout << "Rectangle: \n";
Rectangle R1;
std::cout << " Area: " << R1.getArea() << "\n";
std::cout << " Perimeter: " << R1.getPerimeter() << "\n\n";
std::cout << "Circle: \n";
Circle C;
std::cout << "Circle: \n";
std::cout << " Area: " << C.getArea() << "\n";
std::cout << " Perimeter: " << C.getPerimeter() << "\n\n";
std::cout << "Triangle: \n";
Triangle T;
std::cout << " Area: " << T.getArea() << "\n";
std::cout << " Perimeter: " << T.getPerimeter() << "\n\n";
return 0;
}