此作业的目的是创建一个程序,使用文本文件中的数据显示每个学生的平均成绩。我遵循了我的教授指导方针,但我仍然认为我缺少某些东西或者为数组列表做错了什么,以及其中一种无效方法。这些是指导方针:
创建一个名为Student的类,如下所示。班级跟踪 学生的作业成绩。
一个。实例(或成员)私有变量 - 名称(String),homeworks (整数ArrayList)。
湾一个构造函数,其名称作为参数。另外,初始化 homeworks arraylist。
℃。公共get和set方法变量的方法。
d。一个void addHomeworkGrade方法,它接受一个参数 - 新的作业成绩。
即一个不带参数的公共computeAverage方法 返回一个双倍显示平均作业等级 学生。
F。重写toString方法以返回此字符串表示形式 对象的格式为“平均成绩为”。
下面插入的代码来自我的Student类,我还有另一个名为Test的类,它包含文件阅读器和缓冲区阅读器来读取文本文件。有人可以帮我验证这段代码是否正确,尤其是创建和初始化数组以及void addHomeworkGrade方法。提前谢谢。
import java.text.DecimalFormat;
import java.util.ArrayList;
public class Student {
// Declare the variables
private String name;
private int homework1;
private int homework2;
private int homework3;
private int homework4;
private int homework5;
private int homework6;
// Constructor
public Student(String name) {
this.name = name;
}
//Create and initialize homeworks array list
ArrayList<Integer> homeworkList = new ArrayList<Integer>();
// setter or mutator methods change the field values
public void setName(String x) {
}
// Accessor or getter methods provide the field values
public String getName() {
return name;
}
//A void addHomeworkGrade with one argument - to get homework grade
public String addHomeworkGrade() {
DecimalFormat pattern = new DecimalFormat("0.00");
double homeworkGrade;
homeworkGrade = (homework1 + homework2 + homework3 + homework4 + homework5 + homework6);
return pattern.format(homeworkGrade);
}
// other methods perform operations on Employee data
public String computeAverage() {
DecimalFormat pattern = new DecimalFormat("0.00");
double average;
average = ((homework1 + homework2 + homework3 + homework4 + homework5 + homework6) / 6.00);
return pattern.format(average);
}
// Override the toString method to return the string representation
public String toString() {
return (getName() + "'s average grade is " + computeAverage());
}
}
答案 0 :(得分:1)
您需要做的是,只有列表,而不是单个变量。然后你的方法'addHomeworkGrade'需要接受一个整数,将它添加到列表中,它不需要返回任何东西。然后在'computeAverage'中,将所有值从列表中添加到一起,除以其长度,然后返回它。这有意义吗?如果你愿意,我可以提供代码片段(但不想为你写整篇文章)。