当前位置:实例文章 » 其他实例» [文章]1047 Student List for Course (PAT甲级)

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']}")


这个系统设计能够满足所有的需求,包括添加、删除、修改和查询学生信息,以及根据课程名称查找相关的学生信息。

相关标签:list数据结构
其他信息

其他资源

Top