-1

私は基本的なプログラミングの学生で、特定のプログラムの作成方法について助けが必要です。シナリオは次のとおりです。人々がイベントに出入りし、追跡する必要があります。定員は100名です。お一人でも大勢でもご参加いただけます。人々が出入りするにつれて、合計は変化するはずです。制限に達した後は、アクセスを拒否する必要があります。

すべてが JOptionPane に入ります。

ヘルプに最適なサイトを見ているかどうかはわかりませんが、アドバイスがあれば役立ちます。

私はこれのためにwhileループを作ることを知っています。

import javax.swing.JOptionPane;
public class HwTwoPt2 {

    public static void main(String[] args) {
        int enter, exit, total;
         int maxCapacity = 106;
         int count = 0;
         int groupAmt = 0;


         while(count != maxCapacity){
            groupAmt = Integer.parseInt(JOptionPane.showInputDialog("Enter total amount in the group: "));


             }
         }

    }
4

2 に答える 2

0

これらすべてをオブジェクトにカプセル化することをお勧めします。Java はオブジェクト指向言語です。カプセル化と情報隠蔽の観点からの考え方に早く慣れる方がよいでしょう。

このようなもの:

public class CapacityTracker {
    private static final int DEFAULT_MAX_CAPACITY = 100;
    private int currentCapacity;
    private int maxCapacity;

    public CapacityTracker() { 
        this(DEFAULT_MAX_CAPACITY);
    }

    public CapacityTracker(int maxCapacity) { 
        this.maxCapacity = ((maxCapacity <= 0) ? DEFAULT_MAX_CAPACITY : maxCapacity);
        this.currentCapacity = 0;
    }

    public int getCurrentCapacity() { return this.currentCapacity; }

    public void addAttendees(int x) { 
        if (x > 0) {
            if ((this.currentCapacity+x) > this.maxCapacity) {
                throw new IllegalArgumentException("max capacity exceeded");
            } else {
                this.currentCapacity += x;
            }         
        }
    }
}

これをより便利に使用できるように、メソッドを追加し続けます。

カスタムの CapacityExceededException も作成する場合があります。

于 2013-10-07T22:00:30.800 に答える
0

制限に達したときに人々のアクセスを拒否したい場合は、while ループを次のように変更します。

while(count < maxCapacity)

!= maxCapacity を使用すると、値 107 が渡され、人々の入場が許可されます。

また、maxCapacity に追加する前に groupAmt を確認する必要があります。

if((count + groupAmt) < maxCapacity)
{
    count += groupAmt;
}
于 2013-10-07T21:57:54.957 に答える