PTA中的Java练习题(二)

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;
	}
	
}

发布了19 篇原创文章 · 获赞 9 · 访问量 4555

猜你喜欢

转载自blog.csdn.net/qq_43777627/article/details/103719943