liuyanjun 发表于 2023-12-1 10:11:48

JAVA

采用可视化编程,代码行数100行以上,电话簿管理系统设计与实现(可以实现增删改查等功能)

FishC_GPT 发表于 2023-12-1 10:12:25

下面是一个简单的电话簿管理系统的设计与实现,使用Java的可视化编程。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

class Contact {
    private String name;
    private String phoneNumber;

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

    public String getName() {
      return name;
    }

    public String getPhoneNumber() {
      return phoneNumber;
    }
}

class PhoneBook {
    private ArrayList<Contact> contacts;

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

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

    public void removeContact(Contact contact) {
      contacts.remove(contact);
    }

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

public class PhoneBookManager extends JFrame implements ActionListener {
    private JTextField searchField;
    private JTextArea resultArea;
    private JButton addButton;
    private JButton searchButton;

    private PhoneBook phoneBook;

    public PhoneBookManager() {
      phoneBook = new PhoneBook();

      setTitle("电话簿管理系统");
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      searchField = new JTextField(20);
      resultArea = new JTextArea(10, 20);
      resultArea.setEditable(false);
      addButton = new JButton("添加联系人");
      searchButton = new JButton("搜索联系人");

      addButton.addActionListener(this);
      searchButton.addActionListener(this);

      JPanel panel = new JPanel();
      panel.add(new JLabel("关键字搜索:"));
      panel.add(searchField);
      panel.add(searchButton);
      panel.add(new JScrollPane(resultArea));
      panel.add(addButton);

      add(panel);
      pack();
      setVisible(true);
    }

    public static void main(String[] args) {
      new PhoneBookManager();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
      if (e.getSource() == addButton) {
            String name = JOptionPane.showInputDialog(this, "请输入联系人姓名:");
            String phoneNumber = JOptionPane.showInputDialog(this, "请输入联系人电话号码:");
            Contact contact = new Contact(name, phoneNumber);
            phoneBook.addContact(contact);
            resultArea.append("添加成功:" + name + " - " + phoneNumber + "\n");
      } else if (e.getSource() == searchButton) {
            String keyword = searchField.getText();
            ArrayList<Contact> contacts = phoneBook.searchContacts(keyword);
            resultArea.setText("");
            for (Contact contact : contacts) {
                resultArea.append(contact.getName() + ": " + contact.getPhoneNumber() + "\n");
            }
      }
    }
}

这个程序使用了Java的Swing图形界面库来实现可视化界面。在主窗口中,你可以输入关键字搜索电话簿中的联系人,也可以点击"添加联系人"按钮添加新的联系人。

PhoneBook类负责管理联系人的增删改查操作。Contact类表示一个联系人对象,包含姓名和电话号码。

在PhoneBookManager类中,构造函数创建了图形界面并初始化相关组件,同时创建了一个PhoneBook实例用于管理联系人。`actionPerformed`方法用于处理按钮点击事件,根据不同的按钮执行不同的操作。点击"添加联系人"按钮时,弹出输入对话框并将新的联系人添加到电话簿中,同时在结果区域显示添加成功的信息。点击"搜索联系人"按钮时,根据关键字进行搜索,并将结果显示在结果区域。

请注意,这只是一个简单的示例,可能无法满足所有需求。你可以根据自己的要求对代码进行修改和扩展。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: JAVA