📜  门| GATE CS 2010 |问题6(1)

📅  最后修改于: 2023-12-03 15:42:11.397000             🧑  作者: Mango

门 | GATE CS 2010 |问题6

本题需要实现一个关于学生选修课程的系统。该系统允许学生进行选课、退课、查询选课情况以及查询某门课程的选课情况。

系统功能
  1. add_student(student_id, student_name) : 向系统中添加新的学生,并记录其学号和姓名。

    def add_student(student_id: int, student_name: str) -> None:
        pass
    
  2. add_course(course_id, course_name) : 向系统中添加新的课程,并记录其课程编号和名称。

    def add_course(course_id: int, course_name: str) -> None:
        pass
    
  3. add_course_selection(student_id, course_id) : 学生选修某门课程。

    def add_course_selection(student_id: int, course_id: int) -> None:
        pass
    
  4. drop_course_selection(student_id, course_id) : 学生退选某门课程。

    def drop_course_selection(student_id: int, course_id: int) -> None:
        pass
    
  5. get_student_courses(student_id) : 返回某个学生选修的所有课程。

    def get_student_courses(student_id: int) -> List[int]:
        pass
    
  6. 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]

注意,上述示例程序仅用于演示功能。实际应用中,需要根据具体需求进行适当的修改和扩展。