Java----Java实现求图形的面积和、周长和
输出一组图形的面积和、周长和,其中图形具备以下特征:
圆形:半径;
正方形形:边长;
三角形:三条边长;
输出内容如图:
代码演示(脚写的):
package tuxing; import java.math.BigDecimal; class cycle{ double r; double pi=3.141592653589793; public cycle(double r){ this.r=r; } public double c_Cycle(){ return 2*pi*r; } public double s_Cycle(){ return pi*r*r; } public void showInfo(){ System.out.println("圆形 "+"半径为:"+r+"周长为:"+c_Cycle()+"面积为:"+s_Cycle()); } } class square{ int l; public square(int l){ this.l=l; } public double c_Square(){ double c; c=4*l; BigDecimal bd=new BigDecimal(c); c=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue(); return c; } public double s_Square(){ double s; s=l*l; BigDecimal bd=new BigDecimal(s); s=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue(); return s; } public void showInfo(){ System.out.println("正方形 "+"边长:"+l+"周长为:"+c_Square()+"面积为:"+s_Square()); } } class triangle{ int l1; int l2; int l3; public triangle(int l1,int l2,int l3){ this.l1=l1; this.l2=l2; this.l3=l3; } public double s_Triangle(){ double p=c_Triangle()/2; double answer=Math.sqrt(p*(p-l1)*(p-l2)*(p-l3)); BigDecimal bd=new BigDecimal(answer); answer=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue(); return answer; } public double c_Triangle(){ double answer=l1+l2+l3; BigDecimal bd =new BigDecimal(answer); answer=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue(); return answer; } public void showInfo(){ if(l1+l2>l3&&l1-l2<l3) System.out.println("三角形 "+"三边长分别为:"+l1+","+l2+","+l3+","+"周长为:"+c_Triangle()+"面积为:"+s_Triangle()); else System.out.println("Error Triangle"); } } public class Test { public static void main(String[] args){ System.out.println("所有图形:"); cycle c1 =new cycle(5); c1.showInfo(); square s2=new square(4); s2.showInfo(); square s3=new square(5); s3.showInfo(); triangle t4=new triangle(3,4,5); t4.showInfo(); double c_sum; double s_sum; c_sum=c1.c_Cycle()+s2.c_Square()+s3.c_Square()+ t4.c_Triangle(); s_sum= c1.s_Cycle()+s2.s_Square()+ s3.s_Square()+ t4.s_Triangle(); System.out.println("周长和为:"+c_sum); System.out.println("面积和为"+s_sum); } }