为类示例编写建议

时间:2013-10-07 21:49:50

标签: java swing loops joptionpane

我是一名基础编程学生,我需要有关如何制作特定课程的帮助。 场景是:人们进出一个事件,我需要跟踪它们。允许的人数限制为100.人们可以单独或集体来。随着人们进出,总数应该改变。达到限制后,应拒绝人员访问。

一切都将进入JOptionPane。

不确定我是否在寻找最佳网站寻求帮助,但是,任何建议都会有所帮助。

我知道我会为此做一个循环。

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: "));


             }
         }

    }

2 个答案:

答案 0 :(得分:0)

如果你想要在限制被击中后拒绝人们访问,你会想要将你的while循环更改为:

while(count < maxCapacity)

如果你使用!= maxCapacity,则值107将通过并允许人们进入。

您还需要在将groupAmt添加到maxCapacity之前验证它。

if((count + groupAmt) < maxCapacity)
{
    count += groupAmt;
}

答案 1 :(得分: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。