我是学生,正在努力完成一个家庭作业。现在我正在努力使用JOptionPane的输入来显示基于输入的结果。我的实验室有两个文件,CoinCounterTester.java和CoinCounter.java。两者都编译但它应该打印美元总数和总分数(教师说明)“输出应该在控制台窗口中,并且应该演示使用和转义序列”。我不确定测试仪的任何部分是否正确但我认为JOptionPane方法是正确的。我也认为我应该解析它们以使它们变成整数形式,但是我不知道如何根据用户输入打印指定数量的美元和剩余的分数。谁能解释一下?
由于
编辑: 好的答案似乎是正确的,但我对使用构造函数调用感到困惑。你会为构造函数调用的参数添加什么,我把
CoinCounter coinCounter = new CoinCounter(int quarters, int dimes, int nickels, int pennies);
但有七个错误
编辑2:
我现在还没有包含变量类型以及明智的建议和输入
CoinCounter coinCounter = new CoinCounter(quarters, dimes, nickels, pennies);
但我仍然得到4个错误(错误找不到符号):(。有人可以建议更正吗?
编辑3:添加了println语句并将构造函数调用移到了底部,但每当我运行程序时,我都无法获取文件打印的美元数和分数?!
import javax.swing.JOptionPane;
/**
* A class to test the CoinCounter class
*/
public class CoinCounterTester
{
/**
* Tests methods of the CoinCounter class
* @param args not used
*/
public static void main(String[] args)
{
String quarter = JOptionPane.showInputDialog("Enter the quantity of quarters");
int quarters = Integer.parseInt(quarter);
String dime = JOptionPane.showInputDialog("Enter the quantity of dimes");
int dimes = Integer.parseInt(dime);
String nickel = JOptionPane.showInputDialog("Enter the quantity of nickels");
int nickels = Integer.parseInt(nickel);
String penny = JOptionPane.showInputDialog("Enter the quantity of pennies");
int pennies = Integer.parseInt(penny);
CoinCounter coinCounter = new CoinCounter(quarters, dimes, nickels, pennies);
System.out.println(coinCounter.getDollars());
System.out.println(coinCounter.getCents());
System.exit(0);
}
}
/**
* A CoinCounter has a specific number of cents. It can provide the number of dollars and the
* number of cents that it contains
*/
public class CoinCounter
{
// constants
//*** These are class constants so they need public static
public static final int QUARTER_VALUE = 25;
public static final int DIME_VALUE = 10;
public static final int NICKEL_VALUE = 5;
public static final int PENNY_VALUE = 1;
public static final int PENNY_PER_DOLLAR_VALUE = 100;
// instance field (one - holds the total number of cents EX: 8,534)
private int total;
/**
* Constructs a CoinCounter object with a specified number of pennies,
* nickels, dimes and quarters
* @param quarterAmount the amount of quarters
* @param dimeAmount the amount of dimes
* @param nickelAmount the amount of nickels
* @param pennyAmount the amount of pennies
*/
public CoinCounter(int quarters, int dimes, int nickels, int pennies)
{
total = quarters * QUARTER_VALUE + nickels * NICKEL_VALUE + dimes * DIME_VALUE + pennies;
}
// add remaining methods as described
/**
* getDollars returns the number of dollars in the CoinCounter
* @return the number of dollars
*/
public int getDollars()
{
int dollars = (int) total / PENNY_PER_DOLLAR_VALUE;
return dollars;
}
/**
* getCents returns the number the numbers of cents left over after the dollars are removed
* @return the number of cents left over
*/
public int getCents()
{
int cents = total % PENNY_PER_DOLLAR_VALUE;
return cents;
}
}
答案 0 :(得分:2)
您正在寻找的是构造函数调用。你拥有所有的价值观。您只需要创建一个CoinCounter来为您计算它们。这样做的一个例子如下:
CoinCounter coinCounter = new CoinCounter(1, 2, 3, 4);
获得CoinCounter后,您可以调用其中的方法,例如coinCounter.getCents()
。您可以使用System.out.println(<whatever you want to print>)
打印出来。这些应该是你需要完成的三件事。
编辑:关闭!仔细看看你如何调用构造函数以及我是如何调用它的。你做的是这样的:
CoinCounter coinCounter = new CoinCounter(int 1, int 2, int 3, int 4);
将它与我上面的例子进行比较。
您只在定义构造函数时将变量类型放在那里,而不是在调用它时。