本篇博客的内容在之前python基础系列案例中有详细讲解,此次我将使用JAVA语言对手机通讯录管理系统进行重新编写。此案例适用于熟练掌握面向对象基础和List集合的基本操作。

需求分析:

  • 能够循环接收客户端输入的功能编号,并根据编号选择对应的功能操作
  • 用户输入“1”时,执行增加姓名和手机号码的操作
  • 用户输入“2”时,执行删除姓名和手机号码的操作,根据用户输入姓名,删除对应手机号码
  • 用户输入“3”时,执行修改手机号码的操作,根据用户输入姓名,修改对应手机号码
  • 用户输入“4”时,执行显示全部姓名和手机号码的操作
  • 用户输入“5”时,执行查询手机号码的操作,根据用户输入姓名,查找对应手机号码
  • 用户输入“6”时,感谢用户使用,退出手机通讯录管理系统的程序

使用JAVA代码完成逻辑分析与Python的相同,这里就不再赘述。需要的同学可点击查看。直接贴代码:

首先创建存放对象的Contact类

public class Contact {private String name;private String phone;public Contact(String name, String phone) {this.name = name;this.phone = phone;}public Contact() {super();}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString(){return "姓名:"+name+"\t电话号码:"+phone;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((name == null) ? 0 : name.hashCode());result = prime * result + ((phone == null) ? 0 : phone.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Contact other = (Contact) obj;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;if (phone == null) {if (other.phone != null)return false;} else if (!phone.equals(other.phone))return false;return true;}
}

然后在通讯录管理类当中对于联系人进行增删改查的工作。创建ContactManager.java类

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// 通讯录管理系统
public class ContactManager {private List<Contact>contactList;private File srcFile;   //存放数据的文件public ContactManager(File srcFile){contactList = new ArrayList<Contact>();this.srcFile = srcFile;
//      传入文件不存在,就创建这个文件if (!this.srcFile.exists()) {try {this.srcFile.createNewFile();} catch (IOException e) {e.printStackTrace();}}}public List<Contact> getContactList() {return contactList;}
//  读取指定文件的方法public void getListFromFile(){try {FileReader fr = new FileReader(this.srcFile);BufferedReader br = new BufferedReader(fr);String line = "";
//          循环读取while (true) {line = br.readLine();  //读取每一行数据存放到字符串当中if (line!=null) { String[] split = line.split("\\|"); //分割每一行数据
//                  将数据封装成对象,添加到集合中Contact contact = new Contact(split[0], split[1]);this.contactList.add(contact);}else {break;}}fr.close();br.close();} catch (Exception e) {System.out.println("此文件没创建!!");}}//  将更新的内容写入到文件当中public void writeFileFromList(){try {FileWriter fw = new FileWriter(this.srcFile);
//          一个列表中,每个对象都是写入文件的一行元素for (Contact con : this.contactList) {String line = con.getName()+"|"+con.getPhone()+"\n";fw.write(line);}fw.flush();fw.close();} catch (IOException e) {e.printStackTrace();}}
//  整体工作过程@SuppressWarnings("resource")public void work(){
//      读源文件的操作getListFromFile();System.out.println("欢迎手机管理系统,功能如下:");System.out.println("-------------手机通讯录管理系统-------------" +"\n 输入“1”,可添加联系人到通讯录(同名不可添加)" +"\n 输入“2”,可根据姓名删除联系人信息" +"\n 输入“3”,可根据姓名修改联系人信息" +"\n 输入“4”,可根据姓名查询联系人信息" +"\n 输入“5”,可显示全部联系人信息" +"\n 输入“6”,退出当前系统" +"\n--------------------------------------------");Scanner sc = new Scanner(System.in);out:while (true) {System.out.print("请输入相关功能编号:");String code = sc.next();switch (code) {case "1":addContactInfo(sc);break;case "2":deleteContactInfo(sc);break;case "3":modifyContactInfo(sc);break;case "4":selectContactInfo(sc);break;case "5":printAllInfo();break;case "6":System.out.println("感谢您的使用,退出当前系统!!");writeFileFromList();break out;default:break;}}}/*** @des 显示全部信息* */public void printAllInfo() {System.out.println("-------联系人信息-------");//              遍历联系人信息集合for (int i = 0; i < contactList.size(); i++) {System.out.println(contactList.get(i));}}/*** @des 查询联系人信息的方法* */public void selectContactInfo(Scanner sc) {System.out.print("请输入查询联系人姓名:");String dname = sc.next();boolean dflag = true;for (int i = 0; i < contactList.size(); i++) {Contact contact = contactList.get(i);if (contact.getName().equals(dname)) {
//                      对象存在可以打印对象信息System.out.println(contact);dflag = false;break;}}if (dflag) {System.out.println("此联系人不存在!");}}/*** @des 修改联系人信息* */public void modifyContactInfo(Scanner sc) {System.out.print("请输入修改联系人姓名:");String mname = sc.next();boolean mflag = true;for (int i = 0; i < contactList.size(); i++) {Contact contact = contactList.get(i);if (contact.getName().equals(mname)) {
//                      对象存在可以修改System.out.print("请输入修改的电话号码:");String mphone = sc.next();contact.setPhone(mphone);  System.out.println("修改成功!");mflag = false;break;}}if (mflag) {System.out.println("修改失败!");}}/*** @des 删除联系人信息的方法* */public void deleteContactInfo(Scanner sc) {System.out.print("请输入删除联系人姓名:");String dname = sc.next();boolean dflag = true;for (int i = 0; i < contactList.size(); i++) {Contact contact = contactList.get(i);if (contact.getName().equals(dname)) {
//                      对象存在可以删除contactList.remove(contact);System.out.println("删除成功!");dflag = false;break;}}if (dflag) {System.out.println("删除失败!");}}/*** @des 添加联系人信息的方法* */public void addContactInfo(Scanner sc) {System.out.print("请输入联系人姓名:");String name = sc.next();boolean flag = true;for (int i = 0; i < contactList.size(); i++) {Contact ct = contactList.get(i);if (ct.getName().equals(name)) {flag = false;System.out.print("此联系人已经存在,请重新输入!");break;}}
//      判断标志位是否被改变  标志位没有被改变,说明此人不存在,可输入电话,然后添加到集合if (flag) {System.out.print("请输入电话号码:");String phone = sc.next();Contact contact = new Contact(name, phone);contactList.add(contact);}}
}

最后创建一个测试类,可在主方法当中调用work方法,进行功能测试:

public class Test {public static void main(String[] args) {ContactManager manager = new ContactManager(new File("contact.txt"));
//      测试案例使用
//      List<Contact> list = manager.getContactList();
//      list.add(new Contact("Rose", "14532289011"));
//      list.add(new Contact("Jack", "18511289011"));
//      list.add(new Contact("Jerry", "17634511021"));
//      list.add(new Contact("小明", "14510989925"));manager.work();}
}

运行效果图如下:

以上就是JAVA版手机通讯录的内容了,感谢您的阅读~

JAVA趣味课程:手机通讯录管理系统相关推荐

