用java写程序实现2.对一个运动会成绩原始文件“results.txt”,对运动员的竞赛成绩进行排名,将结果按格式保存到输出文件“out.txt”,成绩保留3位小数。
时间: 2024-02-20 13:00:24 浏览: 69
好的,下面是 Java 实现的代码:
```java
import java.io.*;
import java.util.*;
public class ScoreRanking {
public static void main(String[] args) throws IOException {
// 读取原始成绩文件
BufferedReader reader = new BufferedReader(new FileReader("results.txt"));
List<String> lines = new ArrayList<>();
String line;
while ((line = reader.readLine()) != null) {
lines.add(line);
}
reader.close();
// 解析每个运动员的成绩
List<Score> scores = new ArrayList<>();
for (String s : lines) {
String[] fields = s.split(",");
String name = fields[0];
double result = 0;
for (int i = 1; i < fields.length; i++) {
result += Double.parseDouble(fields[i]);
}
scores.add(new Score(name, result));
}
// 按成绩排序
Collections.sort(scores, new Comparator<Score>() {
public int compare(Score s1, Score s2) {
return Double.compare(s2.result, s1.result);
}
});
// 输出排名结果到文件
PrintWriter writer = new PrintWriter(new FileWriter("out.txt"));
for (int i = 0; i < scores.size(); i++) {
Score s = scores.get(i);
writer.printf("%d. %s: %.3f\n", i+1, s.name, s.result);
}
writer.close();
}
static class Score {
String name;
double result;
public Score(String name, double result) {
this.name = name;
this.result = result;
}
}
}
```
这个程序与 Python 版本的基本一致,只是语法和细节有所不同。你可以将上述代码保存为一个 Java 文件,然后将原始成绩文件“results.txt”放到同一目录下,编译并运行代码即可。输出结果会保存到文件“out.txt”中。
阅读全文