java1、用顺序表方式实现在线通讯录的设计,可以对通讯录作插入、删除、显示、查找、修改等操作

时间: 2023-12-13 10:06:10 浏览: 29
以下是Java语言的顺序表实现在线通讯录的设计: ``` import java.util.Scanner; public class OnlineAddressBook { private static final int MAX_SIZE = 100; // 最大容量 private int size; // 当前大小 private Contact[] contacts; // 存储联系人信息的数组 public OnlineAddressBook() { size = 0; contacts = new Contact[MAX_SIZE]; } // 插入联系人信息 public void insert(Contact contact) { if (size >= MAX_SIZE) { System.out.println("通讯录已满,无法插入!"); return; } contacts[size] = contact; size++; System.out.println("插入成功!"); } // 删除联系人信息 public void delete(String name) { int index = search(name); if (index == -1) { System.out.println("未找到该联系人,无法删除!"); return; } for (int i = index; i < size - 1; i++) { contacts[i] = contacts[i + 1]; } size--; System.out.println("删除成功!"); } // 显示联系人信息 public void display() { if (size == 0) { System.out.println("通讯录为空!"); return; } System.out.println("姓名\t电话\t邮箱"); for (int i = 0; i < size; i++) { System.out.println(contacts[i].getName() + "\t" + contacts[i].getPhone() + "\t" + contacts[i].getEmail()); } } // 查找联系人信息 public int search(String name) { for (int i = 0; i < size; i++) { if (contacts[i].getName().equals(name)) { return i; } } return -1; } // 修改联系人信息 public void modify(String name) { int index = search(name); if (index == -1) { System.out.println("未找到该联系人,无法修改!"); return; } Scanner input = new Scanner(System.in); System.out.print("请输入新的电话号码:"); String phone = input.next(); System.out.print("请输入新的电子邮箱:"); String email = input.next(); contacts[index].setPhone(phone); contacts[index].setEmail(email); System.out.println("修改成功!"); } public static void main(String[] args) { OnlineAddressBook addressBook = new OnlineAddressBook(); Scanner input = new Scanner(System.in); while (true) { System.out.println("请选择操作:"); System.out.println("1. 插入联系人信息"); System.out.println("2. 删除联系人信息"); System.out.println("3. 显示联系人信息"); System.out.println("4. 查找联系人信息"); System.out.println("5. 修改联系人信息"); System.out.println("6. 退出程序"); int choice = input.nextInt(); switch (choice) { case 1: System.out.print("请输入姓名:"); String name = input.next(); System.out.print("请输入电话号码:"); String phone = input.next(); System.out.print("请输入电子邮箱:"); String email = input.next(); Contact contact = new Contact(name, phone, email); addressBook.insert(contact); break; case 2: System.out.print("请输入要删除的联系人姓名:"); String delName = input.next(); addressBook.delete(delName); break; case 3: addressBook.display(); break; case 4: System.out.print("请输入要查找的联系人姓名:"); String searchName = input.next(); int index = addressBook.search(searchName); if (index == -1) { System.out.println("未找到该联系人!"); } else { System.out.println("姓名\t电话\t邮箱"); System.out.println(addressBook.contacts[index].getName() + "\t" + addressBook.contacts[index].getPhone() + "\t" + addressBook.contacts[index].getEmail()); } break; case 5: System.out.print("请输入要修改的联系人姓名:"); String modifyName = input.next(); addressBook.modify(modifyName); break; case 6: System.out.println("程序已退出!"); System.exit(0); default: System.out.println("输入有误,请重新输入!"); break; } } } } class Contact { private String name; private String phone; private String email; public Contact(String name, String phone, String email) { this.name = name; this.phone = phone; this.email = email; } public String getName() { return name; } public String getPhone() { return phone; } public String getEmail() { return email; } public void setPhone(String phone) { this.phone = phone; } public void setEmail(String email) { this.email = email; } } ``` 在主函数中,使用一个无限循环来不断接收用户的操作选择,根据用户选择的不同,调用相应的函数来完成操作。使用一个Contact类来存储每个联系人的姓名、电话号码和电子邮箱。在每个操作函数中,通过遍历数组来查找对应的联系人信息。如果需要插入新的联系人信息,则需要检查数组是否已满。如果需要删除联系人信息,则需要将数组中该联系人后面的所有元素向前移动一个位置。如果需要修改联系人信息,则需要先查找该联系人的位置,然后再修改该位置上的联系人信息。

相关推荐

最新推荐

recommend-type

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

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

C语言实现顺序表的顺序查找和折半查找

主要为大家详细介绍了C语言实现顺序表的顺序查找和折半查找,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java队列实现方法(顺序队列,链式队列,循环队列)

下面小编就为大家分享一篇java队列实现方法(顺序队列,链式队列,循环队列),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

实验一:顺序表基本操作

大学生实验作业
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

MATLAB取整函数与Web开发的作用:round、fix、floor、ceil在Web开发中的应用

![MATLAB取整函数与Web开发的作用:round、fix、floor、ceil在Web开发中的应用](https://img-blog.csdnimg.cn/2020050917173284.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2thbmdqaWVsZWFybmluZw==,size_16,color_FFFFFF,t_70) # 1. MATLAB取整函数概述** MATLAB取整函数是一组强大的工具,用于对数值进行
recommend-type

我想做python的算法工程师,我应该学什么?学习的顺序是什么?网上有什么推荐的免费课程吗?回答具体精确一点不要太笼统

对于想要成为 Python 算法工程师的人来说,他们应该先从掌握 Python 的基础语法开始,然后学习数据结构和算法,并且要深入了解 Python 中的一些科学计算和数据处理库,比如 NumPy、Pandas 等。 学习的顺序可以是先学习基础语法和编程技巧,然后再学习数据结构和算法相关的知识,最后深入了解数据处理和科学计算相关的库。 对于免费课程的推荐,我建议你可以先去 Coursera、edX、Udacity 等网站上寻找相关课程,这些网站上有很多优质的 Python 编程和算法课程,你可以根据自己的需求和学习进度进行选择。此外,还可以考虑一些在线编程网站,如 HackerRank、L
recommend-type

JSBSim Reference Manual

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

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依