货币兑换类:
开发一种货币,将美元兑换为您选择的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
这只是几个例子。
答案 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();
作为建议,尝试一次一步,而不是一次性编写整个程序。当你通过一个而不是一堆一个接触它们时,处理和理解错误要容易得多。