将数据放入阵列的问题

时间:2019-05-02 03:37:02

标签: java arrays user-interface

因此,对于此程序,均值和中位数应该被计算并显​​示,但是我认为输入的数据不会放入数组中,因为它可以正常运行但不会显示我输入的任何数据

public static double Mean(double[] gradeArray, int numGrades) {
    double totalArray = 0.0;
    double mean;
    for (int i = 0; i < numGrades; i++) {
        totalArray = gradeArray[i] + totalArray;
    }

    mean = totalArray / numGrades;
    return mean;
}

public static double Median(double[] gradeArray, int numGrades) {
    double median;
    Arrays.sort(gradeArray, 0, numGrades);
    if (numGrades % 2 == 0) {
        median = ((gradeArray[(numGrades / 2)] + gradeArray[(numGrades / 2 + 1)]) / 2);
    } else {
        median = gradeArray[(numGrades / 2)];
    }
    return median;
}
   private void Enter_Grades_ButtonActionPerformed(java.awt.event.ActionEvent evt) {
    double[] totalArray = new double[25];
    String text_box_input_str = null;
    double text_box_input_num = 0;
    int numGrades = 0;
    String num_grades_str;
    DecimalFormat df = new DecimalFormat("#0.0##");

    do {
        try {
            text_box_input_str = JOptionPane.showInputDialog(null, "Enter Item Price", "Enter Price", JOptionPane.PLAIN_MESSAGE);
            if (text_box_input_str == null || text_box_input_str.isEmpty()) {
                return;
            }
            if (text_box_input_num > 0) {
                double[] gradeArray = null;
                gradeArray[numGrades] = text_box_input_num;
                numGrades++;
                num_grades_str = Integer.toString(numGrades);
                num_grades_text.setText(num_grades_str);
                Mean_Text.setText(df.format(Mean(gradeArray, numGrades)));
                Median_Text.setText(df.format(Median(gradeArray, numGrades)));
            }
        } catch (NumberFormatException e) {
            System.out.println("NumberFormatException caught");
            JOptionPane.showMessageDialog(null, "You Must Input numeric data!", "Bad Data!", JOptionPane.ERROR_MESSAGE);
        }

    } while (text_box_input_str != null && !text_box_input_str.isEmpty());


}                                                  

我希望程序计算输入的数据,然后计算平均值和中位数,然后显示总计

2 个答案:

答案 0 :(得分:0)

好像text_box_input_num设置为0,从不更新,但是如果它大于0,则进行if检查。

答案 1 :(得分:0)

除了直接指出您的代码存在的问题外,我还会提供一些有关如何自行查找代码的指示。

  1. 将您的代码分解为较小的部分
  2. 针对每个部分,编写方法和测试,以证明该方法符合您的期望
  3. 在各个部分正常工作后,编写使用它们的方法(和测试)。

您将最终得到几种名称为getValueshasValueprintErrorcheckValidValueshowMedian等的方法,所有这些方法都可以准确地完成你想要什么。

我保证,如果您这样做,很快就会很清楚哪里出了问题。