写出简易Java 代码,在一个class 里统计学生成绩。依次输入学生人数,输入学生的学号及语文、数学、英语成绩,然后排序横轴输出学生各科平均信息、平均成绩和总成绩。
时间: 2024-10-19 17:14:56 浏览: 29
当然可以。以下是一个简单的Java程序示例,用于统计学生成绩并按学生成绩排序:
```java
import java.util.*;
public class StudentScore {
static class ScoreRecord {
int studentID;
double chineseScore;
double mathScore;
double englishScore;
// 构造函数
public ScoreRecord(int id, double c, double m, double e) {
studentID = id;
chineseScore = c;
mathScore = m;
englishScore = e;
}
// 计算平均分
double averageScore() {
return (chineseScore + mathScore + englishScore) / 3.0;
}
// 打印记录
void printRecord() {
System.out.println("学生ID: " + studentID + ", 平均分: " + averageScore());
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生人数:");
int numStudents = scanner.nextInt();
List<ScoreRecord> records = new ArrayList<>();
for (int i = 0; i < numStudents; i++) {
System.out.println("请输入第" + (i+1) + "位学生的学号、语文分数、数学分数和英语分数:");
int id = scanner.nextInt();
double chinese = scanner.nextDouble();
double math = scanner.nextDouble();
double english = scanner.nextDouble();
records.add(new ScoreRecord(id, chinese, math, english));
}
Collections.sort(records, Comparator.comparingDouble(record -> record.averageScore()));
System.out.println("\n按照平均成绩排序后的学生信息:");
for (ScoreRecord record : records) {
record.printRecord();
}
// 如果你想显示所有学生的总成绩和平均成绩,可以添加如下的代码:
double totalScore = 0;
for (ScoreRecord record : records) {
totalScore += record.chineseScore + record.mathScore + record.englishScore;
}
double averageTotal = totalScore / records.size();
System.out.println("\n全体学生的总成绩: " + totalScore);
System.out.println("全体学生的平均总成绩: " + averageTotal);
}
}
```
这个程序首先定义了一个内部类`ScoreRecord`来存储每个学生的信息,并提供计算平均分的方法。然后通过循环读取用户输入的学生信息,存入列表中,并根据平均分进行排序。最后,展示了平均成绩排序的结果以及全体学生的总成绩和平均总成绩。
阅读全文