2014-11-07 70 views
-1

,它提示用戶輸入便士,鎳,硬幣和宿舍的數量,然後顯示其總金額。該應用程序應該包含一個getDollarAmount()方法,該方法有4個int參數,對應於便士,鎳,硬幣和宿舍的數量,並返回一個對應於硬幣美元值的字符串。如何創建AddCoins應用程序?

應用程序的輸出應該類似於:

輸入你個硬幣:

宿舍:3 角錢:2個 尼克爾斯:1個 便士:8

總計:$ 1.08

這是我的嘗試:

package ch7e5; 

import java.util.Scanner; 

public class Ch7E5 { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     int n1, p, d, n, t; 
     double Q1, D1, N1, P1; 


     System.out.println("Enter your total coins:"); 
     System.out.print("Quarters:"); 
     n1 = input.nextInt(); 
     System.out.print("Dimes:"); 
     d = input.nextInt(); 
     System.out.print("Nickles:"); 
     n = input.nextInt(); 
     System.out.print("Pennies:"); 
     p = input.nextInt(); 
     double Q1 = (pennies * 0.01); 

    private static double calctotal(double Q1, double D1, double P1, double N1) { 
     double dbltotal; 
     dbltotal = (Q1 + D1 + P1 + N1); 
     return dbltotal; 
    } 
} 

這是我與你的意見幫助第2次嘗試:

package chapter7ex5; 
import java.util.Scanner; 
public class Chapter7ex5 { 

    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter your total coins:"); 

    System.out.print("Quarters:"); 
    int Q1 = input.nextInt(); 

    System.out.print("Dimes:"); 
    int D1 = input.nextInt(); 

    System.out.print("Nickles:"); 
    int N1 = input.nextInt(); 

    System.out.print("Pennies:"); 
    int P1 = input.nextInt(); 



    } 
public static double calctotal(int Q1, int D1, int N1, int P1) { 
    double total; 
    total=((0.25 * Q1) + (0.1 * D1) + (0.05 * N1) + (0.01 * P1)); 
    return (total); 

}} 

我覺得我的努力已經結束:

package chapter7ex5; 
import java.text.DecimalFormat; 
import java.util.Scanner; 
public class Chapter7ex5 { 

    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter your total coins:"); 

    System.out.print("Quarters:"); 
    int Q1 = input.nextInt(); 

    System.out.print("Dimes:"); 
    int D1 = input.nextInt(); 

    System.out.print("Nickles:"); 
    int N1 = input.nextInt(); 

    System.out.print("Pennies:"); 
    int P1 = input.nextInt(); 

    DecimalFormat fmt = new DecimalFormat("$#,###.##"); 
    System.out.println("Total:"+fmt.format(calctotal(Q1, D1, N1, 
      P1))); 

    } 
public static double calctotal(int Q1, int D1, int N1, int P1) { 
    double total; 
    total=((0.25 * Q1) + (0.1 * D1) + (0.05 * N1) + (0.01 * P1)); 
    return (total); 

}} 
+2

將您的代碼添加到問題中,而不是將其作爲評論發佈。 – 2014-11-07 01:28:28

回答

0

好,四分之一通常是值得0.25。一角錢價值十美分等。此外,你似乎已經交換了鎳和便士。而你的號碼將永遠是int。最後,一種方法不在另一種方法的內部。因此,移動calctotalmain()並計算你的硬幣的價值的東西,如

private static double calctotal(int Q1, int D1, int N1, int P1) { 
    return ((0.25 * Q1) + (0.1 * D1) + (0.05 * N1) + (0.01 * P1)); 
} 

你或許應該叫flush()如果使用System.out.print(),它不是沒有自動換行。然後,您可以使用DecimalFormat來格式化您的計算總計,如

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter your total coins:"); 
    System.out.print("Quarters:"); 
    System.out.flush(); 
    int quarters = input.nextInt(); 
    System.out.print("Dimes:"); 
    System.out.flush(); 
    int dimes = input.nextInt(); 
    System.out.print("Nickles:"); 
    System.out.flush(); 
    int nickels = input.nextInt(); 
    System.out.print("Pennies:"); 
    System.out.flush(); 
    int pennies = input.nextInt(); 
    DecimalFormat fmt = new DecimalFormat("$#,###.##"); 
    System.out.println(fmt.format(calctotal(quarters, dimes, nickels, 
      pennies))); 
} 
+0

它正常運行,除非它不輸出總數。你會如何做到這一點? – milli 2014-11-07 05:34:28

+0

@milli我會在上面的'main()'方法中使用最後兩條語句。 – 2014-11-07 05:38:27

+0

你是什麼意思?對不起,如果這看起來像一個愚蠢的問題,但這是第一次做計算機科學和使用循環,所以即時通訊條件不好。哦,這個! @ElliottFrisch – milli 2014-11-07 05:40:37

0

不錯。我注意到的一點是,你只計算了便士的雙倍價值,而不是價格的四分之一,硬幣和鎳。

private static double calcTotal(int pennies, int nickels, int dimes, int quarters) 
{ 
    return ((pennies * 0.01) + (nickels * 0.05) + (dimes * 0.10) + (quarters * 0.25)); 
} 

輸出量也很簡單,只要使用這樣的事情在你的主要功能:

System.out.printf("%.2f",calcTotal(p, n, d, q)); 

雙打都已經在你的主AREN創建的轉換也應你的函數內部完成不需要,你應該改變如何讓你的硬幣金額爲:

System.out.print("Quarters: "); 
q = Integer.parseInt(input.nextLine());