已知有20个学生记录(包括学号,姓名,成绩) 设计三个查找算法,分别实现按学号,姓名,菜单选择查找方式;
时间: 2023-07-15 08:15:12 浏览: 47
以下是三个查找算法的实现:
1. 按学号查找:
```python
def search_by_id(student_records, target_id):
for student in student_records:
if student[0] == target_id:
return student
return None
```
2. 按姓名查找:
```python
def search_by_name(student_records, target_name):
for student in student_records:
if student[1] == target_name:
return student
return None
```
3. 菜单选择查找方式:
```python
def search_menu(student_records):
while True:
print("请选择查找方式:")
print("1. 按学号查找")
print("2. 按姓名查找")
print("3. 退出")
choice = input("请输入选项:")
if choice == "1":
target_id = input("请输入要查找的学号:")
result = search_by_id(student_records, target_id)
if result:
print("查找结果为:", result)
else:
print("没有找到该学生。")
elif choice == "2":
target_name = input("请输入要查找的姓名:")
result = search_by_name(student_records, target_name)
if result:
print("查找结果为:", result)
else:
print("没有找到该学生。")
elif choice == "3":
break
else:
print("输入无效,请重新输入。")
```
调用示例:
```python
student_records = [
("001", "张三", 80),
("002", "李四", 90),
("003", "王五", 85),
("004", "赵六", 70),
("005", "钱七", 95),
("006", "孙八", 88),
("007", "周九", 75),
("008", "吴十", 92),
("009", "郑一", 82),
("010", "冯二", 78),
("011", "陈三", 91),
("012", "卫四", 86),
("013", "蒋五", 73),
("014", "沈六", 97),
("015", "韩七", 89),
("016", "杨八", 83),
("017", "朱九", 76),
("018", "秦十", 93),
("019", "许一", 81),
("020", "何二", 77),
]
search_menu(student_records)
```