java吧 关注:1,246,311贴子:12,724,870
  • 2回复贴,共1

大神们 让写求100个随机形状的面积之和 我这个哪里出问题了?

只看楼主收藏回复

import java.util.*;
import java.lang.Math;
public class Test{
public static void main(String args[]){
double sump=0;
double sumarea=0;
for(int n=0;n<100;n++){
int i=(int)Math.random()*4;
switch(i){
case 0:Shape[i]=new Circle();
case 1:Shape[i]=new Rectangle();
case 2:Shape[i]=new Square();
case 3:Shape[i]=new Lade();break;
}
sump+=Shape[i].getPerimeter();
sumarea+=Shape[i].getArea();
}
System.out.println("这100个形状的周长和为"+sump);
System.out.println("这100个形状的面积和为"+sumarea);
}
}
abstract class Shape{
public abstract double getArea();
public abstract double getPerimeter();
}
class Circle extends Shape{
double radius=Math.random()*50 + 1;
public double getArea(){
double area;
area=Math.PI*radius*radius;
return area;
}
public double getPerimeter(){
double p;
p=Math.PI*radius*2.0;
return p;
}
}
class Rectangle extends Shape{
double height=Math.random()*100 + 1;
double length=Math.random()*100 + 1;
public double getArea(){
double area;
area=height*length;
return area;
}
public double getPerimeter(){
double p;
p=(height+length)*2.0;
return p;
}
}
class Square extends Rectangle{
double length=Math.random()*100 + 1;
public double getArea(){
double area;
area=length*length;
return area;
}
public double getPerimeter(){
double p;
p=length*4.0;
return p;
}
}
class Lade extends Shape{
double above=Math.random()*100 + 1;
double bottom=Math.random()*100 + 1;
double height=Math.random()*100 + 1;
public double getArea(){
double area;
area=height*(above+bottom)/2.0;
return area;
}
public double getPerimeter(){
double p;
double v2=sqrt(Math.pow((bottom-above),2)+4.0*Math.pow(height,2));
p=v2+above+bottom;
return p;
}
}


IP属地:重庆1楼2018-11-20 16:36回复


    IP属地:重庆2楼2018-11-20 16:38
    回复
      已经改好了 谢谢
      public static void main(String args[]){
      double sump = 0;
      double sumarea = 0;
      Shape shape = null;
      for(int n = 0;n<100;n++){
      int i = (int)Math.random()*4;
      switch(i){
      case 0:shape = new Circle();break;
      case 1:shape = new Rectangle();break;
      case 2:shape = new Square();break;
      case 3:shape = new Lade();break;
      }
      sump += shape.getPerimeter();
      sumarea += shape.getArea();
      }
      System.out.println("这100个形状的周长和为"+sump);
      System.out.println("这100个形状的面积和为"+sumarea);
      }
      }


      IP属地:重庆3楼2018-11-20 17:13
      回复