当前位置: 代码迷 >> Java相关 >> 新手java作业,创建一个box输入长宽高求面积体积
  详细解决方案

新手java作业,创建一个box输入长宽高求面积体积

热度:215   发布时间:2012-02-17 05:05:47.0
新手java作业,创建一个box输入长宽高求面积体积
大家好,我是java新手,这个作业马上要交了,不知道为什么摁‘2’的时候第二个长方体的代码run出不来,有问题的一段我用红色标出了,请高人指点 :) 不胜感激!
谢谢
刘丽~

public class lliuBox {
private double length;
private double height;
private double width;

lliuBox(){
    length = 2.0;
    height = 2.0;
    width = 2.0;
}
lliuBox(double l, double h, double w){
    this.length = l;
    this.height = h;
    this.width = w;
}
public void printBox(){
    System.out.println("length: " + length);
    System.out.println("height: " + height);
    System.out.println("width: " + width);
}
int volume(){
    return (int)(length*height*width);
}
int surfaceArea(){
    return (int) (2*length*height + 2*length*width + 2*width*height);
}

public void setLength(double length){
    this.length = length;
}
public void setHeight(double height){
    this.length = height;
}
public void setWidth(double width){
    this.length = width;
}
public double getLength(){
    return length;
}
public double getHeight(){
    return height;
}
public double getWidth(){
    return width;
}
}


import java.io.*;
public class lliuBoxTest {
    public static void main(String args[])
    throws java.io.IOException{
        BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
        String len, hei, wid;
        double valuelength, valueheight,valuewidth;
        char choice;
        lliuBox x = new lliuBox();
        lliuBox y = new lliuBox();
        for (;;){
                do{
            System.out.println("Welcome to create-a-box! What would you like to do?");
            System.out.println("1. Create a box");
            System.out.println("2. Create a box (dimensions specified)");
                  do{
                choice = (char) System.in.read();
                    }while(choice == '\n'|choice == '\r');
                  } while(choice < '1'|choice > '2');
                System.out.println();
               
                switch(choice){
                case '1':
                    System.out.println("Selection: ");
                    System.out.println("1");
                    System.out.println("A box appeared!");
                    System.out.println("length: "+ x.getLength());
                    System.out.println("length: "+ x.getHeight());
                    System.out.println("length: "+ x.getWidth());
                    System.out.println("Surface Area: "+ x.surfaceArea());
                    System.out.println("Volume: "+ x.volume());
                    break;
                    
                case '2':
                    System.out.println("Selection: ");
                    System.out.println("2");
                    
                        System.out.println("Please enter the box's length: " );
                        len = br.readLine();
                        valuelength = Double.parseDouble(len);
                    
                        System.out.println("Please enter the box's height: " );
                        hei = br.readLine();
                        valueheight = Double.parseDouble(hei);
                    
                        System.out.println("Please enter the box's width: " );
                        wid = br.readLine();
                        valuewidth = Double.parseDouble(wid);
                    
                        System.out.println("A box appeared!" );
                    
                    y.setHeight(valueheight);
                    y.setLength(valuelength);
                    y.setWidth(valuewidth);
                    y.printBox();
                    
                    System.out.println("Volume: "+ y.surfaceArea());
                    System.out.println("Surface Area: "+ y.volume());
                    break;
                }
                System.out.println();
                }
        
}
}
搜索更多相关的解决方案: java  class  不胜感激  private  public  

----------------解决方案--------------------------------------------------------
String len, hei, wid;
直接定义成float吧,然后用从输入流中获取
----------------解决方案--------------------------------------------------------
你的程序似乎会在进入2功能后异常,在len = br.readLine();之前再加一句br.readLine()来过滤上次输入不可用字符就能运行了
----------------解决方案--------------------------------------------------------
public void setLength(double length){
    this.length = length;
}
public void setHeight(double height){
    this.length = height;
}
public void setWidth(double width){
    this.length = width;
}
我想你这段程序有问题吧?你准备给height和width赋值,应该是:
public void setHeight(double height){
   this.height=height;
}
public void setWidth(double width){
   this.width=width;
}想必是大意了吧,呵呵。
----------------解决方案--------------------------------------------------------
  相关解决方案