6-1 求解正六边形的类实现(2019-12) (10分)
创建一个正六边形(regular hexagon)RHexagon类,实现下列接口IShape。RHexagon类将正六边形的边长作为私有成员,类中包含初始化这个值的构造方法。
interface IShape {// 接口
double getArea(); // 求面积
double getPerimeter();// 求周长
}
请编程从键盘输入正六边形的边长值,创建一个正六边形对象,然后输出正六边形的面积和周长。保留4位小数。
正六边形类名:
RHexagon
裁判测试程序样例:
import java.util.Scanner;
import java.text.DecimalFormat;
interface IShape {
double getArea();
double getPerimeter();
}
//你提交的代码将被嵌入到这里
public class Main {
public static void main(String[] args) {
DecimalFormat d = new DecimalFormat("#.####");
Scanner input = new Scanner(System.in);
double a = input.nextDouble();
IShape r = new RHexagon (a);
System.out.println(d.format(r.getArea()));
System.out.println(d.format(r.getPerimeter()));
input.close();
}
}
输入
16.8 (边长)
输出
733.281 (输出的面积)
100.8 (输出的周长)
输入样例:
5
输出样例:
64.9519
30
class RHexagon implements IShape
{
double regular;
RHexagon(double regular)
{
this.regular = regular;
}
public double getArea()
{
return 3*Math.sqrt(3)*regular*regular/2;
}
public double getPerimeter()
{
return 6*regular;
}
}
6-2 使用抽象类求解Circle的相关信息(2019-12) (10分)
请从下列的抽象类shape类扩展出一个圆形类Circle,这个类圆形的半径radius作为私有成员,类中应包含初始化半径的构造方法。
public abstract class shape {// 抽象类
public abstract double getArea();// 求面积
public abstract double getPerimeter(); // 求周长
}
主类从键盘输入圆形的半径值,创建一个圆形对象,然后输出圆形的面积和周长。保留4位小数。
圆形类名Circle
裁判测试程序样例:
import java.util.Scanner;
import java.text.DecimalFormat;
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位小数
double r = input.nextDouble( );
shape c = new Circle(r);
System.out.println(d.format(c.getArea()));
System.out.println(d.format(c.getPerimeter()));
input.close();
}
}
输入样例:
3.1415926
输出样例:
31.0063
19.7392
class Circle extends shape
{
double radius;
final static double PI = 3.1415926535;
public Circle(double radius)
{
this.radius = radius;
}
@Override
public double getArea()
{
return PI*radius*radius;
}
@Override
public double getPerimeter()
{
return 2*PI*radius;
}
}