14. 编程处理:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud.txt”中。Java
时间: 2023-12-20 19:15:51 浏览: 82
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
好的,以下是 Java 代码实现:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student[] students = new Student[5];
// 从键盘输入学生信息
for (int i = 0; i < 5; i++) {
Student student = new Student();
System.out.print("请输入学生号:");
student.setNumber(scanner.next());
System.out.print("请输入姓名:");
student.setName(scanner.next());
System.out.print("请输入三门课成绩(用空格分隔):");
int[] scores = new int[3];
for (int j = 0; j < 3; j++) {
scores[j] = scanner.nextInt();
}
student.setScores(scores);
students[i] = student;
}
// 计算平均成绩并存储到文件
try (FileWriter writer = new FileWriter("stud.txt")) {
for (Student student : students) {
int[] scores = student.getScores();
double avgScore = (scores[0] + scores[1] + scores[2]) / 3.0;
student.setAvgScore(avgScore);
writer.write(student.toString() + "\n");
}
} catch (IOException e) {
System.out.println("写文件时发生错误:" + e.getMessage());
}
}
}
class Student {
private String number;
private String name;
private int[] scores;
private double avgScore;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int[] getScores() {
return scores;
}
public void setScores(int[] scores) {
this.scores = scores;
}
public double getAvgScore() {
return avgScore;
}
public void setAvgScore(double avgScore) {
this.avgScore = avgScore;
}
@Override
public String toString() {
return "学生号:" + number + ",姓名:" + name + ",三门课成绩:" + scores[0] + " " + scores[1] + " " + scores[2] + ",平均成绩:" + avgScore;
}
}
```
这段代码定义了一个 `Student` 类用于存储学生信息。在 `main` 方法中,通过循环从键盘输入每个学生的学生号、姓名和三门课的成绩,并将这些信息存储到 `Student` 对象数组 `students` 中。
接着,使用 `FileWriter` 类打开文件 "stud.txt" 并以写入的方式写入学生信息和平均成绩。在循环中,先计算每个学生的平均成绩,然后将其加入到 `Student` 对象中,并通过 `toString()` 方法将整个对象转换成字符串后写入文件中。
最终,文件 "stud.txt" 中将会存储每个学生的学生号、姓名、三门课成绩以及平均成绩。
阅读全文