Ex1:已知字符串如实践教程P77_1, 其中存放了某一门公共课的选课信息,包括学生的学号(固定长度为6位)、姓名和专业。试编写程序,实现以下功能: (1) 根据用户输入的学生姓名对该学生是否已经成功选课进行查询(不考虑重名等特殊情况),并将结果输出。 (2) 根据用户输入的学生姓名查询学生的相关信息(包括学号、姓名和专业)。 (3) 根据用户输入的专业名称统计该专业的选课人数、并输出选课名单
时间: 2023-12-22 13:04:53 浏览: 154
一个学生信息查询的程序
这是一个比较典型的字符串处理问题,可以使用字符串的相关函数实现。以下是一个Python的实现示例:
```python
# 定义选课信息
course_info = "001001张三计算机科学\n002001李四计算机科学\n003001王五机械工程\n004001赵六电子工程\n005001钱七电子工程"
# (1) 根据学生姓名查询是否已选
def is_selected(name):
if name in course_info:
return True
else:
return False
# (2) 根据学生姓名查询相关信息
def get_info(name):
if name in course_info:
index = course_info.index(name)
student_info = course_info[index-6:index+10]
return student_info
else:
return "该学生未选课!"
# (3) 根据专业名称统计选课人数并输出选课名单
def count_major(major):
count = 0
selected_students = []
for i in range(0, len(course_info), 16):
if course_info[i+12:i+12+len(major)] == major:
count += 1
selected_students.append(course_info[i:i+12])
print("专业%s的选课人数为%d人,名单如下:" % (major, count))
for student in selected_students:
print(student)
# 测试函数
print(is_selected("张三")) # True
print(get_info("张三")) # 001001张三计算机科学
print(count_major("电子工程"))
# 专业电子工程的选课人数为2人,名单如下:
# 004001赵六
# 005001钱七
```
注意,本示例仅考虑了输入正确的情况,对于输入格式错误等异常情况需要进行相应处理。
阅读全文