构建学生(Student)类,包括学号,姓名,出生年月基本信息,离散数学,大学物理,高等数学,面向对象程序设计(Java)成绩及平均分。 应用集合框架实现某班所有学生的成绩管理,计算所有学生的平均分,应用Cimparable接口或Comparator进口实现平均分比较,能够对所有学生按平均分排序并输出。 将每位学生的信息按平均分排序输出到屏幕上。Java源代码
时间: 2024-03-10 12:48:45 浏览: 76
下面是一个简单的Java代码实现:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Student implements Comparable<Student> {
private int id;
private String name;
private String birth;
private double math;
private double physics;
private double java;
private double oo;
private double average;
public Student(int id, String name, String birth, double math, double physics, double java, double oo) {
this.id = id;
this.name = name;
this.birth = birth;
this.math = math;
this.physics = physics;
this.java = java;
this.oo = oo;
this.average = (math + physics + java + oo) / 4.0;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getBirth() {
return birth;
}
public double getMath() {
return math;
}
public double getPhysics() {
return physics;
}
public double getJava() {
return java;
}
public double getOo() {
return oo;
}
public double getAverage() {
return average;
}
public int compareTo(Student s) {
if (this.average < s.average) {
return -1;
} else if (this.average > s.average) {
return 1;
} else {
return 0;
}
}
public String toString() {
return "ID: " + id + ", Name: " + name + ", Birth: " + birth + ", Math: " + math + ", Physics: " + physics + ", Java: " + java + ", OO: " + oo + ", Average: " + average;
}
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
students.add(new Student(1, "John", "2000-01-01", 80.0, 85.0, 90.0, 95.0));
students.add(new Student(2, "Mary", "2000-02-02", 70.0, 75.0, 80.0, 85.0));
students.add(new Student(3, "Peter", "2000-03-03", 90.0, 95.0, 100.0, 95.0));
double sum = 0.0;
for (Student s : students) {
sum += s.getAverage();
}
double average = sum / students.size();
System.out.println("Average: " + average);
Collections.sort(students, new Comparator<Student>() {
public int compare(Student s1, Student s2) {
if (s1.getAverage() < s2.getAverage()) {
return -1;
} else if (s1.getAverage() > s2.getAverage()) {
return 1;
} else {
return 0;
}
}
});
for (Student s : students) {
System.out.println(s.toString());
}
}
}
```
这个代码实现了一个名为`Student`的类,其中包含了学号,姓名,出生年月基本信息,离散数学,大学物理,高等数学,面向对象程序设计(Java)成绩及平均分。它还实现了`Comparable`接口,以便能够比较平均分,使得我们可以对所有学生按平均分排序并输出。
在`main`函数中,我们创建了一个`List`对象`students`,并向其中添加了三个学生信息。然后,我们使用循环遍历所有学生,计算出平均分并输出。接下来,我们使用`Collections.sort`方法对学生列表进行排序,并使用`Comparator`接口实现自定义排序方法。最后,我们遍历排序后的学生列表,并输出每位学生的信息。
阅读全文