Python简易电话簿系统

电话簿系统是一个常见的应用程序,用于存储和管理联系人的信息。通过使用Python编程语言,我们可以轻松地创建一个简单而有效的电话簿系统。本文将介绍如何使用Python编写电话簿系统,并提供代码示例。

1. 设计思路

我们的电话簿系统将具有以下功能:

  1. 添加联系人:用户可以输入姓名和电话号码,将联系人添加到电话簿中。
  2. 搜索联系人:用户可以输入姓名,系统将输出匹配的联系人信息。
  3. 更新联系人信息:用户可以输入姓名和新的电话号码,系统将更新联系人的电话号码。
  4. 删除联系人:用户可以输入姓名,系统将删除匹配的联系人信息。
  5. 显示所有联系人:系统将显示电话簿中的所有联系人信息。

2. 代码实现

2.1 定义联系人类

首先,我们需要定义一个Contact类来表示电话簿中的联系人。该类包含姓名和电话号码两个属性,并提供设置和获取属性值的方法。

class Contact:
    def __init__(self, name, phone_number):
        self.name = name
        self.phone_number = phone_number

    def get_name(self):
        return self.name

    def set_name(self, name):
        self.name = name

    def get_phone_number(self):
        return self.phone_number

    def set_phone_number(self, phone_number):
        self.phone_number = phone_number

2.2 定义电话簿类

接下来,我们需要定义一个PhoneBook类来表示电话簿。该类包含一个联系人列表,并提供添加、搜索、更新、删除和显示联系人信息的方法。

class PhoneBook:
    def __init__(self):
        self.contacts = []

    def add_contact(self, contact):
        self.contacts.append(contact)

    def search_contact(self, name):
        for contact in self.contacts:
            if contact.get_name() == name:
                return contact
        return None

    def update_contact(self, name, phone_number):
        contact = self.search_contact(name)
        if contact:
            contact.set_phone_number(phone_number)
            return True
        return False

    def delete_contact(self, name):
        contact = self.search_contact(name)
        if contact:
            self.contacts.remove(contact)
            return True
        return False

    def display_contacts(self):
        for contact in self.contacts:
            print(f"Name: {contact.get_name()}, Phone number: {contact.get_phone_number()}")

2.3 用户界面

为了与用户进行交互,我们可以使用一个简单的命令行界面。用户可以根据提示进行操作,例如输入数字来选择要执行的操作。

def main():
    phone_book = PhoneBook()
  
    while True:
        print("1. Add contact")
        print("2. Search contact")
        print("3. Update contact")
        print("4. Delete contact")
        print("5. Display all contacts")
        print("6. Exit")
      
        choice = input("Enter your choice: ")
      
        if choice == "1":
            name = input("Enter name: ")
            phone_number = input("Enter phone number: ")
            contact = Contact(name, phone_number)
            phone_book.add_contact(contact)
        elif choice == "2":
            name = input("Enter name: ")
            contact = phone_book.search_contact(name)
            if contact:
                print(f"Name: {contact.get_name()}, Phone number: {contact.get_phone_number()}")
            else:
                print("Contact not found")
        elif choice == "3":
            name = input("Enter name: ")
            phone_number = input("Enter new phone number: ")
            result = phone_book.update_contact(name, phone_number)
            if result:
                print("Contact updated successfully")
            else:
                print("Contact not found")
        elif choice == "4":
            name = input("Enter name: ")
            result = phone_book.delete_contact(name)
            if result:
                print("Contact deleted successfully")
            else:
                print("Contact not found")
        elif choice == "5":
            phone_book.display_contacts()
        elif choice == "6":
            break
        else:
            print("Invalid choice")

if __name__ == "__main__":
    main()

3. 流程图

下面是电话簿系统的流程图表示:

flowchart TD
    A[开始] --> B{选择操作}
    B --> |1| C[添加联系人]
    B --> |2| D[搜索联系人]
    B --> |3| E[更新联系人信息]
    B --> |4| F[删除联系人]
    B --> |5| G[