我正在为班上的学生随机生成GPA。在应用程序中,我重复了8次步骤,总共有8个不同的GPA。在我的印刷声明的结尾,我想计算所有8个GPA的总数。我只希望它打印一次。在课堂上或在应用程序中,我应该在哪里找到平均值的步骤?
在代码中,我尝试在多个区域中查找平均值,但未正确打印出来。我只是将它们记为笔记。
(在公共静态空间中)
for(int i = 1; i < 9; i++ )
{
//System.out.println(sd.getInfo());
System.out.println("Semester " + i + " - " + sd.semesterGPA());
System.out.println();
}
System.out.println(sd.averageGPA());
}
(这是在公开课上的学生)
String semesterGPA()
{
for(int i = 0; i < 1; i++)
{
gpa = Math.random();
myRandomNumber = (gpa * 4.1 );
//String strDouble = String.format("%.2f", myRandomNumber);
//average = (i/8);
//System.out.println(firstName + "'s average GPA is " + average);
}
return firstName + "'s GPA is " + String.format("%.2f", myRandomNumber);
//System.out.println(firstName + "'s average GPA is " + average);
}
String averageGPA()
{
// double gpa = sum / count;
return firstName + "'s average GPA is ";
}
答案 0 :(得分:0)
我尝试使用Java-8
DoubleSummaryStatistics statistic = IntStream.range(0, 8)
.boxed() //int to Integer
.collect(Collectors.summarizingDouble(i -> Math.random() * 4.1)); //collect to statistic
System.out.println(statistic.getAverage());
您将从Math.random()*4.1
的8个结果中获得平均值
答案 1 :(得分:0)
假设您有一个GPA列表,请在Java 8中使用以下代码查找平均值
List<Double> gpas = Arrays.asList(1.0,2.0,3.0,4.0);
double average = gpas.stream()
.collect(Collectors.averagingDouble(value -> value.doubleValue()));
System.out.println(average);
答案 2 :(得分:0)
您可以使用静态变量来跟踪所有GPA(在Student类内部),然后最终将其返回。
class Student{
static double total;
String semesterGPA(){
.
.
//just add the GPA to the total before return statement
total += myRandomNumber;
//return statement
}
String averageGPA()
{
double averageGPA = total / 9;
//return statement including averageGPA
}
}