创建一个学生选课字典,字典记录两名学生选课信息,学生姓名文件选择的课程用例表表示。创建完成后输出每个学生姓名及选课信息。
时间: 2024-11-09 12:22:50 浏览: 36
创建一个学生选课字典,我们可以按照以下步骤来进行。假设我们有一个包含学生姓名和他们选课的文本文件(如`students_courses.txt`),每行格式为`姓名 课程1 课程2 ...`。首先读取文件内容,然后构建字典。
```python
# 打开并读取文件
with open('students_courses.txt', 'r') as file:
lines = file.readlines()
# 初始化空字典
student_courses_dict = {}
# 遍历文件内容,将每行转化为字典条目
for line in lines:
student_name, *courses = line.strip().split() # 分割线并获取姓名和课程
student_courses_dict[student_name] = courses # 添加到字典
# 输出每个学生及其选课信息
for student, courses in student_courses_dict.items():
print(f"学生:{student}\n选课:{', '.join(courses)}\n")
相关问题
plant text uml 学生选课系统用例表
PlantUML是一种文本描述的UML图形表示语言,可以通过编写简单的文本代码来快速生成各种类型的UML图形。学生选课系统是一个常见的软件系统,以下是该系统的用例表:
--用例表--
用例名称:学生登录
参与者:学生
描述:学生使用用户名和密码登录系统。
优先级:高
正常流程:
1. 学生打开登录页面。
2. 学生输入用户名和密码。
3. 系统验证用户名和密码。
4. 如果验证通过,系统跳转到学生主页。
扩展流程:
1a. 如果学生输入的用户名或密码错误,系统提示“用户名或密码错误”。
用例名称:学生选课
参与者:学生
描述:学生在系统中选择要上的课程。
优先级:高
正常流程:
1. 学生打开课程列表页面。
2. 学生选择要上的课程。
3. 学生点击“确认选课”按钮。
4. 系统将选课信息保存,并提示“选课成功”。
扩展流程:
2a. 如果学生选择的课程已经满员,系统提示“该课程已满员”。
用例名称:学生查看已选课程
参与者:学生
描述:学生查看已选的课程列表。
优先级:中
正常流程:
1. 学生打开已选课程页面。
2. 系统显示学生已选的课程列表。
扩展流程:
无
用例名称:学生退选课程
参与者:学生
描述:学生取消已经选择的课程。
优先级:高
正常流程:
1. 学生打开已选课程页面。
2. 学生选择要退选的课程。
3. 学生点击“确认退选”按钮。
4. 系统将退选信息保存,并提示“退选成功”。
扩展流程:
2a. 如果学生选择的课程不存在,系统提示“该课程不存在”。
画出学生选课系统类图 分别为 登录用例 选课用例 退课用例 查看课程用例以及更改密码用例
在绘制学生选课系统的类图时,我们会涉及几个核心类以及它们之间的交互关系。这里是一个简单的描述:
1. **学生(Student)** 类:包含属性如姓名、学号和密码,以及方法如注册(Enrollment)、选课(Choice), 退课(DropClass), 查看课程(ViewCourses) 和更改密码(ChangePassword)。
```text
+----------------+
| Student |
+----------------+
| -name: string |
| -id: int |
| -password: str |
+----------------+
| +enrollment(): void|
| +choice(course): void|
| +dropClass(course): void|
| +viewCourses(): void|
| +changePassword(newPassword): void|
+----------------+
```
2. **课程(Course)** 类:表示一门课程,有课程ID、名称等属性,可能会有选课人数和剩余名额信息。
```text
+----------------+
| Course |
+----------------+
| -id: int |
| -name: string |
| -students: list |
| +addStudent(student): void|
| -remainingSeats: int|
+----------------+
```
3. **选课系统(EnrollmentSystem)** 或 **教务管理(Moodle-like System)** 类:包含了上述学生和课程类,负责处理各种用例操作,如管理用户登录、执行业务逻辑。
```text
+--+
| -studentList: list<Student>|
| -courseList: list<Course> |
+----------------------------+
| +login(username, password): bool|
| +executeUseCase(useCase): void|
+----------------------------+
```
**用例说明**:
- **登录用例**: 学生实例调用 `EnrollmentSystem.login()` 提供用户名和密码验证身份。
- **选课用例**: 学生通过 `Student.choice(course)` 向系统请求选课,系统更新学生列表和课程信息。
- **退课用例**: 学生使用 `Student.dropClass(course)` 调用,系统从学生选课列表中移除该课程,并更新剩余名额。
- **查看课程用例**: 学生通过 `Student.viewCourses()` 获取已选课程列表。
- **更改密码用例**: 学生通过 `Student.changePassword(newPassword)` 更新个人密码,系统需要验证原密码并设置新密码。
阅读全文