用Java编写一个程序,输入六个学生的信息(学号,姓名,三门课的成绩)统计学生总分,然后将学生的信息和统计结果存入二进制文件
时间: 2023-07-06 20:05:56 浏览: 131
以下是一个示例程序,实现输入六个学生的信息,统计学生总分,并将学生信息和统计结果存入二进制文件的功能:
```java
import java.io.*;
public class Student {
private int id;
private String name;
private int score1;
private int score2;
private int score3;
public Student(int id, String name, int score1, int score2, int score3) {
this.id = id;
this.name = name;
this.score1 = score1;
this.score2 = score2;
this.score3 = score3;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getScore1() {
return score1;
}
public int getScore2() {
return score2;
}
public int getScore3() {
return score3;
}
public int getTotalScore() {
return score1 + score2 + score3;
}
public static void main(String[] args) {
Student[] students = new Student[6];
students[0] = new Student(1, "Alice", 80, 90, 85);
students[1] = new Student(2, "Bob", 70, 85, 90);
students[2] = new Student(3, "Charlie", 90, 95, 80);
students[3] = new Student(4, "David", 85, 80, 90);
students[4] = new Student(5, "Eve", 95, 75, 85);
students[5] = new Student(6, "Frank", 75, 85, 95);
int totalScore = 0;
for (Student student : students) {
totalScore += student.getTotalScore();
}
try (DataOutputStream output = new DataOutputStream(new FileOutputStream("students.bin"))) {
for (Student student : students) {
output.writeInt(student.getId());
output.writeUTF(student.getName());
output.writeInt(student.getScore1());
output.writeInt(student.getScore2());
output.writeInt(student.getScore3());
}
output.writeInt(totalScore);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
```
程序中定义了一个 `Student` 类,用于存储学生的信息,包括学号、姓名和三门课的成绩。通过 `getTotalScore` 方法可以计算出学生的总分。程序中先创建了一个包含六个学生的数组,然后统计所有学生的总分,最后将学生信息和总分存入二进制文件中。
在 `main` 方法中,先创建了六个学生对象,并将它们存入数组中。然后遍历数组,依次计算每个学生的总分并累加到 `totalScore` 变量中。最后使用 `DataOutputStream` 类将学生信息和总分写入二进制文件中,其中使用 `writeInt` 和 `writeUTF` 方法分别写入整数和字符串类型的数据。注意在写入完成后要及时关闭输出流。
运行程序后,将会在当前目录下生成一个名为 `students.bin` 的二进制文件。可以使用任意一个二进制文件编辑器打开它,查看其中存储的内容。
阅读全文