java实现对一个运动会成绩原始文件“results.txt”,对运动员的竞赛成绩进行排名,将结果按格式依次将跑道、姓名、成绩保存到输出文件“out.txt”,成绩保留3位小数。
时间: 2024-02-17 16:00:30 浏览: 89
运动会成绩管理系统(JAVA)
4星 · 用户满意度95%
好的,以下是使用Java实现该任务的代码示例:
```java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// 读取原始文件
BufferedReader reader = new BufferedReader(new FileReader("results.txt"));
String line;
List<String[]> data = new ArrayList<>();
while ((line = reader.readLine()) != null) {
String[] parts = line.trim().split(",");
data.add(parts);
}
reader.close();
// 解析每行数据并排序
Collections.sort(data, new Comparator<String[]>() {
public int compare(String[] a, String[] b) {
int trackA = Integer.parseInt(a[0]);
int trackB = Integer.parseInt(b[0]);
if (trackA != trackB) {
return trackA - trackB;
} else {
double timeA = Double.parseDouble(a[2]);
double timeB = Double.parseDouble(b[2]);
return Double.compare(timeA, timeB);
}
}
});
// 将排名结果写入输出文件
PrintWriter writer = new PrintWriter(new FileWriter("out.txt"));
for (int rank = 1; rank <= data.size(); rank++) {
String[] parts = data.get(rank - 1);
int track = Integer.parseInt(parts[0]);
String name = parts[1];
double time = Double.parseDouble(parts[2]);
writer.printf("%d,%s,%.3f\n", track, name, time);
}
writer.close();
}
}
```
您只需要将代码复制到Java环境中并运行即可。请确保在代码所在的目录下存在“results.txt”文件,并且运行代码后将生成“out.txt”文件作为输出结果。
阅读全文