本实例要求编写代码,实现一个基于面向对象的、具有添加、删除、修改、查找联系人信息,以及查看所有联系人的信息功能的通讯录程序
时间: 2024-05-01 13:18:16 浏览: 146
非常好,这是一个非常实用的功能。那么,实现这个通讯录程序,你需要首先设计一个Contact类,包含联系人的姓名、电话号码、地址等属性,并提供对这些属性进行增删改查的方法。接着,你需要设计一个AddressBook类,用于管理联系人,包括添加联系人、删除联系人、修改联系人信息、查找联系人等方法,并提供查看所有联系人信息的功能。
下面是一个基于面向对象设计的通讯录程序的代码示例:
```
class Contact:
def __init__(self, name, phone_number, address):
self.name = name
self.phone_number = phone_number
self.address = address
def __str__(self):
return f'Name: {self.name}, Phone Number: {self.phone_number}, Address: {self.address}'
class AddressBook:
def __init__(self):
self.contacts = []
def add_contact(self, contact):
self.contacts.append(contact)
def remove_contact(self, name):
for contact in self.contacts:
if contact.name == name:
self.contacts.remove(contact)
return True
return False
def update_contact(self, name, phone_number=None, address=None):
for contact in self.contacts:
if contact.name == name:
if phone_number:
contact.phone_number = phone_number
if address:
contact.address = address
return True
return False
def search_contact(self, name):
for contact in self.contacts:
if contact.name == name:
return contact
return None
def display_all_contacts(self):
for contact in self.contacts:
print(contact)
```
在这个程序中,Contact类表示一个联系人,包含name、phone_number、address三个属性和__str__方法。AddressBook类表示一个通讯录,包含contacts列表和add_contact、remove_contact、update_contact、search_contact、display_all_contacts这些方法。在程序中通过调用这些方法来实现对通讯录的操作。
例如,下面是一个使用这个通讯录程序的示例代码:
```
address_book = AddressBook()
# 添加联系人
contact1 = Contact('John', '1234567890', '123 Main St')
address_book.add_contact(contact1)
contact2 = Contact('Mary', '2345678901', '456 Walnut St')
address_book.add_contact(contact2)
# 查找联系人
print(address_book.search_contact('John'))
# 修改联系人信息
address_book.update_contact('John', phone_number='0987654321')
# 查看所有联系人信息
address_book.display_all_contacts()
# 删除联系人
address_book.remove_contact('John')
# 查看所有联系人信息
address_book.display_all_contacts()
```
这个程序会输出以下结果:
```
Name: John, Phone Number: 1234567890, Address: 123 Main St
Name: John, Phone Number: 0987654321, Address: 123 Main St
Name: Mary, Phone Number: 2345678901, Address: 456 Walnut St
Name: Mary, Phone Number: 2345678901, Address: 456 Walnut St
```
阅读全文