用Java设计简单通讯录的设计与实现 设计要求: 1.用图形用户界面实现输入,界面美观操作方便。 2.系统功能的基本要求: (1)查看功能:选择此功能时,列出下列三类选择。 A 办公类;B个人类;C 商务类; 当选中某类时,显示出此类所有数据中的姓名和电话号码) (2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A办公类;B个人类;C商务类; 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按速增的顺序自动进行条目编号。 (3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。。

时间: 2024-04-05 13:34:29 浏览: 19
好的,这个问题我可以回答。首先,你需要使用 Java 的 GUI 库(如 Swing、JavaFX)来实现图形用户界面。然后,你需要设计一个数据结构来存储通讯录信息,例如使用一个链表或者数组。 对于系统功能的基本要求,你需要实现以下功能: 1. 查看功能:根据用户选择的分类,显示对应类型的姓名和电话号码。你可以使用下拉框或者单选按钮来实现分类的选择。 2. 增加功能:当用户输入新数据时,你需要检查是否有重复的姓名和电话号码。如果有重复数据,需要提示用户并取消录入。如果通讯录已满,需要提示用户不能再录入新数据。你还需要自动为新数据分配一个条目编号,并按照编号顺序存储数据。 3. 拔号功能:显示所有人的姓名,并且当用户选中某个姓名时,需要逐个显示出此人的电话号码。 4. 修改功能:当用户选中某个人的姓名时,可以对此人的姓名、电话号码或者分类进行修改。修改后需要保存数据。 5. 删除功能:当用户选中某个人的姓名时,可以将此人的数据从通讯录中删除,并自动调整后续条目的编号。 希望这些信息能对你有所帮助。如果你有任何问题,可以随时问我。
相关问题

andriod要求: 1、设计通讯录app、实现增删改查功能。 2、至少三个界面 :查询列表

通讯录app是一款非常实用的工具,它可以帮助用户管理联系人的信息,方便快捷地进行通讯。为了实现这一功能,我们需要设计一个Andriod通讯录app,其中包括增加、删除、修改和查询联系人信息的功能。 首先,我们需要设计一个简洁明了的界面,包括查询列表、添加联系人和编辑联系人的功能。在查询列表界面,用户可以看到所有联系人的列表,在这个界面上可以进行快速的检索和筛选,便于用户快速找到需要的联系人。 用户可以通过在界面上选择添加联系人来进行增加联系人信息的操作,同时也可以在查询列表中选择某个联系人进行编辑和修改信息。这样可以使用户方便地对联系人信息进行管理和更新。 另外,我们还可以在界面上增加一些其他功能,比如同步通讯录到其他设备、备份通讯录、批量导入导出等,来增强用户体验。 总之,设计一个Andriod通讯录app不仅需要实现增删改查功能,还需要注重用户体验和界面设计。通过简洁明了的界面和丰富的功能,让用户能够方便快捷地管理自己的联系人信息。

用java设计通讯录保存信息 设计要求:1.通讯录中包括一般通讯录的基本信息2.需要实现普通的检索功能3.通讯录写入文件4.程序执行时,从文件导入数据:退出后将输入保存到文件5.拥有可视化界面

好的,以下是一个简单的用Java设计通讯录保存信息的示例: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class ContactList extends JFrame implements ActionListener { private JTextField nameField, phoneField, searchField; private JTextArea displayArea; private JButton addButton, searchButton, saveButton, loadButton; private ArrayList<Contact> contacts; public ContactList() { super("Contact List"); contacts = new ArrayList<Contact>(); // 设置界面布局 JPanel inputPanel = new JPanel(new GridLayout(3, 2)); inputPanel.add(new JLabel("Name:")); nameField = new JTextField(); inputPanel.add(nameField); inputPanel.add(new JLabel("Phone:")); phoneField = new JTextField(); inputPanel.add(phoneField); addButton = new JButton("Add"); addButton.addActionListener(this); inputPanel.add(addButton); inputPanel.add(new JLabel("")); JPanel searchPanel = new JPanel(new FlowLayout()); searchField = new JTextField(20); searchPanel.add(searchField); searchButton = new JButton("Search"); searchButton.addActionListener(this); searchPanel.add(searchButton); JPanel displayPanel = new JPanel(new BorderLayout()); displayArea = new JTextArea(15, 30); displayArea.setEditable(false); JScrollPane scrollPane = new JScrollPane(displayArea); displayPanel.add(scrollPane, BorderLayout.CENTER); JPanel filePanel = new JPanel(new FlowLayout()); saveButton = new JButton("Save"); saveButton.addActionListener(this); filePanel.add(saveButton); loadButton = new JButton("Load"); loadButton.addActionListener(this); filePanel.add(loadButton); JPanel mainPanel = new JPanel(new BorderLayout()); mainPanel.add(inputPanel, BorderLayout.NORTH); mainPanel.add(searchPanel, BorderLayout.CENTER); mainPanel.add(displayPanel, BorderLayout.SOUTH); mainPanel.add(filePanel, BorderLayout.EAST); add(mainPanel); pack(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { String name = nameField.getText(); String phone = phoneField.getText(); Contact c = new Contact(name, phone); contacts.add(c); displayContacts(); } else if (e.getSource() == searchButton) { String query = searchField.getText(); ArrayList<Contact> results = searchContacts(query); displayContacts(results); } else if (e.getSource() == saveButton) { saveContacts(); } else if (e.getSource() == loadButton) { loadContacts(); displayContacts(); } } private void displayContacts() { displayArea.setText(""); for (Contact c : contacts) { displayArea.append(c.getName() + " " + c.getPhone() + "\n"); } } private void displayContacts(ArrayList<Contact> list) { displayArea.setText(""); for (Contact c : list) { displayArea.append(c.getName() + " " + c.getPhone() + "\n"); } } private ArrayList<Contact> searchContacts(String query) { ArrayList<Contact> results = new ArrayList<Contact>(); for (Contact c : contacts) { if (c.getName().contains(query) || c.getPhone().contains(query)) { results.add(c); } } return results; } private void saveContacts() { try { ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("contacts.dat")); out.writeObject(contacts); out.close(); } catch (IOException e) { e.printStackTrace(); } } private void loadContacts() { try { ObjectInputStream in = new ObjectInputStream(new FileInputStream("contacts.dat")); contacts = (ArrayList<Contact>)in.readObject(); in.close(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { new ContactList(); } } class Contact implements Serializable { private String name; private String phone; public Contact(String name, String phone) { this.name = name; this.phone = phone; } public String getName() { return name; } public String getPhone() { return phone; } } ``` 这个程序使用了Swing库实现了一个简单的GUI界面,包括输入框、按钮、文本区域等。通讯录数据以一个包含联系人姓名和电话号码的Contact类的形式保存,使用ArrayList来管理多个联系人。程序实现了添加联系人、搜索联系人、保存联系人、载入联系人等功能,并将数据以序列化的形式保存到文件中。

相关推荐

最新推荐

recommend-type

基于Android手机通讯录的设计与实现_2018.doc

基于Android手机通讯录的设计与实现,基于Android手机通讯录的设计与实现
recommend-type

模拟通讯录-数据结构(顺序表实现基本功能).doc

模拟通讯录,设计相关数据结构,用菜单选择方式实现:通讯录的建立、通讯联系人的插入、删除、修改、查找等功能。
recommend-type

学生通讯录管理系统-数据结构课程设计.doc

学生通讯录管理系统-数据结构课程设计.doc 纸质通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质通讯录所有能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学等管理和分析的一种应用程序。
recommend-type

个人通讯录管理系统课程设计-C++.docx

计算机 电子信息工程 通信工程 实验 课程设计 工程项目 资源 必过 已过 好用 答辩简单 按着来就行 大学生关注我 以后所有我的课设都会更新 心得体会 参考文献自己写哈
recommend-type

java课程设计-通讯录系统

随着当今世界经济的快速发展,通讯技术日益成熟,个人间的联系增加,个人对...软件操作窗口平时可以隐藏于屏幕边缘,用户鼠标移至该处及显示操作界面,用只需输入关键词(联系人姓名)即可方便地查找所需的通讯录信息。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。