import java.util.*;
class Circle //圆类
{ private float r;
Circle()
{ r = 1; }
Circle(float r)
{ this.r = r; }
public float getR() //返回值r
{ return r; }
public void setR(float r) //重新赋值(公有,私有均可)
{ this.r = r; }
public double getA() //返回圆的面积
{ return r * r * Math.PI; }
public double getP() //返回圆的周长
{ return r * Math.PI * 2; }
}
class CircleZhu extends Circle //圆柱类
{ private float h;
CircleZhu()
{ h = 1; }
CircleZhu(float r, float h)
{ super(r);
this.h = h; }
public float getH() //返回值h
{ return h; }
public void setH(float h)
{ this.h = h; }
public double getA() //返回圆柱的面积
{ return (super.getP() * h + super.getA() * 2); }
public double getV() //返回圆柱的体积
{ return super.getA() * h; }
}
class CircleZhui extends Circle //圆锥类
{ private float h;
public CircleZhui()
{ h = 1; }
public CircleZhui(float r, float h)
{ super(r);
this.h = h; }
public float getH()
{ return h; }
public void setH(float h)
{ this.h = h; }
public double getA() //返回圆锥的面积
{ return (Math.PI * super.getR() * Math.sqrt(Math.pow(super.getR(),2) + Math.pow(h,2))); }
public double getV() //返回圆锥的体积
{ return (super.getA() * h) / 3; }
}
class CircleQiu extends Circle //球类
{ public CircleQiu() { }
public CircleQiu(float r)
{ super(r); }
public double getA() //返回球的面积
{ return 4 * Math.PI * Math.pow(super.getR(),2); }
public double getV() //返回球的体积
{ return (3 * Math.PI * Math.pow(super.getR(),3))/4; }
}
class Rectangle //矩形类
{ private float l;
private float w;
Rectangle()
{ l = 1;
w = 1; }
Rectangle(float l, float w)
{ this.l = l;
this.w = w; }
public float getL() //返回值l
{ return l; }
public void setL(float l) //重新赋值(公有,私有均可)
{ this.l = l; }
public float getW() //返回值w
{ return w; }
public void setW(float w) //重新赋值(公有,私有均可)
{ this.w = w; }
public double getA() //返回矩形的面积
{ return w * l; }
public double getP() //返回矩形的体积
{ return (w + l) * 2; }
}
class RectTi extends Rectangle //长方体类
{ private float h;
RectTi()
{ h = 1; }
RectTi(float l, float w, float h)
{ super(l, w);
this.h = h; }
public float getH() //返回值h
{ return h; }
public void setH(float h)
{ this.h = h; }
public double getA() //返回长方体的面积
{ return (super.getA() + super.getL() * h + super.getW() * h) * 2; }
public double getV() //返回长方体的体积
{ return super.getA() * h; }
}
public class Graph
{ public static void main(String[] args)
{ Scanner sc = new Scanner(System.in);
while(true)
{ System.out.println("求圆相关属性请输入1,求圆柱相关属性请输入2,求圆锥相关属性请输入3,求球相关属性请输入4,求矩形类型属性请输入5,求长方体类型属性请输入6:");
int x = sc.nextInt();
if(x==1)
{ Circle c1 = new Circle();
System.out.println("请输入圆的半径:");
c1.setR(sc.nextFloat());
System.out.println("圆的面积为:" + c1.getA());
System.out.println("圆的周长为:" + c1.getP()); break; }
else if(x==2)
{ CircleZhu c2 = new CircleZhu();
System.out.println("输入圆柱的半径:");
c2.setR(sc.nextFloat());
System.out.println("输入圆柱的高:");
c2.setH(sc.nextFloat());
System.out.println("圆柱的面积:" + c2.getA());
System.out.println("圆柱的体积:" + c2.getV()); break; }
else if(x==3)
{ CircleZhui c3 = new CircleZhui();
System.out.println("输入圆锥的半径:");
c3.setR(sc.nextFloat());
System.out.println("输入圆锥的高:");
c3.setH(sc.nextFloat());
System.out.println("圆锥的面积:" + c3.getA());
System.out.println("圆锥的体积:" + c3.getV()); break; }
else if(x==4)
{ CircleQiu c4 = new CircleQiu();
System.out.println("输入球体的半径:");
c4.setR(sc.nextFloat());
System.out.println("球体的面积:" + c4.getA());
System.out.println("球体的体积:" + c4.getV()); break; }
else if(x==5)
{ Rectangle r1 = new Rectangle();
System.out.print("请输入矩形的长:");
r1.setL(sc.nextFloat());
System.out.print("请输入矩形的宽:");
r1.setW(sc.nextFloat());
System.out.println("矩形的面积为:" + r1.getA());
System.out.println("矩形的周长为:" + r1.getP()); break; }
else if(x==6)
{ RectTi r2 = new RectTi();
System.out.println("输入长方体的长:");
r2.setL(sc.nextFloat());
System.out.println("输入长方体的宽:");
r2.setW(sc.nextFloat());
System.out.println("输入长方体的高:");
r2.setH(sc.nextFloat());
System.out.println("长方体的表面积为:" + r2.getA());
System.out.println("长方体的体积为:" + r2.getV());
break; }
else
System.out.print("输入错误,请重新输入*****"); }
}
}