存储输入数据

时间:2016-05-27 02:48:49

标签: java int joptionpane

任何人都可以帮助我吗?我已经使用Java编译并成功运行了一个程序,该程序从" inputdialog"中获取用户输入。框,并在控制台中显示此信息以及简单的数学公式。我似乎无法克服的问题是,当输入数据时,用户可以选择输入相同数据类型的另一组,但我需要控制台将其注册为第二个输入。这是我目前对代码部分以及如何使用数组进行此工作的想法,但我已被告知将数据保存/存储为对象可能是更好的选择?

private void enterCar()
    {
     String carInfo;
     int carHours;
     int i = 0;
     int[] carNumb = new int[20];
     double fee = Double.parseDouble("7.50");
     double sum = 0;
     final int MAX = 12;
    {

        carInfo = JOptionPane.showInputDialog("Please enter the license plate of the car");
        carHours = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of hours the car was parked (1-12):"));

            System.out.printf("\n");
            System.out.printf("Details for car "+carNumb+" entered:\n");
            System.out.printf("License plate   Hours      Fee:\n");
            System.out.printf(""+carInfo+"           "+carHours+"         $");
                    if (carHours == 1)
                        System.out.printf("%3.2f",fee*(carHours));
                    else if (carNum == 2)
                        System.out.printf("%3.2f",fee+4.50);
                    else if (carHours >= 3)
                        System.out.printf("%3.2f",3+(carHours*4.50));
            System.out.printf("\n\n");

    }
}

当我编译并运行控制台时,我得到了行"汽车详情[I @ 6659c656输入"。这条线确实改变为" [I @ 7665c575"下次我激活选项时,我可以假设我可能需要以不同的方式为数字赋值?

我尝试过在提供的代码中显示的选项以及尝试使用(1,2,3,ect)激活列表,但这也只是输出随机的数字和字母行。

我想简化我的问题。我需要存储来自' InputDialog'框并存储它以便以后在控制台中访问。

1 个答案:

答案 0 :(得分:0)

  

我需要存储来自InputDialog框的20个单独输入并存储它以便以后在控制台中访问。

使用for等循环。

  

然后将该信息存储为"输入汽车1的详细信息:"然后显示信息。

正如我之前所说,你应该使用数组的索引而不是数组。因为数组是从零开始的索引,所以我使用carNumb[i] + 1打印出订单。

然后计算费用并存储到carNumb数组。

请注意,您的feedouble类型=> carNumb应为double类型以存储正确的值。

完整代码:

public void enterCar() {
  String carInfo;
  int carHours;
  int i = 0;
  double[] carNumb = new double[20];
  double fee = Double.parseDouble("7.50");
  double sum = 0;
  final int MAX = 12;

  for (; i < carNumb.length; i++) {
    carInfo = JOptionPane.showInputDialog("Please enter the license plate of the car");
    carHours = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of hours the car was parked (1-12):"));
    System.out.printf("\n");
    System.out.printf("Details for car " + (carNumb[i] + 1) + " entered:\n");
    System.out.printf("License plate   Hours      Fee:\n");
    System.out.printf("" + carInfo + "           " + carHours + "         $");
    carNumb[i] = getFee(fee, carHours);
    System.out.printf("%3.2f", carNumb[i]);
    System.out.printf("\n\n");
  }
}

private double getFee(double fee, int hours) {
  if (hours == 1) {
    return fee;
  }
  if (hours == 2) {
    return fee + 4.5;
  }
  if (hours >= 3) {
    return 3 + hours * 4.5;
  }
  return 0;
}

我明白了吗?