代码是什么呢
时间: 2023-09-09 20:08:13 浏览: 60
以下是一个基于Python的简单通讯录管理系统的代码示例,其中实现了您提到的所有功能要求:
```python
import json
class Contact:
def __init__(self, name, phone, email):
self.name = name
self.phone = phone
self.email = email
class ContactList:
def __init__(self):
self.contacts = []
def add_contact(self, contact):
self.contacts.append(contact)
def remove_contact(self, contact):
self.contacts.remove(contact)
def modify_contact(self, old_contact, new_contact):
index = self.contacts.index(old_contact)
self.contacts[index] = new_contact
def search_contact(self, name):
result = []
for contact in self.contacts:
if contact.name == name:
result.append(contact)
return result
def get_all_contacts(self):
return self.contacts
def save_to_file(self, filename):
with open(filename, 'w') as f:
json.dump(self.contacts, f, default=lambda obj: obj.__dict__)
def load_from_file(self, filename):
with open(filename, 'r') as f:
data = json.load(f)
for item in data:
contact = Contact(**item)
self.contacts.append(contact)
def sort_contacts(self, key='name'):
self.contacts.sort(key=lambda x: getattr(x, key))
def main():
contact_list = ContactList()
contact_list.load_from_file('contacts.json')
while True:
print('请选择操作:')
print('1. 新增联系人')
print('2. 删除联系人')
print('3. 修改联系人')
print('4. 查询联系人')
print('5. 查看所有联系人')
print('6. 保存并退出')
choice = input('> ')
if choice == '1':
name = input('请输入姓名:')
phone = input('请输入电话号码:')
email = input('请输入电子邮件:')
contact = Contact(name, phone, email)
contact_list.add_contact(contact)
print('联系人已添加。')
elif choice == '2':
name = input('请输入要删除的联系人姓名:')
contacts = contact_list.search_contact(name)
if not contacts:
print('未找到该联系人。')
else:
for contact in contacts:
contact_list.remove_contact(contact)
print('联系人已删除。')
elif choice == '3':
name = input('请输入要修改的联系人姓名:')
contacts = contact_list.search_contact(name)
if not contacts:
print('未找到该联系人。')
else:
for contact in contacts:
phone = input('请输入电话号码:')
email = input('请输入电子邮件:')
new_contact = Contact(name, phone, email)
contact_list.modify_contact(contact, new_contact)
print('联系人已修改。')
elif choice == '4':
name = input('请输入要查询的联系人姓名:')
contacts = contact_list.search_contact(name)
if not contacts:
print('未找到该联系人。')
else:
for contact in contacts:
print('姓名:', contact.name)
print('电话号码:', contact.phone)
print('电子邮件:', contact.email)
elif choice == '5':
contacts = contact_list.get_all_contacts()
if not contacts:
print('通讯录为空。')
else:
for contact in contacts:
print('姓名:', contact.name)
print('电话号码:', contact.phone)
print('电子邮件:', contact.email)
elif choice == '6':
contact_list.save_to_file('contacts.json')
print('通讯录已保存。')
break
else:
print('无效的选择。')
if __name__ == '__main__':
main()
```
在这个程序中,Contact类表示一个联系人,其中包含姓名、电话号码和电子邮件。ContactList类表示通讯录,其中包含添加、删除、修改、查询和排序联系人等方法。程序使用JSON格式来保存和加载通讯录数据,以便能够方便地在程序启动和关闭时保存和加载数据。用户可以在控制台上与程序进行交互,并执行不同的操作。