java语言实现:编写一个学生成绩管理程序,内容包括学号、姓名,以及数学、外语、Iava等课程的成绩,设计一个文件管理程序,实现如下功能: (1)录人10个学生的数据,写人文件; (2)从文件中读取数据,计算每位学生的所有课程平均分;(3)计算全部学生的数学平均分。
时间: 2025-01-05 11:42:16 浏览: 37
在Java中,我们可以创建一个简单的学生成绩管理程序,包括Student类用于存储学生信息和成绩,以及一个FileManager类来进行文件操作。以下是相应的代码示例:
首先,我们定义一个Student类:
```java
public class Student {
private String id;
private String name;
private double mathScore;
private double foreignLanguageScore;
private double javaScore;
// 构造函数,getter和setter方法...
public Student(String id, String name, double math, double lang, double java) {
this.id = id;
this.name = name;
this.mathScore = math;
this.foreignLanguageScore = lang;
this.javaScore = java;
}
// 计算平均分的方法...
public double calculateAverage() {
return (mathScore + foreignLanguageScore + javaScore) / 3;
}
}
```
然后,我们创建FileManager类来处理文件操作:
```java
import java.io.*;
import java.util.ArrayList;
public class FileManager {
private static final String FILE_NAME = "students.txt";
// 写入学生数据到文件的方法
public static void writeStudentsToFile(ArrayList<Student> students) {
try (FileWriter writer = new FileWriter(FILE_NAME)) {
for (Student student : students) {
writer.write(student.getId());
writer.write(",");
writer.write(student.getName());
writer.write(",");
writer.write(Double.toString(student.getMathScore()));
writer.write(",");
writer.write(Double.toString(student.getForeignLanguageScore()));
writer.write(",");
writer.write(Double.toString(student.getJavaScore()));
writer.newLine();
}
} catch (IOException e) {
System.err.println("Error writing to file: " + e.getMessage());
}
}
// 读取文件并计算平均分的方法
public static ArrayList<Student> readAndCalculateAverages() {
ArrayList<Student> students = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(",");
String id = parts[0];
String name = parts[1];
double[] scores = {Double.parseDouble(parts[2]), Double.parseDouble(parts[3]), Double.parseDouble(parts[4])};
Student student = new Student(id, name, scores[0], scores[1], scores[2]);
students.add(student);
}
// 计算每位学生平均分
for (Student student : students) {
System.out.println("学生 " + student.getName() + " 的平均分为: " + student.calculateAverage());
}
} catch (IOException e) {
System.err.println("Error reading from file: " + e.getMessage());
}
return students;
}
// 计算所有数学平均分
public static double calculateAllMathAverages(ArrayList<Student> students) {
double totalMath = 0;
for (Student student : students) {
totalMath += student.getMathScore();
}
return totalMath / students.size();
}
}
```
在这个程序中,你可以通过以下方式使用这些方法:
```java
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
// 创建并添加10位学生数据
for (int i = 0; i < 10; i++) {
students.add(new Student("S" + i, "学生" + i, Math.random() * 100, Math.random() * 100, Math.random() * 100));
}
// 将学生数据写入文件
FileManager.writeStudentsToFile(students);
// 从文件中读取数据并计算平均分
students = FileManager.readAndCalculateAverages();
// 计算所有学生的数学平均分
double allMathAverage = FileManager.calculateAllMathAverages(students);
System.out.println("全部学生的数学平均分为: " + allMathAverage);
}
```
阅读全文
相关推荐










