Java如何输入学生各科成绩

Java如何输入学生各科成绩

作者:Joshua Lee发布时间:2026-02-13阅读时长:0 分钟阅读次数:2

用户关注问题

Q
如何使用Java代码读取学生的各科成绩?

我想通过Java编程实现输入学生的多门科目成绩,应该如何实现?是否有简单的示例代码?

A

使用Scanner类读取学生成绩示例

可以使用Java中的Scanner类从控制台接收用户输入。先创建Scanner对象,然后通过nextInt()或者nextDouble()方法读取学生的各科成绩。示例代码如下:

import java.util.Scanner;

public class StudentScores {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入语文成绩:");
        int chinese = scanner.nextInt();
        System.out.println("请输入数学成绩:");
        int math = scanner.nextInt();
        System.out.println("请输入英语成绩:");
        int english = scanner.nextInt();
        
        System.out.println("输入成绩为:语文 " + chinese + ", 数学 " + math + ", 英语 " + english);
        scanner.close();
    }
}
Q
如何实现批量输入多个学生的成绩?

我需要在Java程序中一次性输入多名学生的多门成绩,怎么设计输入方式更方便?

A

使用循环结合Scanner实现批量输入

可以利用循环结构让用户多次输入数据,例如先输入学生人数,再依次输入每位学生的姓名和各科成绩。通过数组或集合存储完成批量输入。代码示例:

import java.util.Scanner;

public class MultipleStudentsScores {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学生人数:");
        int n = scanner.nextInt();
        String[] names = new String[n];
        int[][] scores = new int[n][3]; // 假设3门课程
        
        for(int i=0; i<n; i++) {
            System.out.println("请输入第 " + (i+1) + " 个学生的姓名:");
            names[i] = scanner.next();
            System.out.println("请输入语文、数学、英语成绩,用空格分开:");
            scores[i][0] = scanner.nextInt();
            scores[i][1] = scanner.nextInt();
            scores[i][2] = scanner.nextInt();
        }
        
        for(int i=0; i<n; i++) {
            System.out.println(names[i] + " 的成绩为:语文 " + scores[i][0] + ", 数学 " + scores[i][1] + ", 英语 " + scores[i][2]);
        }
        scanner.close();
    }
}
Q
能否用Java程序读取文件中的学生成绩?

如果学生的成绩数据保存在文本文件中,Java程序应该如何读取并处理这些数据?

A

使用FileReader和BufferedReader读取文件数据

Java可以通过FileReader结合BufferedReader读取文本文件中的内容。假设文件中的数据格式为:每行包含学生姓名和各科成绩,用空格分隔。示例代码:

import java.io.*;

public class ReadScoresFromFile {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("scores.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                String[] parts = line.split(" ");
                String name = parts[0];
                int chinese = Integer.parseInt(parts[1]);
                int math = Integer.parseInt(parts[2]);
                int english = Integer.parseInt(parts[3]);
                System.out.println(name + " 的成绩:语文 " + chinese + ", 数学 " + math + ", 英语 " + english);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}