编写程序,实现一个简单的基于字典数据结构的通信录管理系统。系统采用JSON文件保存数据。通信录设计为字典{name:tel}。程序开始时从adressbook.json文件中读取通信录,然后显示主菜单,具体包括如下功能: (1)显示通信录清单,如果通信录字典中存在用户信息,则显示通信录清单,包括姓名和电话号码。如果通讯录中不存在任何用户,则提示通信录用户为空。 (2)查询联系人,提示用户输入姓名name,在通讯录字典中查询该键。如果存在,输出联系人信息;如果不存在,提示是否新建联系人。 (3)插入新的联系人。提示用户输入姓名name,在通讯录字典中查询该键,如果存在,提示是否更换新联系人信息;如果不存在,提示输入电话号码,并插入字典键值对。 (4)删除已有联系人,提示用户输入姓名name,在通讯录字典中查询该键,如果不存在,输出联系人不存在的提示信息,如果存在,从通讯录字典中删除键值对,并输出信息。 (5)退出,保存通讯录字典到adressbook.json中,推出循环
时间: 2024-02-21 07:57:11 浏览: 138
好的,以下是一个简单的基于字典数据结构的通讯录管理系统的Python程序,满足您的需求:
```python
import json
# 从文件中读取通信录
try:
with open('adressbook.json', 'r') as f:
address_book = json.load(f)
except (FileNotFoundError, json.JSONDecodeError):
address_book = {}
# 主菜单显示函数
def main_menu():
print("="*30)
print(" 通信录管理系统")
print("="*30)
print("1. 显示通信录")
print("2. 查询联系人")
print("3. 插入新的联系人")
print("4. 删除已有联系人")
print("5. 退出")
print("="*30)
# 显示通信录函数
def display_address_book():
if address_book:
print("通信录:")
for name, tel in address_book.items():
print(f"{name}: {tel}")
else:
print("通信录用户为空!")
# 查询联系人函数
def search_contact():
name = input("请输入要查询的联系人姓名:")
if name in address_book:
print(f"{name}: {address_book[name]}")
else:
choice = input("联系人不存在,是否新建联系人?(Y/N)")
if choice.lower() == 'y':
tel = input("请输入联系人电话号码:")
address_book[name] = tel
print(f"{name}已成功加入通信录!")
# 插入新的联系人函数
def insert_contact():
name = input("请输入要插入的联系人姓名:")
if name in address_book:
choice = input("该联系人已存在,是否更换新联系人信息?(Y/N)")
if choice.lower() == 'y':
tel = input("请输入新的联系人电话号码:")
address_book[name] = tel
print(f"{name}的信息已更新!")
else:
tel = input("请输入新联系人的电话号码:")
address_book[name] = tel
print(f"{name}已成功加入通信录!")
# 删除联系人函数
def delete_contact():
name = input("请输入要删除的联系人姓名:")
if name in address_book:
del address_book[name]
print(f"{name}已从通信录中删除!")
else:
print("联系人不存在!")
# 主循环
while True:
main_menu()
choice = input("请输入您的选择:")
if choice == '1':
display_address_book()
elif choice == '2':
search_contact()
elif choice == '3':
insert_contact()
elif choice == '4':
delete_contact()
elif choice == '5':
break
else:
print("无效的输入,请重新输入!")
# 保存通信录到文件
with open('adressbook.json', 'w') as f:
json.dump(address_book, f)
print("感谢使用通信录管理系统!")
```
您可以将上面的代码复制到一个Python文件中,然后运行即可。在程序运行时,它会从`adressbook.json`文件中读取通信录数据(如果存在的话),然后显示一个主菜单,允许您执行各种操作。在您退出程序时,它会将通信录数据保存回`adressbook.json`文件中。
阅读全文