已知有一个文件student.txt保存班级的学生名单。每个学生的记录占据一行,形如: 6009125088,张三 6009125090,李四 …… 请编写程序,实现简单学生记录检索应用。即从键盘输入一个学生的学号,如果学号在在student.txt文件中,可以显示该学生记录,如果输入的学号不在文件中,则显示检索失败的信息。其中,代码必须结合异常处理机制来实现,例如自定义一个StudentNotFoundException用于表示学生检索失败的异常。
时间: 2024-04-02 15:31:37 浏览: 76
studentlist.rar_eyekv5_学生成绩线性表
好的,我来给您编写这个程序,以下是示例代码:
```python
class StudentNotFoundException(Exception):
pass
def search_student(student_id):
try:
with open('student.txt', 'r', encoding='utf-8') as f:
for line in f:
if line.startswith(student_id):
return line.strip().split(',')[1]
raise StudentNotFoundException
except FileNotFoundError:
print('找不到学生名单文件!')
except StudentNotFoundException:
print('未找到该学生的记录!')
if __name__ == '__main__':
student_id = input('请输入要检索的学生学号:')
search_student(student_id)
```
代码说明:
1. 自定义了一个`StudentNotFoundException`异常类用于表示学生检索失败的异常。
2. `search_student`函数用于从文件中查找学生记录,如果找到了返回学生的姓名,如果未找到则抛出`StudentNotFoundException`异常。
3. 在`search_student`函数中使用了`with open`语句来打开`student.txt`文件,并使用`encoding='utf-8'`参数指定文件编码为UTF-8。
4. 在`search_student`函数中使用了`try...except`语句来捕获文件不存在和学生检索失败的异常,并进行相应的处理。
5. 在`main`函数中,使用`input`函数获取用户输入的学生学号,并调用`search_student`函数进行检索。
希望能够帮助到您!
阅读全文