JAVA花卉专柜计划

时间:2012-07-11 19:18:28

标签: java

我必须编写一个使用2个数组的程序。第一个数组存储5个花名,第2个数据存储每个花的价格。

用户将输入什么样的花和多少以及程序将输出成本。我无法以特定的成本输出特定花的相关成本。

我想使用5个if语句,但是花字符串有问题。有什么建议吗?

到目前为止,这是我的代码:

import java.util.Scanner;

public class FlowerCounter
{
    public static void main(String[] args)
    {

        String[] flowers = new String[5];
        double[] price = {.50, .75, 1.50, .50, .80};

        Scanner keyboard = new Scanner(System.in);
        System.out.println("What kind of flower would you " +
            "like to purchase? \nPetunia, Pansy, Rose," +
            " Violet, or Carnation?");

        String index = keyboard.nextLine();
        System.out.println("How many " + index +"s" + " would you like?");
        int count = keyboard.nextInt();

        double total = count * price.length;
        System.out.println("The cost for " + count  +  index  + " is " + total);             
    }        
}

5 个答案:

答案 0 :(得分:0)

根据您将值放入价格数组的方式,您必须按顺序放置花。

迭代鲜花的名称,当您找到与输入相匹配的花的特定索引时(记住:.equals()而不是==),返回该花的价格该指数的使用。

答案 1 :(得分:0)

我认为类似于Map<String, Double> flowers = new HashMap<String, Double>();,然后可以很容易地与flowers.get(index)核对以获得它的价值。

也值得检查以确保他们输入了有效的花卉名称。

Documentation for HashMap

The Map page in the tutorial

答案 2 :(得分:0)

我的第一个建议是使用鲜花的名称初始化flowers数组。

您可以为每个人手动执行此操作(例如flowers[0] = "Petunia";),或者您可以像在一个步骤中执行价格数组一样(例如String[] flowers = {"Petunia", "Pansy","Rose","Violet","Carnation"};)。

然后你需要找到flowers数组的哪个索引包含用户输入的花名。循环遍历flowers数组的每个索引,直到匹配(确保使用index.equals(flowers[testIndex]),而不是==运算符。)

最后将输入花卉名称的索引处的价格乘以得到总成本。

答案 3 :(得分:0)

您只是使用索引,而不是数组。

要访问花名,您必须使用如下的阵列花:

flower[index]

并获取价格:

price[index]

'index'是int而不是String。如果必须找到给定花的索引(位置),则必须迭代所有数组,直到找到它为止。

您可能想要使用地图而不是2个数组: http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html

使用地图,您可以使用花卉名称作为关键来访问花卉价格。 只需声明Map<String, Double> prices = new HashMap<String, Double>();

即可

答案 4 :(得分:-3)

import java.util.Scanner;


public class FlowerCounter {
public static void main(String[] args)
{
   String[] flowers = {"Petunia", "Pansy", "Rose", "Violet", "Carnation"};
   double[] price = {.50, .75, 1.50, .50, .80};
   double cost = 0;

   Scanner keyboard = new Scanner(System.in);
   System.out.println("What kind of flower would you " +
                          "like to purchase? \nPetunia, Pansy, Rose," +
                          " Violet, or Carnation?");

   String index = keyboard.nextLine();

   System.out.println("How many " + index +"s" + " would you like?");
   int count = keyboard.nextInt();

  if (index.equals("Petunia") || index.equals("petunia"))
       cost = (double)price[0] * count;
   else if (index.equals("Pansy") || index.equals("pansy"))
       cost = (double)price[1] * count;
   else if (index.equals("Rose") || index.equals("rose"))
       cost = (double)price[2] * count;
   else if (index.equals("Violet") || index.equals("violet"))
       cost = (double)price[3] * count;
   else if (index.equals("Carnation") || index.equals("carnation"))
       cost = (double)price[4] * count;
   else 
       System.out.println("wrong flower");

   System.out.println("The cost for " + count+ " "  +  index  + " is " + cost);            
}

}