货币兑换类和客户

时间:2012-03-04 16:37:35

标签: java

货币兑换类:

开发一种货币,将美元兑换为您选择的5个国家/地区的价值。目前的汇率可以在http://www.fms.treas.gov/intn.html#rates找到。该类应定义汇率和私人美元领域的常量。方法可能包括toEuros,toPesos等实用程序,它们以相应的货币返回美元字段。

客户申请:

开发Java应用程序以将美元转换为所需的货币。最终用户应提供美元金额并指明要转换的货币。客户端应用程序应调用适当的方法以获得所需货币的等效性。在显示器上显示美元金额和它的等价物。您可以使用Scanner或JOptionPane类来获取用户输入。使用Scanner类运行的示例如下所示:

输入美元金额:5:00

输入要转换为

的货币

(1)欧元,(2)英镑,(3)塔卡,(4)日元,(5)卢比:

5.0美元= 3.845欧元

您可以使用任何方法来指示所需的货币。但是,最终用户必须明确说明。

这是我的服务类

public class CurrencyExchange
{
   private double dollar;
    private double euro, pound, taka, yen, rupees;
    private double currency;

    private static final double EURO = 0.7650;
    private static final double POUND = 0.6370;
    private static final double TAKA = 79.0000;
    private static final double YEN = 78.0000;
    private static final double RUPEES = 52.2500;

    public CurrencyExchange()
    {
       dollar = 0;
    }

    public CurrencyExchange(double dollars)
    {
       dollar = dollars; 
    }

    public void setEuro (double dollars)
    {
       euro = dollars * EURO;
    }

    public double getEuro()
    {
       return euro;
    }

    public void setPound (double dollars)
    {
       pound = dollars * POUND;
    }

    public double getPound()
    {
       return pound;
    }

    public void setTaka (double dollars)
    {
       taka = dollars * TAKA;
    }

    public double getTaka()
    {
       return taka;
    }

    public void setYen  (double dollars)
    {
       yen = dollars * YEN;
    }

    public double getYen()
    {
       return yen;
    }

    public void setRupees (double dollars)
    {
       rupees = dollars * RUPEES;
    }

    public double getRupees()
    {
       return rupees;
    }

    public double getCurrency()
    {
       return currency;
    }

}

这是我的客户端类

import java.util.Scanner;

public class CurrencyExchangeClient
{
   public static void main(String[] args)
    {
       Scanner in = new Scanner(System.in);


        System.out.print("Enter a dollar amount: ");
        double dollars = in.nextDouble();

        System.out.println("Enter the currency to convert to (1) euro, (2) pound, (3) taka, (4) yen, (5) rupees : ");
        int response = scan.nextInt;


        if (response == 1 || response == 2 || response == 3  || response == 4 || response == 5)
        dollars = scan.nextDouble();

        switch (response)
        {
           case 1: getEuro();
                    break;
            case 2: getPound();
                    break;
            case 3: getTaka();
                    break;
            case 4: getYen();
                    break;
            case 5: getRupees();
                    break;
            default: System.out.println("Invalid Response");
        }

        System.out.println(getCurrency());



    }
}

每当我使用JGrasp编译程序时,它一直给我一个缺少符号的错误,我不知道为什么。它应该看起来像示例应用程序。

此外还需要toEuro(方法),我是否必须删除私有类中的常量,并将其设置为accessor / mutator方法,如果这对程序有帮助的话。

CurrencyExchangeClient.java:14: error: cannot find symbol
        int response = scan.nextInt;
                       ^
  symbol:   variable scan
  location: class CurrencyExchangeClient

CurrencyExchangeClient.java:30: error: cannot find symbol
            case 5: getRupees();
                    ^
  symbol:   method getRupees()
  location: class CurrencyExchangeClient

这只是几个例子。

2 个答案:

答案 0 :(得分:2)

存在语法错误和逻辑错误。

你应该这样做......

import java.util.Scanner;

public class CurrencyExchangeClient
{
   public static void main(String[] args)
    {
       Scanner scan = new Scanner(System.in); // you shod use this scanner object for getting inputs


        System.out.print("Enter a dollar amount: ");
        double dollars = scan.nextDouble(); 

        System.out.println("Enter the currency to convert to (1) euro, (2) pound, (3) taka, (4) yen, (5) rupees : ");
        int response = scan.nextInt();

        // ...
        CurrencyExchange currencyExchange = new CurrencyExchange(dollars);

        switch (response)
        {
           case 1: // modified here to get the exact results as you need.
               currencyExchange.setEuro(dollars); // this will convert the entered dollar into euros
               System.out.println(currencyExchange.getEuro());// this will display the result
               break;
           //...change all other cases accordingly
        }

    }
}

我建议你像IDE一样使用eclipse,它会在你写的时候引导你。阅读更多java书籍。

祝你好运。

答案 1 :(得分:1)

第一个错误

CurrencyExchangeClient.java:14: error: cannot find symbol
    int response = scan.nextInt;

是因为你声明要调用你的扫描程序,所以当你尝试使用一个名为“scan”的东西时,编译器现在不是你的意思。

第二个错误是因为您的类没有任何 getRupees()方法。也许你想创建一个 CurrencyExcange 并使用它?

CurrencyExchange currencyExchange = new CurrencyExchange();

....

currencyExchange.getRupees();

作为建议,尝试一次一步,而不是一次性编写整个程序。当你通过一个而不是一堆一个接触它们时,处理和理解错误要容易得多。