定义一个 Student 数组,其中保存学生的基本信息,包括姓名、学号、性别, 还分别保存三门课程的成绩及三门课程对应的学分。试编程计算这三门课程的学分积,并按学分积的降幂进行排序,输出排序后的结果。用 java
时间: 2024-10-12 14:09:02 浏览: 39
在Java中,我们可以定义一个名为`Student`的类来表示学生的信息,然后创建一个`Student`类型的数组。首先,让我们定义`Student`类:
```java
public class Student {
private String name;
private int studentId;
private String gender;
private double[] courseScores; // 存储三门课程成绩
private int[] courseCredits; // 存储每门课程的学分
// 构造函数,getter和setter方法省略
public double calculateTotalCreditProduct() {
double totalProduct = 1.0;
for (int i = 0; i < courseScores.length; i++) {
totalProduct *= courseScores[i] * courseCredits[i];
}
return totalProduct;
}
@Override
public String toString() {
return "Name: " + name + ", ID: " + studentId + ", Gender: " + gender +
", Course Scores and Credits: [" + Arrays.toString(courseScores) + "," + Arrays.toString(courseCredits) + "]";
}
}
```
接下来,我们创建一个`Student`数组并进行排序:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Student[] students = new Student[3]; // 假设有三个学生
// 初始化学生信息...
// 计算学分积并存储在数组中
for (Student student : students) {
student.calculateTotalCreditProduct();
}
// 按照学分积降序排序
Arrays.sort(students, (a, b) -> Double.compare(b.calculateTotalCreditProduct(), a.calculateTotalCreditProduct()));
// 输出排序后的结果
for (Student student : students) {
System.out.println(student);
}
阅读全文