设计实现五个班每个班十个学的数据结构,用于存放各班的学生信息。学生信息包含通信姓名和课程成绩(使用随机函数生成)
时间: 2024-09-16 15:03:37 浏览: 36
为了实现这个需求,我们可以创建一个名为`Student`的类,包含姓名和课程成绩两个属性,然后使用一个动态的数据结构,比如Python中的`list`,来维护每个班级的学生集合。假设我们还需要一个`GradeBook`类来管理这些班级。
```python
import random
class Student:
def __init__(self, name, grade_book):
self.name = name
self.grades = {} # 使用字典存储各科成绩,科目作为键,随机分数作为值
def set_grade(self, subject, score):
self.grades[subject] = score
def generate_random_grade(subjects):
return random.randint(60, 100) # 示例,生成60到100之间的随机整数
class GradeBook:
def __init__(self):
self.classes = {
"Class1": [],
"Class2": [],
"Class3": [],
"Class4": [],
"Class5": []
}
def add_student(self, class_name, student):
self.classes[class_name].append(student)
def add_grades_to_students(self):
subjects = ["Math", "English", "Science"] # 假设的科目
for class_name, students in self.classes.items():
for _ in range(10): # 每个班10名学生
student = students.pop() if students else None # 从班级列表中取学生
if student:
for subject in subjects:
student.set_grade(subject, generate_random_grade(subjects))
# 实例化并填充数据
grade_book = GradeBook()
for class_name in grade_book.classes.keys():
for _ in range(10):
student_name = f"Student_{class_name}_{len(grade_book.classes[class_name])+1}"
grade_book.add_student(class_name, Student(student_name, grade_book))
grade_book.add_grades_to_students()
# 现在grade_book对象中包含了五个班级的每个学生及其各科成绩
```
阅读全文