【问题标题】:Problem with getting data to go into an array将数据放入数组的问题
【发布时间】:2019-09-20 13:21:18
【问题描述】:

所以对于这个程序,平均值和中位数应该计算并显示,但我不认为我输入的数据被放入数组中,因为它运行没有错误但不显示我放入的任何数据.

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());


}                                                  

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

【问题讨论】:

    标签: java arrays user-interface


    【解决方案1】:

    看起来 text_box_input_num 设置为 0,从未更新,但是有一个 if 检查它是否 > 0

    【讨论】:

      【解决方案2】:

      与其直接指出你的代码的问题,我会给出一些关于如何自己找到它的指示。

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

      您最终会得到几个名称,例如 getValueshasValueprintErrorcheckValidValueshowMedian 等。所有这些都完全符合您的要求。

      我保证,如果你这样做,很快就会很清楚出了什么问题。

      【讨论】:

        猜你喜欢
        • 2011-09-06
        • 1970-01-01
        • 2023-03-16
        • 2016-02-05
        • 2015-08-21
        • 1970-01-01
        • 2017-08-11
        • 2021-12-20
        • 1970-01-01
        相关资源
        最近更新 更多