建立一个具有英制重量(石头,磅和盎司)的程序,我需要磅和盎司的范围(即0至15盎司),一旦盎司int超过15,则英镑将增加1,磅也发生了相同的变化,所以石头增加了1。

我对Java很陌生,所以这对我来说是新手,我也不知道如何开始。

public class NewWeight {

    private int stones = 0;
    private int pounds = 0;
    private int ounces = 0;

    public NewWeight (int stones, int pounds, int ounces) {
        ...




假设输入的是18盎司,则输出为1 pound and 2 ounces,另一个示例为224盎司,因此最终输出为1 stone, 0 pounds, 0 ounces

最佳答案

您不必在此处使用3个变量ouncespoundsstones。所有这三个代表一个数量-重量。

您可以存储重量(盎司),仅此而已:

private int weightInOunces;


然后,您可以添加诸如getPoundsgetStonesgetOunces的方法,这些方法可以对weightInOunces进行数学运算。

例如:

public int getPounds() {
    return weightInOunces % 224 / 16;
}

public int getOunces() {
    return weightInOunces % 16;
}

public int getStones() {
    return weightInOunces / 224;
}


设置器可以这样实现:

public int setPounds(int pounds) {
    int stones = getStones();
    weightInOunces = stones * 244 + getOunces() + pounds * 16;
}

public int setOunces(int ounces) {
    int pounds = getPounds();
    weightInOunces = pounds * 16 + ounces;
}

public int setStones(int stones) {
    weightInOunces = stones * 244 + weightInOunces % 244;
}


构造函数可以这样实现:

public Weight(int stones, int pounds, int ounces) {
    weightInOunces = stones * 224 + pounds * 16 + ounces;
}


要获得输出,您还可以添加toString方法,以x stones, x pounds, x ounces格式输出重量。

08-04 22:41