如何创建一个找到最小数字的逻辑方法

时间:2014-02-12 21:11:53

标签: java math methods logic jlabel

我在创建按钮的逻辑部分时遇到问题。我已经尝试了很多方法对它进行排序,但我无法想到计算结果。

我想要一种按下按钮的方法,获取文本字段值,进行计算并输出答案。

简单的例子......

无限量的盒子可以容纳10件物品。用户在文本字段中输入一个随机值,表示他拥有的项目数,例如21,然后按一个按钮。

在后台,将执行一种方法,计算用户需要的最小盒数。 (多少单位10)。答案将被设置为标签。

希望你们能提前帮助,谢谢你们。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class jjj implements ActionListener {

static JTextField tf;
JButton b;
static JLabel l2;

static int a;
static int quantity = 0;
static int units = 0;

static String g, s;
static JLabel q, hidden;

public jjj(){
    JFrame f = new JFrame();

    tf = new JTextField();
    tf.setSize(180, 30);
    tf.setLocation(10, 30);

    b = new JButton("How Many Boxes?");
    b.setSize(180, 30);
    b.setLocation(10, 70);
    b.addActionListener(this);

    JLabel l1 = new JLabel("Answer:");
    l1.setSize(85, 30);
    l1.setLocation(10, 200);

    l2 = new JLabel();
    l2.setSize(85, 30);
    l2.setLocation(105, 200);

    hidden = new JLabel();
    hidden.setVisible(false);

    f.setSize(208, 300);
    f.setLayout(null);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);

    f.add(tf);
    f.add(b);
    f.add(l1);
    f.add(l2);
    f.add(hidden);
}


public void Answer(){

hidden.setText(tf.getText());
a = String.valueOf(hidden);
quantity = a;
Calc();
}

public void Calc()

if (quantity <= 100){
            units = units + 1;
        g = String.valueOf(units);
        l2.setText(g);
}
    if (quantity > 100){
              quantity = quantity - 100;
        units = units + 1;
        Calc();
    }
}

public static void main(String[] args) {
    new jjj();
}

@Override
public void actionPerformed(ActionEvent arg0) {
    l2.setText(null);
    Answer();
}
}

1 个答案:

答案 0 :(得分:1)

我不知道你当前的代码是什么,但是使用这样的东西可能就是你想要的:

public static int getNumberOfBoxes(double userInput, double numberOfTotalBoxes) {
    return (int)Math.ceil(userInput / numberOfTotalBoxes);
}

Math.ceil向上舍入,因此21.0/10.0会产生3


如果您的输入是整数,则可以执行以下操作:

public static int getNumberOfBoxes(int userInput, int numberOfTotalBoxes) {
    int numberOfBoxes = userInput / numberOfTotalBoxes;
    if(userInput % numberOfTotalBoxes != 0)
        numberOfBoxes++;
    return numberOfBoxes;
} 

在第二个例子中,您只需检查分割后是否有余数。如果你还需要一个盒子。