首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

计算多角形的周长和面积,编写的类

2013-01-06 
计算多边形的周长和面积,编写的类设计一个名为RegularPolygon的正n边形类一个名为n的int型私有数据域定义

计算多边形的周长和面积,编写的类
设计一个名为RegularPolygon的正n边形类
一个名为n的int型私有数据域定义多边形的边数,默认值为3。
一个名为side的double型私有数据域存储边的长度,默认值为1。
一个名为x的double型私有数据域,它定义多边形中点的x坐标,默认值为0。
一个名为y的double型私有数据域,它定义多边形中点的y坐标,默认值为0。
一个创建带默认值的正多边形的无参构造方法。
一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。
一个能创建带指定边数和边长度、中心在(x,y)的正多边形的构造方法。
所有数据域的get和set方法。
一个返回多边形周长的方法getPerimeter()。
一个返回多边形面积的方法getArea()。计算正多边形面积的公式是:面积=(n*side2)/(4*tan(180/n))
分别使用无参构造方法、 RegularPolygon (6,4)和RegularPolygon(10,4,5.6,7.8)创建三个RegularPolygon对象,并显示每个对象的周长和面积。
代码如下:
//package regularPolygon;
public class RegularPolygon
{
   private  int n =3;
   private  double side = 1; 
   private  double x = 0;
   private  double y = 0;
   RegularPolygon(){}
   RegularPolygon(int n,double side)
   {
   this.n = n;
   this.side =side;
   }
    RegularPolygon(int n,double side,double x,double y) 
    {
    this.n = n;
    this.side = side;
    this.x = x;
    this.y = y;
    }
    public int getN(int n)
    {
    return n;
    }
    public void setN(int n)
    {
    this.n = n;
    }
    public double getSide(double side)
    {
    return side;
    }
    public void setSide(double side)
    {
    this.side = side;
    }
    public double getX(double x)
    {
    return x;
    }
    public void setX(double x)
    {
    this.x = x;
    }
    public double getY(double y)
    {
    return y;
    }
    public void setY(double y)
    {
    this.y = y;
    }
    public double getPerimeter()
    {
        System.out.println("正多边形的周长是"+n*side);
        return n*side;
    }
    public double getArea()
    {
        
        System.out.println("正多边形的面积是"+(n*side*side)/(4*Math.atan(180/n)));
         return (n*side*side)/(4*Math.atan(180/n));
    }




}    
   
  
  

 /*setData()
    {
        Reg RegularPolygon=new Reg();


    Scanner reader=new Scanner(System.in)
    System.out.println("请输入多边形的边数n");
     RegularPolygon.n=reader.nextInt();
     System.out.println("请输入多边形边的长度side");
     RegularPolygon.side=reader.nextDouble();
     System.out.println("请输入多边形的x坐标x");
     RegularPolygon.x=reader.nextDouble();
     System.out.println("请输入多边形的x坐标x");
     RegularPolygon.y=reader.nextDouble();
      }   
     */


//package regularPolygon;

public class Test
{
public static void main(String args[])
{
RegularPolygon a = new RegularPolygon();
RegularPolygon b = new RegularPolygon(6,4);
RegularPolygon c = new RegularPolygon(10,4,5.6,7.8);

    a.getPerimeter();
    a.getArea();
b.getPerimeter();
    b.getArea();
    c.getPerimeter();
    c.getArea();
}
}
如果不是正多边形该怎么改啊,怎么改都不对,帮忙改一下。
[解决办法]
恐怕要加一个顶点数组,边长度数组(虽然不是必要的,只是辅助的)

热点排行