#java #joptionpane
#java #joptionpane
Вопрос:
Я студент, пытаюсь закончить домашнюю работу. Прямо сейчас я изо всех сил пытаюсь использовать входные данные из JOptionPane для отображения результатов на основе входных данных. В моей лаборатории есть два файла, CoinCounterTester.java и тот CoinCounter.java . Оба компилируются, но должны выводить общее количество долларов и общее количество центов (инструкции учителей) «Вывод должен быть в окне консоли и должен демонстрировать использование и escape-последовательности». Я не уверен, что какая-либо часть тестера верна, но я думаю, что методы 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;
}
}
Ответ №1:
То, что вы ищете, — это вызов конструктора. У вас есть все значения. Вам просто нужно создать 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);
Сравните это с моим примером выше.
Тип переменной вводится только при определении конструктора, а не при его вызове.
Комментарии:
1. Да, похоже, это может помочь, позвольте мне попробовать.
2. К сожалению, у меня все еще возникают проблемы.
3. Спасибо за ваше предложение, оно окончательно устранило некоторые ошибки, но я все еще испытываю проблемы.
4. Да, я этого ожидал. Вы должны знать, где в коде вы пытаетесь это сделать. Это должно быть где-то, где видны переменные
quarters
,dimes
,nickels
, иpennies
. Переменные, в основном, видны только в ближайших фигурных скобках —{ }
. Вы объявляете эти переменные в своем основном методе, когда получаете значения из JOptionPanes, так что эта строка должна будет проходить где-то внутри фигурных скобок в основном методе, но после объявления всех переменных, поскольку вы не можете использовать переменную до ее объявления, и вы не хотите использовать ее до тех пор, пока она не будет объявлена.он все равно был установлен.5. Кроме того, когда вы отправляете код в вопросе, ищите маленькую кнопку «{ }». Это отформатирует код как код, что значительно упростит его чтение.