JAVA语言编写一个学生成绩管理程序,内容包括学号、姓名以及数学、外语、Java等课程的成绩,设计一个文件管理程序,实现如下功能: ①录入10个学生的数据,写入文件。 ② 从文件中读取数据,计算每位学生的所有课程平均分。③ 计算全部学生的数学平均分。
时间: 2024-02-15 11:03:25 浏览: 31
好的,我会根据您的要求进行回答,以下是JAVA语言编写一个学生成绩管理程序的代码:
```java
import java.io.*;
import java.util.*;
class Student {
String id;
String name;
float mathScore;
float englishScore;
float javaScore;
public Student(String id, String name, float mathScore, float englishScore, float javaScore) {
this.id = id;
this.name = name;
this.mathScore = mathScore;
this.englishScore = englishScore;
this.javaScore = javaScore;
}
public float getAverageScore() {
return (mathScore + englishScore + javaScore) / 3;
}
}
public class StudentManagement {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
// 录入10个学生的数据,写入文件
for (int i = 0; i < 10; i++) {
System.out.println("请输入第" + (i + 1) + "个学生的信息");
System.out.println("学号:");
String id = scanner.next();
System.out.println("姓名:");
String name = scanner.next();
System.out.println("数学成绩:");
float mathScore = scanner.nextFloat();
System.out.println("外语成绩:");
float englishScore = scanner.nextFloat();
System.out.println("Java成绩:");
float javaScore = scanner.nextFloat();
Student student = new Student(id, name, mathScore, englishScore, javaScore);
students.add(student);
}
try {
File file = new File("students.txt");
FileWriter fileWriter = new FileWriter(file);
for (Student student : students) {
fileWriter.write(student.id + " " + student.name + " " + student.mathScore + " " + student.englishScore + " " + student.javaScore + "\n");
}
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
// 从文件中读取数据,计算每位学生的所有课程平均分
try {
File file = new File("students.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
String[] values = line.split(" ");
String id = values[0];
String name = values[1];
float mathScore = Float.parseFloat(values[2]);
float englishScore = Float.parseFloat(values[3]);
float javaScore = Float.parseFloat(values[4]);
Student student = new Student(id, name, mathScore, englishScore, javaScore);
float averageScore = student.getAverageScore();
System.out.println(student.name + "的平均分是:" + averageScore);
}
bufferedReader.close();
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
// 计算全部学生的数学平均分
float totalMathScore = 0;
int count = 0;
try {
File file = new File("students.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
String[] values = line.split(" ");
float mathScore = Float.parseFloat(values[2]);
totalMathScore += mathScore;
count++;
}
bufferedReader.close();
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
float averageMathScore = totalMathScore / count;
System.out.println("全部学生的数学平均分是:" + averageMathScore);
}
}
```
这个程序可以实现您提出的三个功能:
1. 录入10个学生的数据,写入文件。
2. 从文件中读取数据,计算每位学生的所有课程平均分。
3. 计算全部学生的数学平均分。