从键盘输入姓名、学号、成绩,并保存到文本文件中。重复进行,直到输入#号结束。(2)从文件中读取各学生成绩,计算所有学生成绩的平均值,将成绩的最大值、最小值及平均值并存入文本文件中。(3)将上面两个文本文件的内容合并到一个新的文本文件中。用Java实现
时间: 2024-02-13 17:04:23 浏览: 87
好的,这是一个 Java 的解决方案。
(1)从键盘输入姓名、学号、成绩,并保存到文本文件中。重复进行,直到输入#号结束。
```java
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class SaveToFile {
public static void main(String[] args) {
String filename = "scores.txt"; // 文件名
try {
FileWriter writer = new FileWriter(filename, true); // 以追加模式打开文件
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入姓名、学号、成绩(用空格隔开),输入#号结束:");
String line = scanner.nextLine();
if (line.equals("#")) { // 输入#号结束循环
break;
}
writer.write(line + "\n"); // 将输入的内容写入文件并换行
}
writer.close(); // 关闭文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
(2)从文件中读取各学生成绩,计算所有学生成绩的平均值,将成绩的最大值、最小值及平均值并存入文本文件中。
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CalculateScores {
public static void main(String[] args) {
String filename = "scores.txt"; // 文件名
try {
FileReader reader = new FileReader(filename); // 以读取模式打开文件
BufferedReader br = new BufferedReader(reader);
String line;
int sum = 0; // 所有成绩的总和
int count = 0; // 成绩的总个数
int maxScore = Integer.MIN_VALUE; // 最高分
int minScore = Integer.MAX_VALUE; // 最低分
while ((line = br.readLine()) != null) {
String[] parts = line.split(" "); // 将每行内容按空格分隔
int score = Integer.parseInt(parts[2]); // 将成绩转换为整数
sum += score;
count++;
if (score > maxScore) {
maxScore = score;
}
if (score < minScore) {
minScore = score;
}
}
br.close(); // 关闭文件
double avgScore = (double)sum / count; // 计算平均分
String outputFilename = "result.txt"; // 输出文件名
FileWriter writer = new FileWriter(outputFilename); // 以写入模式打开文件
writer.write("平均分:" + avgScore + "\n最高分:" + maxScore + "\n最低分:" + minScore); // 将结果写入文件
writer.close(); // 关闭文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
(3)将上面两个文本文件的内容合并到一个新的文本文件中。
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class MergeFiles {
public static void main(String[] args) {
String filename1 = "scores.txt"; // 文件名1
String filename2 = "result.txt"; // 文件名2
String outputFilename = "merged.txt"; // 输出文件名
try {
FileWriter writer = new FileWriter(outputFilename); // 以写入模式打开文件
FileReader reader1 = new FileReader(filename1); // 以读取模式打开文件1
BufferedReader br1 = new BufferedReader(reader1);
String line;
while ((line = br1.readLine()) != null) {
writer.write(line + "\n"); // 将文件1的内容写入输出文件并换行
}
br1.close(); // 关闭文件1
FileReader reader2 = new FileReader(filename2); // 以读取模式打开文件2
BufferedReader br2 = new BufferedReader(reader2);
while ((line = br2.readLine()) != null) {
writer.write(line + "\n"); // 将文件2的内容写入输出文件并换行
}
br2.close(); // 关闭文件2
writer.close(); // 关闭输出文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这样,你就可以用 Java 实现按要求将输入的内容保存到文件、从文件中读取数据并计算平均分、将多个文件内容合并到一个文件中了。
阅读全文