有两件事我需要帮助。一个是在输出中四舍五入的问题,另一个是找到一个更好的方式来编写我的程序,如果有必要,输出相同的结果。PiggyBank程序与构造函数,增变器和访问器
什么是写这个程序最有效的方法?尽管它的工作原理应该如此,但我知道它并不是最好的。
package program2;
import java.util.*;
class PiggyBank
{
Scanner console = new Scanner(System.in);
private int numPennies, numNickles, numDimes, numQuarters;
private float total;
public PiggyBank(int pennies, int nickles, int dimes, int quarters)
{
numPennies = pennies;
numNickles = nickles;
numDimes = dimes;
numQuarters = quarters;
total = (float) 0.00;
}
public void addPennies(int pennies)
{
System.out.println("Have entered " + pennies + " pennies");
if (pennies < 0)
{
System.out.println("No Pennies Added");
}
else
{
numPennies = numPennies + pennies;
total = (float) (total + pennies * 0.01);
}
}
public void addNickles(int nickles)
{
System.out.println("Have entered " + nickles + " nickles");
if (nickles < 0)
{
System.out.println("No Nickles Added");
}
else
{
numNickles = numNickles + nickles;
total = (float) (total + nickles * 0.05);
}
System.out.println("Bank has $" + total + " in it");
System.out.println();
}
public void addDimes(int dimes)
{
System.out.println("Have entered " + dimes + " dimes");
if (dimes < 0)
{
System.out.println("No Dimes Added");
}
else
{
numDimes = numDimes + dimes;
total = (float) (total + dimes * 0.10);
}
System.out.println("Bank has $" + total + " in it");
System.out.println();
}
public void addQuarters(int quarters)
{
System.out.println("Have entered " + quarters + " quarters");
if (quarters < 0)
{
System.out.println("No Quarters Added");
}
else
{
numQuarters = numQuarters + quarters;
total = (float) (total + quarters * 0.25);
}
}
public float getContents()
{
return total;
}
public final int breakTheBank()
{
if (total >= 0)
{
total = 0;
}
return (int) total;
}
}
public class PiggyBankTester
{
public static void main(String[] args)
{
Scanner console = new Scanner(System.in);
System.out.print("Program By ");
String name = console.next();
System.out.println();
test();
}
public static void test()
{
PiggyBank bank = new PiggyBank(0, 0, 0, 0);
bank.addNickles(3);
bank.addPennies(4);
System.out.println("Bank has $" + bank.getContents() + " in it \n");
bank.addPennies(-18);
System.out.println("Bank has $" + bank.getContents() + " in it \n");
bank.addDimes(2);
bank.addQuarters(3);
System.out.println("Bank has $" + bank.getContents() + " in it \n");
bank.addQuarters(-3);
System.out.println("Bank has $" + bank.getContents() + " in it \n");
System.out.println("Broke the bank and got $" + bank.getContents() + " from it \nBank has $" + bank.breakTheBank() + " in it");
}
}
这是我的输出示例。浮点数总计取得了一些结果,但我不知道如何让它围绕所有结果。
Program By JakeBrono46
Have entered 3 nickles
Bank has $0.15 in it
Have entered 4 pennies
Bank has $0.19000001 in it
Have entered -18 pennies
No Pennies Added
Bank has $0.19000001 in it
Have entered 2 dimes
Bank has $0.39000002 in it
Have entered 3 quarters
Bank has $1.14 in it
Have entered -3 quarters
No Quarters Added
Bank has $1.14 in it
Broke the bank and got $1.14 from it
Bank has $0 in it
我没有使用另一个站点来查找访问器和增变器的结构。我不认为我错过了太重要的东西,但我现在无法想到我还需要做什么。
清理完代码格式。主要是在那里,只是错过了一对“}”。小拼字。添加标点符号。删除关于问题可以理解,不相关的行。 – mateuscb