📄 pex3_5.cpp
字号:
#include <iostream.h>
#include <math.h>
const double pi = 3.141529;
enum Figure {circle, rectangle};
class Geometry
{
private:
// V1 = radius if circle, V1/V2 = length/width if rectangle
double V1,V2;
// type of figure the object represents
Figure figuretype;
public:
Geometry (double radius); // for a circle
Geometry (double l, double w); // for a rectangle
// return circumference, area and diagonal of the object
double Border (void) const;
double Area (void) const;
double Diagonal (void) const;
};
// constructor used for one parameter (radius of circle)
Geometry::Geometry (double radius) :
figuretype(circle), V1(radius)
{}
// constructor used for two parameters (length/width of rectangle)
Geometry::Geometry (double length, double width) :
figuretype(rectangle), V1(length), V2(width)
{}
double Geometry::Border (void) const
{
if (figuretype == circle)
return 2.0 * pi * V1;
else
return 2.0*(V1 + V2);
}
double Geometry::Area (void) const
{
if (figuretype == circle)
return pi * V1 * V1;
else
return V1 * V2;
}
double Geometry::Diagonal (void) const
{
if (figuretype == circle)
return 2.0 * V1;
else
return sqrt(V1*V1 + V2*V2);
}
void main(void)
{
float radius;
cout << "Enter the inner radius: ";
cin >> radius;
Geometry circle_inner(radius);
Geometry square(2*radius,2*radius);
Geometry circle_outer(square.Diagonal()/2.0);
cout << "Inner circle: " << circle_inner.Border() << "(perimeter) "
<< circle_inner.Area() << "(area) " << circle_inner.Diagonal()
<< "(diagonal)" << endl;
cout << "Square: " << square.Border() << "(perimeter) "
<< square.Area() << "(area) " << square.Diagonal()
<< "(diagonal)" << endl;
cout << "Outer circle: " << circle_outer.Border() << "(perimeter) "
<< circle_outer.Area() << "(area) " << circle_outer.Diagonal()
<< "(diagonal)" << endl;
cout << "Perimeter of region X is "
<< (circle_outer.Border() + square.Border())/4 << endl;
cout << "Area of region X is "
<< (circle_outer.Area() - square.Area())/4 << endl;
}
/*
<Run>
Enter the inner radius: 1
Inner circle: 6.283058(perimeter) 3.141529(area) 2(diagonal)
Square: 8(perimeter) 4(area) 2.828427(diagonal)
Outer circle: 8.885586(perimeter) 6.283058(area) 2.828427(diagonal)
Perimeter of region X is 4.221396
Area of region X is 0.570764
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -