6-5 从抽象类shape类扩展出一个正n边形 分数 10 作者 张德慧 单位 西安邮电大学 在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。请从下列的抽象类shape类扩展出一个正n边形类RegularPolygon,这个类将正n边形的边数n和边长a作为私有成员,类中包含初始化边数n和边长a的构造方法。 public abstract class shape {// 抽象类 public abstract double getArea();// 求面积 public abstract double getPerimeter(); // 求周长 } 计算正n边形的面积公式为: Area=n×a×a/(tan((π/n))×4); 注意:需要将角度转换成弧度后再计算三角函数。 类名:RegularPolygon 裁判测试程序样例: abstract class shape {// 抽象类 /* 抽象方法 求面积 */ public abstract double getArea(); /* 抽象方法 求周长 */ public abstract double getPerimeter(); } /* 你提交的代码将嵌入到这里 */ public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); DecimalFormat d = new DecimalFormat("#.####");// 保留4位小数 int n=input.nextInt(); double side = input.nextDouble(); shape rp = new RegularPolygon(n,side); System.out.println(d.format(rp.getArea())); System.out.println(d.format(rp.getPerimeter())); input.close(); } } 输入样例: 5 7 输出样例: 84.3034 35 代码长度限制 96 KB 时间限制 1000 ms 内存限制 75 MB
时间: 2024-04-28 12:21:07 浏览: 87
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
// RegularPolygon.java
import java.lang.Math;
public class RegularPolygon extends shape {
private int n;
private double a;
public RegularPolygon(int n, double a) {
this.n = n;
this.a = a;
}
public double getArea() {
double radians = Math.toRadians(360.0 / (2 * n));
return n * a * a / (4 * Math.tan(radians));
}
public double getPerimeter() {
return n * a;
}
}
阅读全文