You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建考试成绩平均值类及代码功能异常排查咨询

解决考试成绩统计问题:支持多成绩存储与平均值计算

嘿,我来帮你搞定这个问题!你遇到的核心问题是之前的实现只用了单个变量存储成绩,导致新输入的分数会覆盖旧数据,还没法统计考试次数。咱们换个思路,用集合来保存所有成绩,就能轻松满足需求啦。

1. 创建支持多成绩的TestScoreAverage类

这个类会用动态列表存储所有考试成绩,同时提供添加成绩、统计考试次数、计算平均值的方法:

import java.util.ArrayList;
import java.util.List;

public class TestScoreAverage {
    // 用ArrayList存储所有成绩,支持不限数量的输入
    private List<Double> scores;

    // 构造方法初始化成绩列表
    public TestScoreAverage() {
        scores = new ArrayList<>();
    }

    // 添加单个成绩的方法
    public void addScore(double score) {
        scores.add(score);
    }

    // 获取考试次数(直接返回成绩的数量)
    public int getExamCount() {
        return scores.size();
    }

    // 计算成绩平均值,处理无成绩的边界情况
    public double getAverage() {
        if (scores.isEmpty()) {
            return 0.0; // 也可以根据需求抛出异常,这里返回0更友好
        }
        double total = 0.0;
        for (double score : scores) {
            total += score;
        }
        return total / scores.size();
    }
}

2. 配合不可修改的TestScoresDemo使用

假设教师提供的TestScoresDemo是用来处理用户输入的,现在只需要在Demo里实例化TestScoreAverage,调用它的方法就能完成多成绩统计。比如模拟Demo的使用逻辑:

import java.util.Scanner;

public class TestScoresDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        TestScoreAverage scoreAverage = new TestScoreAverage();

        // 循环读取成绩,直到用户输入-1结束
        System.out.println("请输入考试成绩(输入-1结束):");
        while (true) {
            double score = scanner.nextDouble();
            if (score == -1) {
                break;
            }
            scoreAverage.addScore(score);
        }

        // 输出统计结果
        System.out.println("一共进行了 " + scoreAverage.getExamCount() + " 次考试");
        System.out.printf("成绩平均值为:%.2f", scoreAverage.getAverage());
        
        scanner.close();
    }
}

关键逻辑说明

  • ArrayList动态存储:它能自动扩容,完美支持不限数量的成绩输入,不会丢失任何历史分数。
  • 考试次数统计:直接返回列表的大小,不用额外维护计数器变量,简洁又准确。
  • 平均值计算:遍历列表求和再除以成绩数量,同时处理了没有成绩的边界场景,避免运行时错误。

这样修改后,你的代码就能完整保存所有输入的成绩,准确统计考试次数,并且计算出正确的平均值啦!

内容的提问来源于stack exchange,提问作者Gerry Leon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:29:20