现在有如下格式的成绩单(文本格式)score.txt: 姓名:张三,数学72 分,物理67 分,英语70 分. 姓名:李四,数学92 分,物理98 分,英语88 分. 姓名:周五,数学68 分,物理80 分,英语77 分. (1)要求编写java程序按行读取成绩单,并在该行的后面尾加上该同学的总成绩,然后再将该行写入到一个名字为scoreAnalysis.txt 的文件中。
时间: 2024-03-24 17:39:06 浏览: 14
好的,我可以帮你编写一个 Java 程序来实现这个功能。你可以在命令行输入以下代码:
```java
import java.io.*;
public class ScoreAnalysis {
public static void main(String[] args) {
try {
// 打开 score.txt 文件和 scoreAnalysis.txt 文件
BufferedReader br = new BufferedReader(new FileReader("score.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("scoreAnalysis.txt"));
String line;
// 逐行读取 score.txt 文件
while ((line = br.readLine()) != null) {
// 去掉行末尾的换行符
line = line.trim();
// 如果这一行不为空
if (!line.isEmpty()) {
// 找到姓名、数学、物理和英语成绩
String name = line.split(",")[0].substring(3);
float mathScore = Float.parseFloat(line.split(",")[1].substring(3, line.split(",")[1].length() - 2));
float physicsScore = Float.parseFloat(line.split(",")[2].substring(3, line.split(",")[2].length() - 2));
float englishScore = Float.parseFloat(line.split(",")[3].substring(3, line.split(",")[3].length() - 1));
// 计算总成绩
float totalScore = mathScore + physicsScore + englishScore;
// 将总成绩添加到这一行末尾
String newLine = line + ",总成绩:" + totalScore + " 分。\n";
// 将这一行写入 scoreAnalysis.txt 文件
bw.write(newLine);
}
}
br.close();
bw.close();
} catch (IOException e) {
System.out.println("文件读写错误:" + e.getMessage());
}
}
}
```
执行完这个程序后,你就可以在当前目录下找到一个名为 scoreAnalysis.txt 的文件,其中包含了每个学生的总成绩。