java输入输出流统计每个学生的平均成绩
时间: 2024-12-08 14:21:52 浏览: 13
在Java中,我们可以使用`BufferedReader`读取文件,`Scanner`用于获取用户输入,然后通过数组或集合存储学生的成绩,最后计算平均分。这里是一个简单的示例:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class AverageScores {
public static void main(String[] args) {
ArrayList<Double> scores = new ArrayList<>(); // 存储学生分数
Scanner scanner = null;
try {
// 用户输入部分(假设是命令行)
System.out.println("请输入学生人数:");
int numStudents = scanner.nextInt();
for (int i = 0; i < numStudents; i++) {
System.out.println("请输入第" + (i+1) + "名学生的成绩:");
double score = scanner.nextDouble();
scores.add(score);
}
// 文件输入部分(如果需要从文件读取)
// File file = new File("students.txt");
// BufferedReader reader = new BufferedReader(new FileReader(file));
// String line;
// while ((line = reader.readLine()) != null) {
// scores.add(Double.parseDouble(line)); // 添加到分数列表
// reader.close();
//}
// 计算平均分
double averageScore = scores.stream().mapToDouble(Double::doubleValue).average().orElse(0.0);
System.out.printf("所有学生的平均成绩是: %.2f\n", averageScore);
} catch (IOException e) {
System.out.println("发生IO异常: " + e.getMessage());
} finally {
if (scanner != null) {
scanner.close();
}
}
}
}
```
在这个例子中,我们首先读取用户输入的学生人数以及他们的成绩,如果数据来自文件,则可以替换为从文件读取。然后计算平均值并打印结果。
阅读全文