定义一个课程类,定义一个选课接口,用学生类实现
时间: 2023-06-08 22:06:50 浏览: 72
好的,我理解您的问题。以下是一个基本的Python代码示例来定义课程类,并实现一个选课接口,以及使用学生类实例化这个接口的例子:
```
# 定义课程类
class Course:
def __init__(self, name, code, credit):
self.name = name
self.code = code
self.credit = credit
# 定义选课接口
class CourseEnrollment:
def __init__(self):
self.enrolled_courses = []
def enroll(self, course):
self.enrolled_courses.append(course)
# 实现学生类
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
self.enrollments = {}
def add_enrollment(self, course, enrollment):
self.enrollments[course.code] = enrollment
# 实例化课程
maths = Course("Mathematics", "MATH101", 3)
english = Course("English", "ENG101", 3)
# 实例化选课接口
enrollment = CourseEnrollment()
# 选课
enrollment.enroll(maths)
enrollment.enroll(english)
# 实例化一个学生
student = Student("John Smith", 20)
# 添加选课到学生的注册表
student.add_enrollment(maths, enrollment)
student.add_enrollment(english, enrollment)
# 打印学生和选课信息
for code, enrollment in student.enrollments.items():
print(f"{student.name} is enrolled in {enrollment.enrolled_courses} for course {code}.\n")
```
这个例子中,我们定义了一个课程类`Course`,它有一个名称`name`,一个代码`code`,和一个学分`credit`。然后,我们定义了一个选课接口`CourseEnrollment`,它使用一个列表来记录已经选修了的课程。
我们使用`Student`类来实例化这个接口,这个类包含一个学生的名字`name`,年龄`age`,和一个`add_enrollment()`方法来将一个学生的选课与他的注册表关联。
最后,我们实例化了一个学生,并将他的选课添加到他的注册表中。最后,我们通过循环打印学生和他的课程信息。