Java Check Mail Lab

时间:2014-10-13 17:22:01

标签: java if-statement programming-languages java.util.scanner system.out

出于某种原因,我的代码不断出现全部零: 这是我应该做的: 实验室分配A8.1 检查邮件

美国邮局有关于邮寄包裹的规定。如果

,则无法通过第一类邮寄包裹

长度和周长的总和大于100英寸,或者如果包装重量超过70磅。

围长是围绕高度和宽度的周长,其中长度定义为最长

中编写一个程序,该程序包含包的重量和包的三个维度

任何订单。程序应确定包装的最长尺寸,计算周长,

并计算框的大小。然后该程序应打印出以下消息之一

  1. 包太大太重了。

  2. 包太大了。

  3. 包太重了。

  4. 包裹可以接受。

  5. 以下是我所做的代码:       //驱动程序代码

    import java.util.Scanner;
    public class CheckMailDriver {
        static int myHeight;
        static int myLength;
        static int myWidth;
    
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.println("Enter Dimension 1. ");
        int d1=input.nextInt();
        System.out.println("Enter Dimension 2. ");
        int d2=input.nextInt();
        System.out.println("Enter Dimension 3. ");
        int d3=input.nextInt();
        System.out.println("Enter the weight of the package. ");
        int weight=input.nextInt();
        if ((d1>d2)&&(d1>d3)){
            d1=myLength;
            d2=myHeight;
            d3=myWidth;
        }
        else
            if ((d2>d1)&&(d2>d3)){
                d2=myLength;
                d1=myHeight;
                d3=myWidth;
            }
        else
            if ((d3>d1)&&(d3>d2)){
                    d3=myLength;
                    d1=myHeight;
                    d2=myWidth;
                }
        CheckMail mail=new CheckMail(myLength,myHeight,myWidth,weight);
        System.out.println("The length of the package is "+myLength);
        System.out.println("The height of the package is "+myHeight);
        System.out.println("The width of the package is "+myWidth);
        mail.calculateGirth();
        mail.calculateValid();
        input.close();
    
    
    }
    

    }      //类代码

    public class CheckMail {
        int myHeight;
        int myLength;
        int myWidth;
        int myWeight;
        int mygirth;
    
    public CheckMail(int d1, int d2, int d3, int wt){
        d1=myLength;
        d2=myHeight;
        d3=myWidth;
        wt=myWeight;
    
    
    
    }
    
    public void calculateGirth(){
        int mygirth=(2*myHeight)+(2*myWidth);
        System.out.println("The girth of the package is "+mygirth);
    
    }
    public void calculateValid(){
        if ((mygirth+myLength>=100)&&(myWeight>=70)){
            System.out.println("The package is too large and too heavy");
        }
        else 
            if ((mygirth+myLength>=100)){
                System.out.println("The package is too large");
            }
            else 
                if ((myWidth>=70)){
                System.out.print("The package is too heavy");
            }
                else
                    System.out.println("The package is fine");
    }
    

    }

    以下是控制台中显示的内容:

    输入尺寸1。 123

    输入Dimension 2。 23

    输入Dimension 3。 14

    输入包裹的重量。 13

    包裹的长度为0

    包裹的高度为0

    包的宽度为0

    包装的周长是0

    套餐很好

1 个答案:

答案 0 :(得分:1)

反转CheckMail构造函数中的赋值;即改变

d1=myLength;

myLength=d1;

在Java中,赋值的变量位于等号的左侧,而分配给它的位于右侧。

目前,您的代码只是使用类属性的初始值将参数重新分配给构造函数(构造函数是本地的)(零,因为在Java中,属性类型为int的属性被初始化为零);类属性本身不会改变。