用Java编写一个程序输入 6 个学生的信息(学号、姓名、三门课程的成绩),统计学生 的总分,然后将学生的信息和统计结果存入二进制文件 student.dat 中
时间: 2024-05-08 18:18:48 浏览: 167
好的,我会为您提供Java代码。以下是实现要求:
1. 创建一个Student类,包含学号、姓名、三门课程的成绩字段。
2. 创建一个StudentUtil类,包含一个用于输入学生信息的方法input(),以及一个用于统计总分的方法sum()。
3. 在main方法中,创建一个StudentUtil对象,并调用它的input()方法输入6个学生的信息,并调用sum()方法统计总分。
4. 将学生信息和统计结果存入二进制文件student.dat中,使用ObjectOutputStream进行序列化输出。
下面是Java代码:
```java
import java.io.*;
class Student implements Serializable{
String id;
String name;
double score1;
double score2;
double score3;
public Student(String id, String name, double score1, double score2, double score3) {
this.id = id;
this.name = name;
this.score1 = score1;
this.score2 = score2;
this.score3 = score3;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore1() {
return score1;
}
public void setScore1(double score1) {
this.score1 = score1;
}
public double getScore2() {
return score2;
}
public void setScore2(double score2) {
this.score2 = score2;
}
public double getScore3() {
return score3;
}
public void setScore3(double score3) {
this.score3 = score3;
}
public double getTotalScore(){
return score1+score2+score3;
}
}
class StudentUtil{
public Student[] input(){
Student[] students = new Student[6];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(int i=0; i<6; i++){
try {
System.out.println("请输入第"+(i+1)+"个学生的信息:");
System.out.println("学号:");
String id = br.readLine();
System.out.println("姓名:");
String name = br.readLine();
System.out.println("三门课成绩:");
double score1 = Double.parseDouble(br.readLine());
double score2 = Double.parseDouble(br.readLine());
double score3 = Double.parseDouble(br.readLine());
students[i] = new Student(id, name, score1, score2, score3);
} catch (IOException e) {
e.printStackTrace();
}
}
return students;
}
public double sum(Student[] students){
double sum = 0;
for(Student s : students){
sum += s.getTotalScore();
}
return sum;
}
}
public class Demo {
public static void main(String[] args) {
StudentUtil util = new StudentUtil();
Student[] students = util.input();
double totalSum = util.sum(students);
System.out.println("学生总成绩:"+totalSum);
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("student.dat"));
out.writeObject(students);
out.writeDouble(totalSum);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
根据您的要求,程序已将学生信息和总成绩存入student.dat文件中。感谢您的提问,如有其他问题,请随时与我联系。
阅读全文