0

(現在、更新されたコードを使用) プログラムから適切な出力を取得しようとして深刻な問題が発生しています。このプログラムから特定の出力が必要であり、次の出力が期待されます。

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;
            }

        }

}
4

2 に答える 2

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の場合と同じですが、作成されたバスケットの値がフルバスケットよりも大きいかどうかを確認し、それに応じて変更する必要があります。

ロン

Ronの場合、eat()に指定された値がバスケットの値よりも大きいかどうかを確認し、Ronがバスケットにあるよりも多くのリンゴを食べようとする状況に対処する必要があります。

于 2012-11-19T08:55:38.443 に答える
0

コンストラクターを変更する

BushelBasket(int apples) 
{
   if (apples < 0 )
      this.apples = 0;
   else if(apples >125)
      this.apples = 125;
   else
      this.apples=apples;
}
于 2012-11-19T09:02:32.160 に答える