diff --git a/w7/ScoreAvg.java b/w7/ScoreAvg.java new file mode 100644 index 0000000..711f231 --- /dev/null +++ b/w7/ScoreAvg.java @@ -0,0 +1,58 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class ScoreAvg { + public static void main(String[] args) { + String fileName = "scores.txt"; + BufferedReader br = null; + int sum = 0; + int count = 0; + + // ======================== + // 题目要求:try catch finally + // ======================== + try { + // 1. 打开文件 + br = new BufferedReader(new FileReader(fileName)); + + // 2. 读取每一行 + String line; + while ((line = br.readLine()) != null) { + line = line.trim(); + if (line.isEmpty()) continue; + + try { + int score = Integer.parseInt(line); + sum += score; + count++; + } catch (NumberFormatException e) { + System.out.println("格式错误:" + line); + } + } + + // 3. 输出结果 + System.out.println("总分:" + sum); + System.out.println("平均分:" + (double) sum / count); + + } catch (IOException e) { + // 异常处理 + System.out.println("文件操作失败!"); + e.printStackTrace(); + + } finally { + // ======================== + // finally:必须执行,关闭流! + // 题目要求必须写这里! + // ======================== + try { + if (br != null) { + br.close(); + System.out.println("流已关闭!"); + } + } catch (IOException e) { + System.out.println("关闭失败!"); + } + } + } +} diff --git a/w7/scores b/w7/scores new file mode 100644 index 0000000..18795d4 --- /dev/null +++ b/w7/scores @@ -0,0 +1,4 @@ +90 +85 +95 +88 \ No newline at end of file diff --git a/w7/代码(上).png b/w7/代码(上).png new file mode 100644 index 0000000..d0b90be Binary files /dev/null and b/w7/代码(上).png differ diff --git a/w7/代码(下).png b/w7/代码(下).png new file mode 100644 index 0000000..52b3f77 Binary files /dev/null and b/w7/代码(下).png differ