Печать результата на основе ввода из JOptionPane

#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. Кроме того, когда вы отправляете код в вопросе, ищите маленькую кнопку «{ }». Это отформатирует код как код, что значительно упростит его чтение.