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

如何在Eclipse的Java程序中为每个输入学科创建独立成绩列表

问题描述

我希望打印出包含以下信息的列表:

学科成绩列表平均分
学科1成绩1, 成绩2, 成绩3学科1平均分
学科2成绩1, 成绩2, 成绩3学科2平均分

现在的问题是我只创建了一个成绩列表,不知道怎么给每个学科单独创建成绩列表。我尝试了如下代码:

package graduation;

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

public class GraduationGrade {

    public static void main(String[] args) {
        List<String> disciplines = new ArrayList<>();
        List<Integer> disciplineGrades = new ArrayList<>();
        List<Integer> disciplineAverage = new ArrayList<>();
        int i = 0;

        while (true) {
            System.out.println("请输入学科名称,或输入EXIT退出");
            Scanner sc = new Scanner(System.in);
            String discipline = sc.next();

            if (discipline.equals("EXIT")) {
                System.out.println("    学科      成绩          平均分 ");
                for (int j = 0; j < disciplines.size(); j++) {
                    System.out.println((j + 1) + "      " + disciplines.get(j) + "       " + disciplineGrades.get(j) + "         " + disciplineAverage.get(j));
                }
                break;
            } else {
                System.out.println("请输入你在" + discipline + "这门学科的成绩数量");
                sc = new Scanner(System.in);
                int gradeNumbers = sc.nextInt();

                do {
                    System.out.println("请逐个输入你在" + discipline + "的成绩(范围4到10)");
                    sc = new Scanner(System.in);
                    int grades = sc.nextInt();

                    int sum = disciplineGrades.stream().mapToInt(Integer::intValue).sum();
                    int average = sum / gradeNumbers;

                    disciplines.add(discipline);
                    disciplineGrades.add(grades);
                    disciplineAverage.add(average);
                    i++;

                } while (i < gradeNumbers);
            }
        }
    }
}

运行程序后得到如下结果:

请输入学科名称,或输入EXIT退出
数学
请输入你在数学这门学科的成绩数量
4
请逐个输入你在数学的成绩(范围4到10)
4
请逐个输入你在数学的成绩(范围4到10)
5
请逐个输入你在数学的成绩(范围4到10)
6
请逐个输入你在数学的成绩(范围4到10)
7
请输入学科名称,或输入EXIT退出
生物
请输入你在生物这门学科的成绩数量
10
请逐个输入你在生物的成绩(范围4到10)
8
请逐个输入你在生物的成绩(范围4到10)
6
请逐个输入你在生物的成绩(范围4到10)
7
请逐个输入你在生物的成绩(范围4到10)
5
请逐个输入你在生物的成绩(范围4到10)
4
请逐个输入你在生物的成绩(范围4到10)
6
请输入学科名称,或输入EXIT退出
EXIT
    学科      成绩          平均分 
1       数学         4      0
2       数学         5      1
3       数学         6      2
4       数学         7      3
5       生物      8      2
6       生物      6      3
7       生物      7      3
8       生物      5      4
9       生物      4      4
10      生物      6      5

当前程序会重复添加学科名称,平均分计算也不正确,需要实现每个学科对应独立的成绩列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:05:00