如何使用随机数生成器计算成绩?

时间:2013-12-02 19:59:17

标签: java

我目前正在重新解决我在测验中遗漏的一个问题,该问题要求我为Student类定义和使用构造函数,而不是使用默认构造函数。在GradeCalculator类中,我需要使用随机数生成器生成中期和最终成绩。我查看了本书提供的类似示例,但我仍然无法弄清楚为什么我的程序不断出错。有人能给我一些提示还是指向正确的方向?任何帮助将不胜感激!!

public class Student {
private int midterm;
private int finalExam;

public double getMidterm()
{
return midterm;
}
public double getFinalExam()
{
return finalExam;
}
public double getFinalGrade()
{
return midterm * 0.35 + finalExam * 0.65;
}

public void showGrades()
{
System.out.print("Student : ");
System.out.printf(", Midterm is: %.2f. Final Exam is: %.2f. Final Grade is: %.2f \n",    midterm, finalExam, getFinalGrade());
}

}

import java.util.Random;

public class GradeCalculator {
public static void main(String[] args)
{

int sum;
Student[] studentArray = new Student[3];

for (int index = 0; index < studentArray.length; index++)
{
Student s = new Student();

System.out.print("Student" + (index+1) + ": " );
Random midterm = new Random();
System.out.print(", Midterm is: " + midterm.nextInt(100));
Random finalExam = new Random();
System.out.print(", Final exam is: " + finalExam.nextInt(100));
sum = midterm + finalExam;
System.out.println(", Final Grade is: " + sum);

studentArray[index] = s;

}

for(int i = 0; i < studentArray.length; i++)
{
Student s = studentArray[i];
s.showGrades(); 
}

double sum = 0.0;
double averageGrade;
for(int i = 0; i < studentArray.length; i++)
{
double finalGrades = studentArray[i].getFinalGrade();
sum = sum + finalGrades;
}
averageGrade = sum / studentArray.length; 
System.out.printf("The average final grade is: %.2f", averageGrade);

}
}

这是实际问题:

  1. 学生班   属性 创建一个包含2个属性(实例变量)的Student类 ◦中期(int) ◦missExam(int)

    方法 为每个属性定义getter。因此,您必须总共创建2个getter。 定义一个方法getFinalGrade,它根据以下评分方案计算最终成绩。计算完毕后,返回最终成绩的结果。 ◦评分: ▪期中:35% ▪期末考试:65% 定义一个方法showGrades,它输出属性的细节。等级应显示为只有两位小数的数字。 (见例子) ◦输出示例:“学生[1],中期:90.00,期末考试:80.00,最终成绩:82.00”

  2. GradeCalculator类 创建一个GradeCalculator类并将所有内容(下面的步骤1到步骤4)放在main方法中。 第1步:创建一个名为studentArray的Student数组,其长度为3。 第2步:使用循环创建3个Student对象。使用随机数生成器生成0到100(包括0和100)的数字,以生成学生的期中成绩和期末成绩。将它们存储在相应的属性中设置完所有值后,将新创建的Student对象存储到studentArray。 第3步:循环studentArray,通过调用showGrades打印出每个学生的详细信息。 第4步:计算这3名学生的平均最终成绩,并在屏幕上打印出来。等级应显示为只有两位小数的数字。 输出示例:“平均最终成绩为:85.35”

1 个答案:

答案 0 :(得分:1)

要问的是能够编写看起来像

的代码
Student s = new Student(midTermScore, finalExamScore);

您可以通过编写使用给定值初始化对象(此处为s)的构造函数来实现此目的。

oracle网站在解释概念方面做得不错。 http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html