2014-02-04 1 views
1

Я работаю над этой программой для класса CS и хочу, чтобы пользователь вводил сумму за каждую монету, показывал им денежную стоимость указанного количества монет, а затем складывал деньги с каждого выхода.Как я могу суммировать все выходы пользовательских входов в методе?

То, что я до сих пор разрешает кому-либо вводить сумму денег за каждый тип монет и отображать, сколько денег есть у многих монет, но я не могу понять, как добавить все денежные ценности в конце. Мне нужен отдельный метод, который вызовет суммы для всех денег, возвращенных с каждого метода. Любая помощь будет оценена! Вот то, что я до сих пор:

import java.util.*; 

public class Coins { 
    public static final Scanner CONSOLE = new Scanner(System.in); 

    public static void main(String[] args) { 
    quarterDollarAmount(); 
    dimeDollarAmount(); 
    nickelDollarAmount(); 
    pennyDollarAmount(); 
    } 

    public static void quarterDollarAmount() { 
    System.out.print("Enter the number of quarters: "); 
    int quarterAmount = CONSOLE.nextInt(); 
    double amount = quarterAmount * 0.25; 
    System.out.println(quarterAmount + " quarter are $" + amount); 
    } 

    public static void dimeDollarAmount() { 
    System.out.print("Enter the number of dimes: "); 
    int dimeAmount = CONSOLE.nextInt(); 
    double amount = dimeAmount * 0.1; 
    System.out.println(dimeAmount + " dimes are $" + amount); 
    } 

    public static void nickelDollarAmount() { 
    System.out.print("Enter the number of nickels: "); 
    int nickelAmount = CONSOLE.nextInt(); 
    double amount = nickelAmount * 0.05; 
    System.out.println(nickelAmount + " nickels are $" + amount); 
    } 

    public static void pennyDollarAmount() { 
    System.out.print("Enter the number of pennies: "); 
    int pennyAmount = CONSOLE.nextInt(); 
    double amount = pennyAmount * 0.01; 
    System.out.println(pennyAmount + " pennies are $" + amount); 
    } 
} 

Хорошо, так что я изменил все методы, чтобы выглядеть, как это с их соответствующим типом монеты:

public static double pennyDollarAmount() { 
    System.out.print("Enter the number of pennies: "); 
    int pennyAmount = CONSOLE.nextInt(); 
    double amount = pennyAmount * 0.01; 
    System.out.println(pennyAmount + " pennies are $" + amount); 
    return amount; 
    } 

И добавил метод:

public static double totalDollarAmount() { 
    double quarters = quarterDollarAmount(); 
    double dimes = dimeDollarAmount(); 
    double nickels = nickelDollarAmount(); 
    double pennies = pennyDollarAmount(); 
    int total = quarters + dimes + nickels + pennies; 
    System.out.println("Total amount is $" + total); 
    } 
} 

Но теперь в отчете о компиляторе (я по соображениям причины изъял данные о моей системе):

1 error found: 
File: /Users//Documents/Semester 2/CS/Coins.java [line: 51] 
Error: /Users//Documents/Semester 2/CS/Coins.java:51: possible loss of precision 
found : double 
required: int 

И помещает курсор между правым перед + in + pennies ;. Любая идея, что это значит?

ответ

1

Вам необходимо связаться с return amount; и изменить тип возврата с void по номеру double за все ваши функции, связанные с вашими деньгами.

public static double quarterDollarAmount() { 
    System.out.print("Enter the number of quarters: "); 
    int quarterAmount = CONSOLE.nextInt(); 
    double amount = quarterAmount * 0.25; 
    System.out.println(quarterAmount + " quarter are $" + amount); 
    return amount; 
} 

Затем захватите возвращаемое значение в переменной при вызове функций.

double quarters = quarterDollarAmount(); 
... 
double pennies = pennyDollarAmount(); 

Затем вы можете добавить значения, хранящиеся в этих переменных, вместе и сделать то, что вы хотите, с результатом.

double total = quarters + ... + pennies; 
0

Вы можете сделать global переменные и установить результат расчета в этом variable и добавить все переменные.

или

Изменить тип возвращаемого значения функции от void к double и сделать сумму.

0

Вам нужен класс переменной

public static double totalAmount=0.0

который будет обновляться в каждом методе с кодом

totalAmount += amount;.

Тогда

public static void getTotalAmount() { 
     System.out.println(" Total Amount of coins are $" + totalAmount); 
    } 

будет делать эту работу.