  1. JAVA趣味课程:手机通讯录管理系统(连接数据库管理信息)

    今天课堂上正好讲到JAVA连接jdbc管理sqlite数据库的操作,讲完他的基本用法之后,就又把之前的手机通讯录管理系统掏出来,改装完成数据库版本的增删改查等存取工作.那么下面开始需求分析以及逻辑编码 ...

  2. java数据结构通讯录管理系统_数据结构课程设计—通讯录管理系统

    浊贤平鲁冠城美华道钉.内急顺美兴华品红缺点清屏!车组悬吊嗉囊沥胆情愿,城东兴荣规划管涌铺板?轻奏便装壳菜蓝坛卵石数据结构课程设计-通讯录管理系统.缪斯朝圣美金放下隆暑路权. 当年绸巾登封轮滑殴伤调理电 ...

  3. java计算机毕业设计手机测试管理系统源代码+数据库+系统+lw文档

    java计算机毕业设计手机测试管理系统源代码+数据库+系统+lw文档 java计算机毕业设计手机测试管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  4. C++课程设计 通讯录管理系统 原码及解析

    设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理.(一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时, ...

  5. 基于mysql的手机通讯录系统设计_手机通讯录管理系统的设计与实现(MyEclipse,MySQL)...

    手机通讯录管理系统的设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文12000字,程序代码,MySQL数据库) 手机通讯录得使用大大减少了查找过 ...

