Java计算长方形、正方形、圆形、三角形周长和面积

avatar 2017年03月27日19:25:16 1 10170 views
博主分享免费Java教学视频,B站账号:Java刘哥

设计一个综合性的形状计算器

  • 可计算周长、面积;
  • 计算长方形、正方形、圆形、三角形;
  • 要求:给出一组不同的形状对象,能正确识别形状,计算周长和面积,显示其他属性信息。
  上机作业代码如下(代码很烂,仅供参考):
  1. /*文件名 Test.java*/
  2. class Shape{
  3.     String name;
  4.     public String getName(){ return name; } //返回形状的名称
  5.     public float area() { return 0; }          //抽象的形状,其面积为0
  6.     public int zhouchang() { return 0; }
  7. }
  8. class Circle extends Shape {//圆
  9.     int R;
  10.     Circle(String s, int r){ name=s; R=r; }
  11.     public float area() { return 3 *R *R ;}
  12.     public int zhouchang() { return 3 *2 *R ;}
  13. }
  14. class Changfangxing extends Shape{//长方形
  15.     int W, H;
  16.     Changfangxing(String s, int w, int h){ name=s; W=w; H=h;}
  17.     public float area() { return W*H ;}
  18.     public int zhouchang() { return 2*(W+H) ;}
  19. }
  20. class Zhengfangxing extends Shape{//正方形
  21.     int W;
  22.     Zhengfangxing(String s, int w){ name=s; W=w;}
  23.     public float area() { return W*W ;}
  24.     public int zhouchang() { return 4*W ;}
  25. }
  26. class Sanjiaoxing extends Shape{//三角形
  27.     int A, B,C;
  28.     Sanjiaoxing(String s, int a, int b,int c){ name=s; A=a;B=b ;C=c;}
  29.     public float area() {
  30.         float p = (A+B+C)/2;
  31.         return (float)Math.sqrt(p*(p-A)*(p-B)*(p-C)) ;}
  32.     public int zhouchang() { return (A+B+C) ;}
  33. }
  34. public class Test {
  35.     public static void main(String args[] ){
  36.         Shape[] s={new Circle("圆形",10),new Changfangxing("长方形",23),new Zhengfangxing("正方形",3),new Sanjiaoxing("三角形",3,4,5)};
  37.         System.out.println(s[0].getName()+"周长="+s[0].zhouchang()+"    面积=" + s[0].area()+" ");
  38.         System.out.println(s[1].getName()+"周长="+s[1].zhouchang()+"  面积=" + s[1].area());
  39.         System.out.println(s[2].getName()+"周长="+s[2].zhouchang()+"  面积=" + s[2].area());
  40.         System.out.println(s[3].getName()+"周长="+s[3].zhouchang()+"  面积=" + s[3].area());
  41.     }
  42. }
  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0