Java电话本管理系统

电话本是一种用于存储和管理联系人信息的工具。在计算机应用中,可以使用Java编程语言创建电话本管理系统,以实现对联系人的添加、编辑、删除和搜索等功能。本文将介绍如何使用Java编写电话本管理系统,并提供代码示例。

1. 设计概述

在设计电话本管理系统之前,我们需要明确系统的需求和功能。电话本管理系统应该具有以下功能:

  • 添加联系人:用户可以输入联系人的姓名、电话号码和电子邮件地址,以添加新联系人到电话本中。
  • 编辑联系人:用户可以选择要编辑的联系人,并修改其姓名、电话号码和电子邮件地址。
  • 删除联系人:用户可以选择要删除的联系人,并从电话本中删除。
  • 搜索联系人:用户可以根据姓名、电话号码或电子邮件地址搜索联系人。
  • 显示联系人列表:用户可以查看电话本中的所有联系人,并按照姓名的字母顺序进行排序。

基于以上需求,我们可以设计电话本管理系统的实体关系图如下所示:

erDiagram
    CUSTOMER ||--o{ CONTACT : "has"
    CUSTOMER {
        String name
        String phoneNumber
        String email
    }

2. 实现步骤

步骤 1: 创建联系人类

首先,我们需要创建一个Java类来表示联系人。这个类应该包含联系人的姓名、电话号码和电子邮件地址等属性,并提供相应的 getter 和 setter 方法。

public class Contact {
    private String name;
    private String phoneNumber;
    private String email;

    public Contact(String name, String phoneNumber, String email) {
        this.name = name;
        this.phoneNumber = phoneNumber;
        this.email = email;
    }

    // getter and setter methods
}

步骤 2: 创建电话本类

接下来,我们需要创建一个电话本类来实现电话本管理系统的功能。这个类应该包含以下方法:

  • 添加联系人:将新联系人添加到联系人列表中。
  • 编辑联系人:根据索引选择要编辑的联系人,并修改其属性。
  • 删除联系人:根据索引选择要删除的联系人,并从联系人列表中删除。
  • 搜索联系人:根据姓名、电话号码或电子邮件地址搜索联系人,并返回匹配的联系人列表。
  • 显示联系人列表:按照姓名的字母顺序显示所有联系人。
import java.util.ArrayList;
import java.util.List;

public class PhoneBook {
    private List<Contact> contacts;

    public PhoneBook() {
        this.contacts = new ArrayList<>();
    }

    public void addContact(Contact contact) {
        contacts.add(contact);
    }

    public void editContact(int index, Contact newContact) {
        contacts.set(index, newContact);
    }

    public void deleteContact(int index) {
        contacts.remove(index);
    }

    public List<Contact> searchContact(String keyword) {
        List<Contact> results = new ArrayList<>();
        for (Contact contact : contacts) {
            if (contact.getName().contains(keyword) ||
                    contact.getPhoneNumber().contains(keyword) ||
                    contact.getEmail().contains(keyword)) {
                results.add(contact);
            }
        }
        return results;
    }

    public void displayContactList() {
        List<Contact> sortedContacts = new ArrayList<>(contacts);
        sortedContacts.sort((c1, c2) -> c1.getName().compareToIgnoreCase(c2.getName()));
        for (Contact contact : sortedContacts) {
            System.out.println(contact.getName() + " - " +
                    contact.getPhoneNumber() + " - " +
                    contact.getEmail());
        }
    }
}

步骤 3: 使用电话本管理系统

最后,我们可以在主类中使用电话本管理系统。在这个示例中,我们将创建一个电话本对象,并添加、编辑、删除和搜索联系人。

public class Main {
    public static void main(String[] args) {
        PhoneBook phoneBook = new PhoneBook();

        // 添加联系人
        Contact contact1 = new Contact("Alice", "123456789", "alice@example.com");
        Contact contact2 = new Contact("Bob", "987654321", "bob@example.com");
        phoneBook.addContact(contact1);
        phoneBook.addContact(contact2);

        // 编辑联系人
        Contact newContact = new Contact("Alice Smith", "123456789", "alice.smith@example.com");
        phoneBook.editContact(0, newContact);

        // 删除联系人
        phoneBook.deleteContact(1);

        // 搜索联系人
        List<Contact> searchResults =