2014-11-07 69 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());