#include<iostream>
using namespace std;
class Circle
{
private:
const double PI = 3.14159; // added const since PI is a constant
double radius;
public:
Circle() // do you really want to construct a circle of radius 0? Your choice. You could remove this constructor if you want
{
radius = 0.0;
}
Circle(double r)
{
radius = r;
}
void setRadius(double r)
{
radius = r;
}
double getRadius()
{
return radius;
}
double getArea()
{
return PI * radius * radius;
}
double getDiameter()
{
return radius * 2;
}
double getCircumference()
{
return 2 * PI * radius;
}
};
int main()
{
double radius;
cout << "Enter the circle's radius:" << endl;
cin >> radius;
Circle c(radius);
cout << "Radius:" << c.getRadius() << endl;
cout << "Area:" << c.getArea() << endl;
cout << "Diameter:" << c.getDiameter() << endl;
cout << "Circumference:" << c.getCircumference() << endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CgogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiBjbGFzcyBDaXJjbGUKIHsKcHJpdmF0ZToKICAgIGNvbnN0IGRvdWJsZSBQSSA9IDMuMTQxNTk7ICAvLyBhZGRlZCBjb25zdCBzaW5jZSBQSSBpcyBhIGNvbnN0YW50CiAgICBkb3VibGUgcmFkaXVzOwoKcHVibGljOgogICAgQ2lyY2xlKCkgICAgICAgICAgICAgICAgIC8vIGRvIHlvdSByZWFsbHkgd2FudCB0byBjb25zdHJ1Y3QgYSBjaXJjbGUgb2YgcmFkaXVzIDA/IFlvdXIgY2hvaWNlLiBZb3UgY291bGQgcmVtb3ZlIHRoaXMgY29uc3RydWN0b3IgaWYgeW91IHdhbnQKICAgIHsKICAgICAgICByYWRpdXMgPSAwLjA7CiAgICB9CgogICAgQ2lyY2xlKGRvdWJsZSByKQogICAgewogICAgICAgIHJhZGl1cyA9IHI7CiAgICB9CgogICAgdm9pZCBzZXRSYWRpdXMoZG91YmxlIHIpCiAgICB7CiAgICAgICAgcmFkaXVzID0gcjsKICAgIH0KCiAgICBkb3VibGUgZ2V0UmFkaXVzKCkKICAgIHsKICAgICAgICByZXR1cm4gcmFkaXVzOwogICAgfQoKICAgIGRvdWJsZSBnZXRBcmVhKCkKICAgIHsKICAgICAgICByZXR1cm4gUEkgKiByYWRpdXMgKiByYWRpdXM7CiAgICB9CgogICAgZG91YmxlIGdldERpYW1ldGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gcmFkaXVzICogMjsKICAgIH0KCiAgICBkb3VibGUgZ2V0Q2lyY3VtZmVyZW5jZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIDIgKiBQSSAqIHJhZGl1czsKICAgIH0KIH07CiAKIAppbnQgbWFpbigpCiB7CiAgICAgZG91YmxlIHJhZGl1czsKCiAgICAgY291dCA8PCAiRW50ZXIgdGhlIGNpcmNsZSdzIHJhZGl1czoiIDw8IGVuZGw7CiAgICAgY2luID4+IHJhZGl1czsKICAgICAKICAgICBDaXJjbGUgYyhyYWRpdXMpOwoKICAgICBjb3V0IDw8ICJSYWRpdXM6IiA8PCBjLmdldFJhZGl1cygpIDw8IGVuZGw7CgogICAgIGNvdXQgPDwgIkFyZWE6IiA8PCBjLmdldEFyZWEoKSA8PCBlbmRsOwoKICAgICBjb3V0IDw8ICJEaWFtZXRlcjoiIDw8IGMuZ2V0RGlhbWV0ZXIoKSA8PCBlbmRsOwoKICAgICBjb3V0IDw8ICJDaXJjdW1mZXJlbmNlOiIgPDwgYy5nZXRDaXJjdW1mZXJlbmNlKCkgPDwgZW5kbDsKCiAgICAgcmV0dXJuIDA7CiB9