Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计算平均值?_Java_Algorithm_Data Structures - Fatal编程技术网

Java 计算平均值?

Java 计算平均值?,java,algorithm,data-structures,Java,Algorithm,Data Structures,我对这个问题有疑问: 给出测试结果列表(每个都有测试日期、学生ID和学生分数);返回每个学生的最终分数。学生的最终分数是他/她5个最高考试分数的平均值。你可以假设每个学生至少有5个考试分数 现在,事情是这样的。我不想要答案 我尝试过散列,但散列可以提供带有地址的密钥,所以它对我不起作用 我曾想过使用数组列表和迭代思想来计算平均值并返回前五名分数,但是如何使用studentID分配数字呢 假设我希望输出为:Mike,15岁。这不是问题所要求的吗? 获取学生ID和平均人数。 请帮我找出一些线索,我正

我对这个问题有疑问:

给出测试结果列表(每个都有测试日期、学生ID和学生分数);返回每个学生的最终分数。学生的最终分数是他/她5个最高考试分数的平均值。你可以假设每个学生至少有5个考试分数

现在,事情是这样的。我不想要答案

我尝试过散列,但散列可以提供带有地址的密钥,所以它对我不起作用

我曾想过使用数组列表和迭代思想来计算平均值并返回前五名分数,但是如何使用studentID分配数字呢

假设我希望输出为:Mike,15岁。这不是问题所要求的吗? 获取学生ID和平均人数。
请帮我找出一些线索,我正在学习

只需按学生ID(作为主要排序键)和递减分数(次要排序键)对测试结果进行排序,然后按如下方式进行收集(伪代码):

因为数据是经过排序的,所以您知道给定学生的所有分数都在一起,并且前五名得分最高。因此,上面的代码将允许您完成所有工作


记住,这取决于你的“每个学生至少有五个成绩”规则。否则,您将不得不更改平均计算代码,并可能对最后一个学员进行一些后期工作循环。

使用面向对象的原则。这里有一些提示。 创建一个测试类来表示每个测试

class Test
{
  Date date;
  Student s;          //store instance of student- has a relationship to Student
  double[] scores;     //store test scores
  double finalscore;  //final score
  Test() {
  //Initialize scores array and assign default values (0)
  }
}
创建一个学生类来代表每个学生

class Student
{
  String name;
  int id;
}
创建测试的数组列表

List<Test> tests = new ArrayList<Test>();
List tests=new ArrayList();

现在只需循环测试并找到要存储在finalscore中的平均值。

您可以通过将所有
Test
属性移动到
Student
类中并删除不相关的数据,如
Date
finalscore
来增强设计。
List<Test> tests = new ArrayList<Test>();