通讯录管理系统 用Python完成通讯录管理系统并输出代码。 完成通讯录管理系统,具有以下功能: (1)增加联系人。 (2)删除联系人。 (3)可按联系人姓名、单位、电话,查找对应的联系人,如果查询结果有多个, 输出所有结果。 (4)提供联系人信息的保存、读取功能。
时间: 2024-02-29 14:51:19 浏览: 21
以下是用 Python 完成通讯录管理系统的代码:
```python
import json
class Contact:
def __init__(self, name, company, phone):
self.name = name
self.company = company
self.phone = phone
class ContactList:
def __init__(self):
self.contacts = []
def add_contact(self):
name = input("请输入联系人姓名:")
company = input("请输入联系人单位:")
phone = input("请输入联系人电话:")
contact = Contact(name, company, phone)
self.contacts.append(contact)
print("联系人添加成功!")
def delete_contact(self):
name = input("请输入要删除的联系人姓名:")
for contact in self.contacts:
if contact.name == name:
self.contacts.remove(contact)
print("联系人删除成功!")
return
print("未找到该联系人!")
def search_contact(self):
keyword = input("请输入要查找的关键词:")
search_results = []
for contact in self.contacts:
if keyword in [contact.name, contact.company, contact.phone]:
search_results.append(contact)
if len(search_results) == 0:
print("未找到符合条件的联系人!")
else:
print("共找到 %d 个符合条件的联系人:" % len(search_results))
for contact in search_results:
print("姓名:%s,单位:%s,电话:%s" % (contact.name, contact.company, contact.phone))
def save_contacts(self, filename):
with open(filename, "w") as f:
json.dump([contact.__dict__ for contact in self.contacts], f)
print("联系人信息保存成功!")
def load_contacts(self, filename):
try:
with open(filename, "r") as f:
contact_data = json.load(f)
self.contacts = [Contact(**data) for data in contact_data]
print("联系人信息读取成功!")
except FileNotFoundError:
print("未找到指定文件!")
def main():
contact_list = ContactList()
while True:
print("""
欢迎使用通讯录管理系统!
1. 增加联系人
2. 删除联系人
3. 查找联系人
4. 保存联系人信息
5. 读取联系人信息
6. 退出程序
""")
choice = input("请输入您的选择:")
if choice == "1":
contact_list.add_contact()
elif choice == "2":
contact_list.delete_contact()
elif choice == "3":
contact_list.search_contact()
elif choice == "4":
filename = input("请输入要保存的文件名:")
contact_list.save_contacts(filename)
elif choice == "5":
filename = input("请输入要读取的文件名:")
contact_list.load_contacts(filename)
elif choice == "6":
print("感谢使用本程序,再见!")
break
else:
print("无效的选择,请重新输入!")
if __name__ == "__main__":
main()
```
这个通讯录管理系统使用了 Python 的面向对象编程,定义了 Contact 类和 ContactList 类。Contact 类表示一个联系人,包含姓名、单位和电话三个属性;ContactList 类表示一个联系人列表,包含增加、删除、查找、保存和读取联系人信息等五个方法。程序的主函数中,使用一个无限循环来处理用户的输入,根据用户的选择调用 ContactList 类的相应方法。联系人信息保存在一个 JSON 文件中。