Untitled
unknown
plain_text
a year ago
1.7 kB
5
Indexable
#include <iostream>
#include <cmath>
using namespace std;
// Abstract Base Class
class CAL_AREA {
protected:
float x; // Generic dimension 1 (e.g., radius, etc.)
float y; // Generic dimension 2 (e.g., height, etc.)
public:
void getdata(float a, float b = 0) {
x = a;
y = b;
}
virtual void display_volume() = 0; // Pure virtual function
};
// Derived Class: Cone
class cone : public CAL_AREA {
public:
void display_volume() override {
float volume = (1.0 / 3.0) * M_PI * x * x * y; // Volume of a cone = (1/3)*pi*r^2*h
cout << "Volume of Cone: " << volume << endl;
}
};
// Derived Class: Hemisphere
class hemisphere : public CAL_AREA {
public:
void display_volume() override {
float volume = (2.0 / 3.0) * M_PI * x * x * x; // Volume of a hemisphere = (2/3)*pi*r^3
cout << "Volume of Hemisphere: " << volume << endl;
}
};
// Derived Class: Cylinder
class cylinder : public CAL_AREA {
public:
void display_volume() override {
float volume = M_PI * x * x * y; // Volume of a cylinder = pi*r^2*h
cout << "Volume of Cylinder: " << volume << endl;
}
};
int main() {
float radius, height;
// Cone
cone c;
cout << "Enter radius and height of the cone: ";
cin >> radius >> height;
c.getdata(radius, height);
c.display_volume();
// Hemisphere
hemisphere h;
cout << "\nEnter radius of the hemisphere: ";
cin >> radius;
h.getdata(radius);
h.display_volume();
// Cylinder
cylinder cyl;
cout << "\nEnter radius and height of the cylinder: ";
cin >> radius >> height;
cyl.getdata(radius, height);
cyl.display_volume();
return 0;
}
Editor is loading...
Leave a Comment