⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pex3_5.cpp

📁 数据结构C++代码,经典代码,受益多多,希望大家多多支持
💻 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 + -