import java.io.IOException;
import java.util.Scanner;
abstract class Shape {
abstract double CalcSquare();
abstract double CalcLen();
abstract void SetLenWidth(double l,double w);
abstract void SetRadius(double r);
double len;
double radius;
double width;
}class Circle extends Shape 
{
public Circle(double r)
{
radius = r;
}
public void SetRadius(double r)
{
radius =r;
}
public void SetLenWidth(double l,double w)
{}
public double CalcSquare()
{
return 3.14*radius*radius;
}
public double CalcLen()
{
return 2*3.14*radius;
}
}class Rectangle extends Shape
{
public Rectangle(double l,double w)
{
len=l;
width =w;
}
public void SetRadius(double r)
{
}
public void SetLenWidth(double l,double w)
{
len=l;
width =w;
}
public double CalcSquare()
{
return len*width;
}
public double CalcLen()
{
return 2*(len+width);
}
}class Square extends Shape {
public Square(double l)
{
len=l;
}
public double CalcLen()
{
return len*4;
}
public double CalcSquare()
{
return len*len;
}
public void SetRadius(double r)
{
}
public void SetLenWidth(double l,double w)
{
len=l;
width =w;
}
}public class Work {
public static void main(String []args) throws IOException
{
Shape m_circle[] = new Circle[10];
Shape m_square[]=new Square[10];
Shape m_rect[] = new Rectangle[10];
double r,l,w;
double square,len;
double sumsquare[]=new double[3];
double sumlen[]=new double[3];
int i;
Scanner sc = new Scanner(System.in);
for(i=0;i<10;i++)
{
javax.swing.JOptionPane.showInputDialog("请输入第"+(i+1)+"个圆的半径",null);
 r =sc.nextDouble();
 m_circle[i]=new Circle(r);
 
}

for(i=0;i<10;i++)
{
square = m_circle[i].CalcSquare();
len = m_circle[i].CalcLen();
sumsquare[0] += square;
sumlen[0]+=len;
javax.swing.JOptionPane.showMessageDialog(null,"第1类图形圆的面积为:"+square);
javax.swing.JOptionPane.showMessageDialog(null,"第1类图形圆的面积为:"+len);
}
for(i=0;i<10;i++)
{
javax.swing.JOptionPane.showInputDialog("请输入第"+(i+1)+"个长方形的长",null);
 l =sc.nextDouble();
 javax.swing.JOptionPane.showInputDialog("请输入第"+(i+1)+"个长方形的宽",null);
 w = sc.nextDouble();
 m_rect[i]=new Rectangle(l,w);
}
for(i=0;i<10;i++)
{
square = m_rect[i].CalcSquare();
len = m_rect[i].CalcLen();
sumsquare[1] += square;
sumlen[1] +=len;
javax.swing.JOptionPane.showMessageDialog(null,"第"+(i+1)+"个长方形面积是"+square);
javax.swing.JOptionPane.showMessageDialog(null,"第"+(i+1)+"个长方形的周长"+len);
}

for(i=0;i<10;i++)
{
javax.swing.JOptionPane.showInputDialog("请输入第"+(i+1)+"个正方形的长",null);
 l =sc.nextDouble();
 m_square[i]=new Square(l);
}
for(i=0;i<10;i++)
{
square = m_square[i].CalcSquare();
len = m_square[i].CalcLen();
sumsquare[2] += square;
sumlen[2] +=len;
javax.swing.JOptionPane.showMessageDialog(null,"第"+(i+1)+"个正方形面积是"+square);
javax.swing.JOptionPane.showMessageDialog(null,"第"+(i+1)+"个正方形的周长"+len);
}
for(i=0;i<3;i++)
{
javax.swing.JOptionPane.showMessageDialog(null,"圆的总面积是"+sumsquare[0]);
javax.swing.JOptionPane.showMessageDialog(null,"圆的总周长是"+sumlen[0]);
javax.swing.JOptionPane.showMessageDialog(null,"长方形的总面积是"+sumsquare[1]);
javax.swing.JOptionPane.showMessageDialog(null,"长方形的总周长是"+sumlen[1]);
javax.swing.JOptionPane.showMessageDialog(null,"正方形的总面积是"+sumsquare[2]);
javax.swing.JOptionPane.showMessageDialog(null,"正方形的总周长是"+sumlen[2]);
}
}
}
只输入一个圆的半径之后就程序跳出了!!!
谢谢各位大侠啊  在线等

解决方案 »

  1.   

    目前没环境,不好帮你。不如给你两个建议吧:
    1).将代码工整化,
    2).将代码模块化。
    工整化后用CSDN贴代码的功能,这样大家看得更方便些,也好帮你解答!
      

  2.   

    你既然是使用弹出showInputDialog图形输入框,怎么还要使用System.in控制台来获取数值啊
    把输入的地方全改成下边类似的:
    for(i=0;i<10;i++)
    {
    String value=javax.swing.JOptionPane.showInputDialog("请输入第"+(i+1)+"个圆的半径",null);
    r =Double.parseDouble(value);
    m_circle[i]=new Circle(r); }