编写程序,实现一个简单的基于字典数据结构的通信录管理系统。系统采用JSON文件保存数据。通信录设计为字典{name:tel}。程序开始时从adressbook.json文件中读取通信录,然后显示主菜单,具体包括如下功能: (1)显示通信录清单,如果通信录字典中存在用户信息,则显示通信录清单,包括姓名和电话号码。如果通讯录中不存在任何用户,则提示通信录用户为空。 (2)查询联系人,提示用户输入姓名name,在通讯录字典中查询该键。如果存在,输出联系人信息;如果不存在,提示是否新建联系人。 (3)插入新的联系人。提示用户输入姓名name,在通讯录字典中查询该键,如果存在,提示是否更换新联系人信息;如果不存在,提示输入电话号码,并插入字典键值对。 (4)删除已有联系人,提示用户输入姓名name,在通讯录字典中查询该键,如果不存在,输出联系人不存在的提示信息,如果存在,从通讯录字典中删除键值对,并输出信息。 (5)退出,保存通讯录字典到adressbook.json中,推出循环。
时间: 2024-02-21 09:58:08 浏览: 29
好的,我来解答您的问题。
以下是 Python 代码实现一个基于字典数据结构的通讯录管理系统,其中采用 JSON 文件保存数据:
```python
import json
def load_contacts():
try:
with open('adressbook.json', 'r') as f:
contacts = json.load(f)
except FileNotFoundError:
contacts = {}
return contacts
def save_contacts(contacts):
with open('adressbook.json', 'w') as f:
json.dump(contacts, f)
def show_contacts(contacts):
if contacts:
for name, tel in contacts.items():
print(f'{name}: {tel}')
else:
print('通讯录用户为空')
def search_contact(contacts):
name = input('请输入要查询的联系人姓名:')
if name in contacts:
print(f'{name}: {contacts[name]}')
else:
choice = input('该联系人不存在,是否新建联系人?(y/n): ')
if choice.lower() == 'y':
tel = input('请输入新联系人的电话号码:')
contacts[name] = tel
print('新联系人已添加')
else:
print('查询结束')
def insert_contact(contacts):
name = input('请输入要添加的联系人姓名:')
if name in contacts:
choice = input('该联系人已存在,是否更换联系人信息?(y/n): ')
if choice.lower() == 'y':
tel = input('请输入新联系人的电话号码:')
contacts[name] = tel
print('联系人信息已更换')
else:
print('添加联系人取消')
else:
tel = input('请输入新联系人的电话号码:')
contacts[name] = tel
print('新联系人已添加')
def delete_contact(contacts):
name = input('请输入要删除的联系人姓名:')
if name in contacts:
del contacts[name]
print('联系人已删除')
else:
print('该联系人不存在')
def main():
contacts = load_contacts()
while True:
print('通讯录管理系统')
print('1. 显示通讯录清单')
print('2. 查询联系人')
print('3. 插入新的联系人')
print('4. 删除已有联系人')
print('5. 退出')
choice = input('请选择要执行的操作(1/2/3/4/5): ')
if choice == '1':
show_contacts(contacts)
elif choice == '2':
search_contact(contacts)
elif choice == '3':
insert_contact(contacts)
elif choice == '4':
delete_contact(contacts)
elif choice == '5':
save_contacts(contacts)
print('通讯录已保存,程序退出')
break
else:
print('无效的选项,请重新选择')
if __name__ == '__main__':
main()
```
在上述代码中,我们定义了 `load_contacts()` 函数和 `save_contacts()` 函数,分别用于从 JSON 文件中读取通讯录数据和将通讯录数据保存到 JSON 文件中。`show_contacts()` 函数用于显示通讯录清单,`search_contact()` 函数用于查询联系人,`insert_contact()` 函数用于插入新的联系人,`delete_contact()` 函数用于删除已有联系人。最后,我们在 `main()` 函数中实现了一个简单的菜单,根据用户的选择调用相应的函数来执行操作。