用java实现现在有如下格式的成绩单(文本格式)score.txt 姓名:张三,数学72分,物理67分,英语70分。 姓名:李四,数学92分,物理98分,英语88分。 姓名:王五,数学68分,物理80分,英语77分。 要求按行读入成绩单,并在该行的后面加上该同学的平均成绩,然后再将该行写入到一个名字为scoreAnalysis.txt的文件中。
时间: 2024-03-05 10:51:07 浏览: 74
利用java实现学生成绩
好的,下面是Java的实现代码,你可以参考一下:
```java
import java.io.*;
public class ScoreAnalysis {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("score.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter("scoreAnalysis.txt"));
String line;
while ((line = reader.readLine()) != null) {
line = line.trim();
if (line.startsWith("姓名:")) {
String[] scores = line.split(",", 4);
int totalScore = 0;
for (int i = 1; i < scores.length; i++) {
int score = Integer.parseInt(scores[i].substring(0, scores[i].indexOf("分")));
totalScore += score;
}
double averageScore = totalScore / (double)(scores.length - 1);
line += String.format(",平均成绩:%.2f分。", averageScore);
}
writer.write(line + "\n");
}
reader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序使用了Java的输入输出流来读取score.txt文件和写入scoreAnalysis.txt文件。程序首先创建一个BufferedReader对象和一个BufferedWriter对象,分别用于读取和写入文件。然后程序每次读取一行,对于以“姓名:”开头的行,提取该同学的成绩,并计算平均成绩。最后程序在该行的末尾添加平均成绩,并将该行写入到scoreAnalysis.txt文件中。注意,程序中的“%.2f”是格式化字符串的语法,表示保留两位小数。
阅读全文