事先:这是一项家庭作业,所以我需要答案和解释。
我是一年级的学生,我的老师在教学时非常模糊
我需要一些帮助,以了解如何在他的说明中使用ArrayList。
**我只需要帮助了解所有操作方式即可。我正在编写代码,但我不知道它是如何工作的。
文本用户界面应该用我尚未完成的另一个类编写。**
我的指示是:
成绩管理员
首先开发一个描述GradeManager的类。由于本练习的内容远不止是编写交互式应用程序,因此我们将使此类保持简单。我们的GradeManager只会跟踪分数列表,并定义以下方法:
一个唯一的接受参数的构造函数,但是设置了ArrayList
有能力得分
一种称为addScore的方法将接受分数并将其添加到ArrayList中
一种称为getAverage的方法将返回ArrayList中所有分数的平均值
成绩等级
该类将作为实例变量跟踪GradeManager对象。您需要写一个
接受将要使用的GradeManager对象的构造函数。
此类还将包含一种名为run的方法。该方法将使用户具有以下任一能力(1)
输入要存储的分数(存储在GradeManager对象中)或(2)显示输入的所有分数的平均值
至今。选择完成后,选择其中一个选项,允许用户继续执行此程序。
驾驶员等级
一旦满足这些类的定义并正常工作,就可以开发驱动程序类
包含将创建GradeManager实例的主要方法,将该对象传递给
GradeTUI构造函数,然后使用GradeeTUI对象调用运行。
这是我写的:
public class GradeManager {
private ArrayList<Integer> gradeList;
public GradeManager() {
ArrayList<Integer> gradeList = new ArrayList<Integer>();
this.gradeList = gradeList;
}
public void addScore(int score) {
this.gradeList.add(score);
}
public double getAverage(ArrayList<Integer> gradeList) {
Integer aScore = 0;
if (!gradeList.isEmpty()) {
for (Integer grade : gradeList) {
aScore += grade;
}
return aScore.doubleValue() / gradeList.size();
}
return aScore;
}
}
最佳答案
首先:我认为getAverage方法应该使用内部ArrayList而不是参数。
否则,您对该列表内容没有任何读取权限。
您可以通过以下方式使用GradeManager:
GradeManager manager = new GradeManager();
while(condition) {
int score = readScoreFromInput();
manager.addScore(score);
}
double averageScore = manager.getAverage();
print(averageScore);
这样就得到了您刚刚输入的所有分数的平均值。
循环(和退出条件)的具体实现取决于您-可以是预定义的迭代次数,也可以是特殊输入,例如
-1
。