From ced35f8ab68036da9d0bc0f63bcc2defa0a37f59 Mon Sep 17 00:00:00 2001 From: pizza0105 Date: Sat, 25 Apr 2026 13:08:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E4=BD=9C=E4=B8=9A=EF=BC=9AScoreAverageCalculator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w8/ScoreAverageCalculator.java | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 w8/ScoreAverageCalculator.java diff --git a/w8/ScoreAverageCalculator.java b/w8/ScoreAverageCalculator.java new file mode 100644 index 0000000..23b286d --- /dev/null +++ b/w8/ScoreAverageCalculator.java @@ -0,0 +1,49 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class ScoreAverageCalculator { + public static void main(String[] args) { + String fileName = "scores.txt"; + int sum = 0; + int count = 0; + + // try-with-resources 自动关闭流 + try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { + String line; + + while ((line = br.readLine()) != null) { + // 跳过空行 + if (line.trim().isEmpty()) { + continue; + } + + try { + int score = Integer.parseInt(line.trim()); + sum += score; + count++; + } catch (NumberFormatException e) { + // 数字格式错误处理 + System.err.println("数字格式错误,忽略该行内容: " + line); + } + } + + // 计算并输出平均分 + if (count > 0) { + double average = (double) sum / count; + System.out.println("成功读取 " + count + " 个成绩"); + System.out.println("总分: " + sum); + System.out.println("平均分: " + average); + } else { + System.err.println("文件中没有有效的成绩数据"); + } + + } catch (IOException e) { + // 文件不存在或读取错误处理 + System.err.println("文件操作错误: " + e.getMessage()); + if (e instanceof java.io.FileNotFoundException) { + System.err.println("请检查文件 \"" + fileName + "\" 是否存在"); + } + } + } +} \ No newline at end of file