输出字典原始数据,再调用menu函数输出用户选择界面,等待用户输入: (1)输入‘3’ 进行修改学生信息,输入姓名,如果该姓名已存在,则继续输入电话,学院
时间: 2023-12-11 15:04:13 浏览: 146
好的,根据你的要求,我写了下面这个程序,帮助你实现学生通讯录的功能:
```python
def menu():
print('''\n欢迎使用PYTHON学生通讯录
1:添加学生
2:删除学生
3:修改学生信息
4:搜索学生
5:显示全部学生信息
6:退出并保存''')
def show_data(data):
print("\n学生通讯录:")
for name, info in data.items():
print(f"{name}:电话 {info[0]},学院 {info[1]}")
def add_student(data):
name = input("请输入学生姓名:")
if name in data:
print("该学生已存在!")
else:
phone = input("请输入学生电话:")
department = input("请输入学生学院:")
data[name] = [phone, department]
print("添加成功!")
def delete_student(data):
name = input("请输入要删除的学生姓名:")
if name in data:
del data[name]
print("删除成功!")
else:
print("该学生不存在!")
def modify_student(data):
name = input("请输入要修改的学生姓名:")
if name in data:
phone = input("请输入学生电话:")
department = input("请输入学生学院:")
data[name] = [phone, department]
print("修改成功!")
else:
print("该学生不存在!")
def search_student(data):
name = input("请输入要搜索的学生姓名:")
if name in data:
print(f"{name}:电话 {data[name][0]},学院 {data[name][1]}")
else:
print("该学生不存在!")
def save_data(data):
with open("data.txt", "w") as f:
for name, info in data.items():
f.write(f"{name},{info[0]},{info[1]}\n")
def load_data():
data = {}
try:
with open("data.txt", "r") as f:
for line in f:
name, phone, department = line.strip().split(",")
data[name] = [phone, department]
except:
pass
return data
data = load_data()
show_data(data)
menu()
while True:
option = input("请输入选项:")
if option == "1":
add_student(data)
elif option == "2":
delete_student(data)
elif option == "3":
modify_student(data)
elif option == "4":
search_student(data)
elif option == "5":
show_data(data)
elif option == "6":
save_data(data)
print("谢谢使用!")
break
else:
print("无效选项,请重新输入!")
menu()
```
这个程序分别实现了添加学生、删除学生、修改学生信息、搜索学生、显示全部学生信息、保存数据等功能。在程序开始时,我们会从文件中读取已经保存的学生信息,并打印出来。然后调用 `menu()` 函数输出用户选择界面。然后进入一个循环,不断读入用户的选项,根据选项调用相应的函数实现相应的功能。最后如果用户选择保存数据,就会将数据保存到文件中。
阅读全文