【发布时间】:2016-11-02 19:03:49
【问题描述】:
我有一个二维对象数组,其中填充了学生姓名和成绩。每个学生都有自己的行,第一列包含学生姓名,然后接下来的 4 列包含考试成绩。我需要找到每个学生测试的平均值,但我不知道如何平均每行的双精度值。我还需要找到数据库中所有测试的平均值。有人可以告诉我如何做到这一点吗?
public class StudentGrades extends javax.swing.JFrame {
Object[][] database = new Object[14][5];
int studentCount = 0;
...
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
//declare variables
double grade1 = Double.parseDouble(test1.getText());
double grade2 = Double.parseDouble(test2.getText());
double grade3 = Double.parseDouble(test3.getText());
double grade4 = Double.parseDouble(test4.getText());
String name = firstInput.getText() + " " + lastInput.getText() + ":";
if (grade1 >= 0 & grade1 <= 100 & grade2 >= 0 & grade2 <= 100 & grade3 >= 0 & grade3 <= 100 & grade4 >= 0 & grade4 <= 100){
//add data
database[studentCount][0] = name;
database[studentCount][1] = grade1;
database[studentCount][2] = grade2;
database[studentCount][3] = grade3;
database[studentCount][4] = grade4;
//add to student count
studentCount = studentCount + 1;
//limit number of students
if (studentCount == 15){
addButton.setEnabled(false);
}
}
else {
errorLabel.setText("Please Enter Valid Data.");
}
【问题讨论】:
-
您是否需要使用数组数组?或者这就是你选择解决这个问题的方式?如果您可以选择设计,您可能需要考虑创建一个包含姓名和成绩列表的 Student 类。
-
不要使用这种数据结构。使用带有字符串键和
List<Integer>值的地图之类的东西。此外,您可能对 Java 8 Stream API 中包含的归约函数感兴趣。 -
1.您不应该为此使用
Object[][] database。 2. 你是如何计算平均值的? -
为此使用对象。双值数组不是存储数据的好方法,这些数据应该表示为带有成绩列表的学生对象。这样做会使阅读变得更加困难。
-
本程序要求我使用二维数组。
标签: java arrays multidimensional-array average