事先:这是一项家庭作业,所以我需要答案和解释。
我是一年级的学生,我的老师在教学时非常模糊
我需要一些帮助,以了解如何在他的说明中使用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

07-27 18:59