(1)设计一个Student类,要求: TStudent类有三个私有成员变量属性) intsno表示学号 intsclass表示班级 int score表示成绩 2编写有三个参数的构造方法以完成成员变量的初始化。 3重tostring0方法,返回一个学生的各成员变量的信息,每个成员变量占一个制表位。 4重写equals0方法用于规定班级相同的两个学生相等 5重写Comparable接口中的compareT()方法使学生类的数组可以通过调用Arrays类的sort0方法进行排序,排序要求为按成绩降序排 (2)设计主类:要求 创建包含20个Student类对象的数组 2使用循环输入20个学生信息存入数组, 其中学号依次为1 -20. 班级1- 3随机产生,成绩90-100随机产生;3使用增强for循环输出学生数组的信息,其中每个学生信息调用tostring0方法输出。 4通过调用equals)方法找出与第一个学生同班的学生并输出。 ⑤调用Arrays类的sort0方法对学生数组按成绩降序排列。 6使用增强for循环输出排序后的学生信息
时间: 2024-02-11 16:08:41 浏览: 73
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
好的,以下是代码示例:
```python
import random
from typing import List
class Student:
def __init__(self, sno: int, sclass: int, score: int):
self.__sno = sno
self.__sclass = sclass
self.__score = score
def to_string(self):
return str(self.__sno) + "\t" + str(self.__sclass) + "\t" + str(self.__score)
def __eq__(self, other):
return self.__sclass == other.__sclass
def __lt__(self, other):
return self.__score > other.__score
class Main:
def __init__(self):
self.__students = [None] * 20
def generate_students(self):
for i in range(20):
sno = i + 1
sclass = random.randint(1, 3)
score = random.randint(90, 100)
self.__students[i] = Student(sno, sclass, score)
def print_students(self):
for student in self.__students:
print(student.to_string())
def find_same_class(self):
same_class_students = []
for student in self.__students:
if student == self.__students[0]:
same_class_students.append(student)
return same_class_students
def sort_students(self):
self.__students.sort()
def print_sorted_students(self):
for student in self.__students:
print(student.to_string())
main = Main()
main.generate_students()
print("学号\t班级\t成绩")
main.print_students()
print("\n与第一个学生同班的学生:")
same_class_students = main.find_same_class()
for student in same_class_students:
print(student.to_string())
print("\n按成绩降序排序后的学生:")
main.sort_students()
main.print_sorted_students()
```
在这个示例中,我们定义了一个名为Student的类,它有三个私有成员变量:sno、sclass和score。我们使用构造函数__init__初始化这三个成员变量,并使用to_string方法返回学生对象的信息,使用__eq__方法规定相同班级的两个学生相等,使用__lt__方法使学生类的对象可以按成绩降序排列。
然后,我们定义了一个名为Main的类,它创建了一个包含20个Student对象的数组__students。我们使用generate_students方法循环输入20个学生信息,其中学号依次为1-20,班级1-3随机产生,成绩90-100随机产生。使用print_students方法使用增强for循环输出学生数组的信息,其中每个学生信息调用to_string方法输出。使用find_same_class方法通过调用__eq__方法找出与第一个学生同班的学生并输出。使用sort_students方法调用Arrays类的sort方法对学生数组按成绩降序排列。使用print_sorted_students方法使用增强for循环输出排序后的学生信息。
阅读全文