📅  最后修改于: 2023-12-03 15:42:11.397000             🧑  作者: Mango
本题需要实现一个关于学生选修课程的系统。该系统允许学生进行选课、退课、查询选课情况以及查询某门课程的选课情况。
add_student(student_id, student_name)
: 向系统中添加新的学生,并记录其学号和姓名。
def add_student(student_id: int, student_name: str) -> None:
pass
add_course(course_id, course_name)
: 向系统中添加新的课程,并记录其课程编号和名称。
def add_course(course_id: int, course_name: str) -> None:
pass
add_course_selection(student_id, course_id)
: 学生选修某门课程。
def add_course_selection(student_id: int, course_id: int) -> None:
pass
drop_course_selection(student_id, course_id)
: 学生退选某门课程。
def drop_course_selection(student_id: int, course_id: int) -> None:
pass
get_student_courses(student_id)
: 返回某个学生选修的所有课程。
def get_student_courses(student_id: int) -> List[int]:
pass
get_course_students(course_id)
: 返回选修某门课程的所有学生。
def get_course_students(course_id: int) -> List[int]:
pass
下面是一个简单的示例程序,用于演示上述功能:
# 存储学生和课程信息的字典
students = {}
courses = {}
def add_student(student_id: int, student_name: str) -> None:
students[student_id] = student_name
def add_course(course_id: int, course_name: str) -> None:
courses[course_id] = course_name
def add_course_selection(student_id: int, course_id: int) -> None:
if student_id not in students:
raise ValueError('无效的学生ID')
if course_id not in courses:
raise ValueError('无效的课程ID')
if course_id not in students[student_id]:
students[student_id].append(course_id)
def drop_course_selection(student_id: int, course_id: int) -> None:
if student_id not in students:
raise ValueError('无效的学生ID')
if course_id not in courses:
raise ValueError('无效的课程ID')
if course_id in students[student_id]:
students[student_id].remove(course_id)
def get_student_courses(student_id: int) -> List[int]:
if student_id not in students:
raise ValueError('无效的学生ID')
return students[student_id]
def get_course_students(course_id: int) -> List[int]:
if course_id not in courses:
raise ValueError('无效的课程ID')
return [student_id for student_id, course_ids in students.items() if course_id in course_ids]
注意,上述示例程序仅用于演示功能。实际应用中,需要根据具体需求进行适当的修改和扩展。