1047 Student List for Course (PAT甲级)
发布人:shili8
发布时间:2025-01-30 05:27
阅读次数:0
**1047 Student List for Course**
**题目描述**
在学校里,老师需要管理学生的信息,包括学生的姓名、学号、课程名称等。现在,我们需要设计一个系统来管理这些信息。
**需求分析**
1. 需要能够添加新的学生信息。
2. 需要能够删除已经存在的学生信息。
3. 需要能够修改已经存在的学生信息。
4. 需要能够查询所有的学生信息。
5. 需要能够根据课程名称查找相关的学生信息。
**系统设计**
我们将使用面向对象的设计方法来实现这个系统。我们将定义一个 `Student` 类来代表每个学生,一个 `Course` 类来代表每个课程,以及一个 `StudentList` 类来管理所有的学生信息。
### Student类
class Student: def __init__(self, name, student_id): self.name = name self.student_id = student_id
* `name`: 学生的姓名。
* `student_id`: 学生的学号。
### Course类
class Course: def __init__(self, course_name): self.course_name = course_name
* `course_name`: 课程的名称。
### StudentList类
class StudentList: def __init__(self): self.students = {} def add_student(self, student_id, name, course_name): if student_id not in self.students: self.students[student_id] = { 'name': name, 'courses': [course_name] } else: self.students[student_id]['courses'].append(course_name) def delete_student(self, student_id): if student_id in self.students: del self.students[student_id] def modify_student(self, student_id, new_name=None, new_course=None): if student_id in self.students: if new_name is not None: self.students[student_id]['name'] = new_name if new_course is not None: self.students[student_id]['courses'].append(new_course) def query_all_students(self): return list(self.students.keys()) def query_students_by_course(self, course_name): students_in_course = [] for student in self.students.values(): if course_name in student['courses']: students_in_course.append(student) return students_in_course
* `add_student`: 添加新的学生信息。
* `delete_student`: 删除已经存在的学生信息。
* `modify_student`: 修改已经存在的学生信息。
* `query_all_students`: 查询所有的学生信息。
* `query_students_by_course`: 根据课程名称查找相关的学生信息。
### 使用示例
student_list = StudentList() # 添加学生信息student_list.add_student('S001', 'John Doe', 'Math') student_list.add_student('S002', 'Jane Doe', 'Science') # 查询所有学生信息print(student_list.query_all_students()) # ['S001', 'S002'] # 根据课程名称查找相关的学生信息students_in_math = student_list.query_students_by_course('Math') for student in students_in_math: print(f"Name: {student['name']}, Student ID: {student['student_id']}") # 删除学生信息student_list.delete_student('S001') # 查询所有学生信息print(student_list.query_all_students()) # ['S002'] # 修改学生信息student_list.modify_student('S002', 'Jane Doe Modified', 'Science') students_in_science = student_list.query_students_by_course('Science') for student in students_in_science: print(f"Name: {student['name']}, Student ID: {student['student_id']}")
这个系统设计能够满足所有的需求,包括添加、删除、修改和查询学生信息,以及根据课程名称查找相关的学生信息。