编译器:C++ (g++)
在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。请从下列的抽象类shape类扩展出一个正n边形类RegularPolygon,这个类将正n边形的边数n和边长s作为私有成员,类中包含初始化边数n和边长s的构造函数。
#include <iostream>
#include <cmath>
using namespace std;
class shape {// 形状类
public:
double getArea() // 求面积
{return -1;}
double getPerimeter() // 求周长
{return -1;}
};
/* 请在这里填写答案 */
//Your code will be embed-ed here.
int main()
{
int n;
double s;
cin>>n>>s;
RegularPolygon p(n,s);
cout<<p.getArea()<<endl;
cout<<p.getPerimeter()<<endl;
return 0;
}
Ans:
class RegularPolygon:public shape{
private:
int n;
double s;
public:
RegularPolygon(int nn, double ss):n(nn), s(ss)
{
}
double getArea(){
return n*s*s/(tan((3.1415926/n))*4);
}
double getPerimeter(){
return n * s;
}
};