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