  6. python通讯录管理系统设计_数据结构课程设计-通讯录管理系统(C语言版)

    ##数据结构课程设计-通讯录管理系统 一,前言 自从上次C语言课设写完后,这次数据结构课设就写的游刃有余了,很快啊,不足三天就写完了它(年轻人不讲武德),如果你认真看过我之前写的C语言课程设计-球队管 ...

  7. C++手机通讯录管理系统

    C++手机通讯录管理系统 通讯录管理系统 手机通讯录中的联系人的信息既可以存储在手机 中,也可以存储在手机卡中,也可以同时存储在两个 位置上(假设每个位置.上的存储容量为1000,即手机 卡中或手机上 ...

  8. 手机通讯录管理系统——c语言

    @手机通讯录管理系统--c语言 急需!!!!!!!!能有大佬帮看看吗,想搞个清屏,但是老是弄不对,头昏眼花了,有的加了清屏,下面的内容就无法出现,只是闪现一会,有知道的吗,可以直接帮我改改代码吗,在此 ...

  9. python手机通讯录管理系统代码_[内附完整源码和文档] 基于Java的个人通讯录管理系统...

    摘 要 随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理 ...

最新文章

  1. c语言r5够用吗,泡菜说 普通人有必要买R5吗?
  2. php排除无效字查询,php删除无效的字符
  3. ECCV 2020 | 史上最强二值化网络ReActNet,精度首超ResNet
  4. 华硕vm510l拆电池图解_图解说设备:凯斯CX80C你会买吗?
  5. es6 --- 数组的扩展
  6. python 中的eval与exec
  7. CSS计数器(自定义列表)
  8. 数据膨胀了?你的数仓又没有空间了?
  9. 微信小程序如何零成本获客
  10. 有哪些在朋友圈发会被秒赞的文案?
  11. Atitit 三种并发编程模型 艾龙 attilax总结 1. 并发系统可以使用不同的并发模型去实现。 1 2. 并行工作者 并行工作者模型。进来的任务分配给不同的工作者 银行模式 2 2.1.
  12. java单号生成器_订单号生成工具类 - Yaphis的个人页面 - OSCHINA - 中文开源技术交流社区...
  13. 根据身份证号计算周岁年龄
  14. aria2 配置教程
  15. mediawiki java api_MediaWiki API 帮助
  16. 研究生北大计算机双学位,北京大学2018年本科双学位招生通知
  17. JS港澳台身份证校验
  18. DevCloud注册和登录
  19. 自定义模型tensorboard画图命令报错 assert error assert isinstance(orig, torch.nn.Module)
  20. RFID牛只识别系统c语言编程,种牛RFID管理系统解决方案

热门文章

  1. 仿QQ TIM官网视差滚动效果
  2. 课程论文会被查重吗?
  3. sql server 数据库同步时如果出现 进程未能读取文件 因为发生操作系统错误 5。解决方法:
  4. vue websocket 公众号扫描二维码登录PC端
  5. 国有企业数字化转型的思路与建议
  6. ffmpeg之pcm音频参数笔记
  7. 【Markdown常用语法】
  8. Python入门学习——程序设计基本方法
  9. kktv支持鸿蒙系统,康佳电视怎么投屏?看完这篇文章后,你就是“投屏达人”...
  10. 智能手机Smartphone开发从零起步(五)(转)