(1)设计一个Student类,要求: ① Student类有三个私有成员变量(属性) int sno表示学号 int sclass表示班级 int score表示成绩 ②编写有三个参数的构造方法以完成成员变量的初始化。 ③重与tOSting0方法,返回一个学生的各成员变量的信息,每个成员变量占一环个制表位。 ④重写equals0方法用于规定班级相同的两个学生相等。 ⑤重写Comparable接口中的compareTo0方法,使学生类的数组可以通过调用Arrays类的sor0方法进行排序,排序要求为按成绩降序排。 (2) 设计主类:要求: (①创建包含20个Student类对象的数组; ②使用循环输入20个学生信息存入数组,其中学号依次为1-20,班级1-3随机产生,成绩90-100随机产生; 3使用增强for循环输出学生数组的信息,其中每个学生信息调用toString0方法输出。 ④④通过调用equals0方法找出与第一个学生同班的学生并输出。 ⑤调用Arrays类的sort0方法对学生数组按成绩降序排列。 ⑥使用增强for循环输出排序后的学生信息。
时间: 2024-02-11 11:08:26 浏览: 73
好的,以下是代码实现:
Student类代码:
```
public class Student implements Comparable<Student> {
private int sno;
private int sclass;
private int score;
public Student(int sno, int sclass, int score) {
this.sno = sno;
this.sclass = sclass;
this.score = score;
}
@Override
public String toString() {
return "Student{" +
"sno=" + sno +
", sclass=" + sclass +
", score=" + score +
'}';
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Student student = (Student) obj;
return sclass == student.sclass;
}
@Override
public int compareTo(Student o) {
return o.score - this.score;
}
}
```
主类代码:
```
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Student[] students = new Student[20];
for (int i = 0; i < students.length; i++) {
int sno = i + 1;
int sclass = (int) (Math.random() * 3) + 1;
int score = (int) (Math.random() * 11) + 90;
students[i] = new Student(sno, sclass, score);
}
for (Student student : students) {
System.out.println(student.toString());
}
System.out.println("与第一个学生同班的学生:");
for (int i = 1; i < students.length; i++) {
if (students[0].equals(students[i])) {
System.out.println(students[i].toString());
}
}
Arrays.sort(students);
System.out.println("按成绩降序排列后的学生信息:");
for (Student student : students) {
System.out.println(student.toString());
}
}
}
```
这段代码中,我们首先创建了一个包含20个Student对象的数组,然后使用循环输入20个学生信息存入数组,其中学号依次为1-20,班级1-3随机产生,成绩90-100随机产生;接着使用增强for循环输出学生数组的信息,其中每个学生信息调用toString()方法输出;然后通过调用equals()方法找出与第一个学生同班的学生并输出;接着调用Arrays类的sort()方法对学生数组按成绩降序排列;最后使用增强for循环输出排序后的学生信息。
阅读全文