我的程序有代码输出问题。更新了新的蒲式耳篮球课程

时间:2012-11-19 08:51:15

标签: java output

(现在有更新的代码)有严重的问题试图从我的程序中获得正确的输出。我需要从这个程序中获得一个特定的输出,它应该是这个输出:

Rick...
This bushel basket has 0 apples in it.
This bushel basket has 33 apples in it.
This bushel basket has 29 apples in it.
This bushel basket has 0 apples in it.
Newt...
This bushel basket has 100 apples in it.
false
false
100
25
Michele...
true
false
false
false
false
true
Herman...
This bushel basket has 0 apples in it.
Jon...
This bushel basket has 125 apples in it.
Ron...
This bushel basket has 20 apples in it.
This bushel basket has 0 apples in it.
This bushel basket has 125 apples in it.
Gary...
This bushel basket has 0 apples in it.

但是我收到了输出:

Rick...
This bushel basket has 0 apples in it.
This bushel basket has 33 apples in it.
This bushel basket has 29 apples in it.
This bushel basket has 0 apples in it.
Newt...
This bushel basket has 100 apples in it.
false
false
100(THIS IS WHERE THE BAD OUTPUT STARTS)
true
Michele...
true
false
false
false
false
true
Herman...
This bushel basket has -5 apples in it.
Jon...
This bushel basket has 300 apples in it.
Ron...
This bushel basket has 20 apples in it.
This bushel basket has -30 apples in it.
This bushel basket has 960 apples in it.
Gary...
This bushel basket has 0 apples in it.

这是代码

    public class AppleOrchard
    {
        public static void main(String [] args)
        {
            System.out.println("Rick...");
            BushelBasket rick = new BushelBasket(0);
            rick.print();
            rick.pick(11);
            rick.pick(22);
            rick.print();
            rick.eat(4);
            rick.print();
            rick.spill();
            rick.print();

            System.out.println("Newt...");
            BushelBasket newt = new BushelBasket(100);
            newt.print();

            System.out.println( newt.isEmpty() );
            System.out.println( newt.isFull() );
            System.out.println( newt.getApples() );
            System.out.println( newt.roomLeftInBasket() );

            System.out.println("Michele...");
            BushelBasket michele = new BushelBasket(0);
            System.out.println( michele.isEmpty() );
            System.out.println( michele.isFull() );
            michele.pick(25);
            System.out.println( michele.isEmpty() );
            System.out.println( michele.isFull() );
            michele.pick(100);
            System.out.println( michele.isEmpty() );
            System.out.println( michele.isFull() );

            System.out.println("Herman...");
            BushelBasket herman = new BushelBasket(-5); // should default to 0
            herman.print();

            System.out.println("Jon...");
            BushelBasket jon = new BushelBasket(300); // should default to 125
            jon.print();

            System.out.println("Ron...");
            BushelBasket ron = new BushelBasket(20); // starts with 20
            ron.print();
            ron.eat(50); // can only eat down to zero apples
            ron.print(); // should see zero apples
            ron.eat(10); // back to 10
            ron.pick(1000); // basket can only hold 125 apples
            ron.print(); // should print 125

            System.out.println("Gary...");
            BushelBasket gary = new BushelBasket(0); // should default to 0
            gary.print();
        }
    }



    class BushelBasket
{
        int apples;

        BushelBasket(int apples) 
        {
    if (apples > 0 && apples < 125)
      this.apples = apples;
        }

        public void spill()
        {
            apples = 0;
        }

        public void pick(int x)
        {
            if (!isFull())
                apples = apples + x;
        }

        public void eat(int x)
        {
            if (!isEmpty())
                apples = apples - x;
        }

        public int getApples()
        {
            return apples;  
        }

        public void print()
        {
            int x = getApples();
            System.out.println("This bushel basket has " + x + " apples in it.");
        }

        public boolean isEmpty()
        {
            int emtpy = 0;

            if (apples <= emtpy)
            {   
                return true;
            }

            else 
            {
                return false;
            }
        }

        public boolean isFull()
        {
            int full = 125;

            if (apples >= full)
            {   
                return true;
            }

            else 
            {
                return false;
            }

        }



        public boolean roomLeftInBasket()
        {
            int full = 125;

            if (apples < full)
            {   
                return true;
            }

            else 
            {
                return false;
            }

        }

}

2 个答案:

答案 0 :(得分:0)

蝾螈

您的代码已

System.out.println( newt.getApples() );                      // integer
System.out.println( newt.roomLeftInBasket() );               // boolean

这不会像您预期的那样返回100 25,它会返回100 true

您似乎需要更改roomLeftInBasket()方法以返回购物篮中剩余的金额,或更改代码以使其看起来像:

if (newt.roomLeftInBasket())
{
  System.out.println( newt.fullBasket() - newt.getApples());
}

但您必须创建fullBasket()方法

赫尔曼

在Herman的构造函数中,你给他的篮子-5个苹果。如果你不能有负面的篮子,你将不得不改变构造函数来检查它。

乔恩

与Herman相同,但您需要检查创建的篮子的值是否大于整个篮子并相应地更改它。

罗恩

对于罗恩来说,你需要检查给予吃()的值是否大于篮子中的值,并处理罗恩试图吃多于苹果的情况。

答案 1 :(得分:0)

更改构造函数

BushelBasket(int apples) 
{
   if (apples < 0 )
      this.apples = 0;
   else if(apples >125)
      this.apples = 125;
   else
      this.apples=apples;
}