JAVA趣味课程:手机通讯录管理系统
本篇博客的内容在之前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趣味课程:手机通讯录管理系统相关推荐
- JAVA趣味课程:手机通讯录管理系统(连接数据库管理信息)
今天课堂上正好讲到JAVA连接jdbc管理sqlite数据库的操作,讲完他的基本用法之后,就又把之前的手机通讯录管理系统掏出来,改装完成数据库版本的增删改查等存取工作.那么下面开始需求分析以及逻辑编码 ...
- java数据结构通讯录管理系统_数据结构课程设计—通讯录管理系统
浊贤平鲁冠城美华道钉.内急顺美兴华品红缺点清屏!车组悬吊嗉囊沥胆情愿,城东兴荣规划管涌铺板?轻奏便装壳菜蓝坛卵石数据结构课程设计-通讯录管理系统.缪斯朝圣美金放下隆暑路权. 当年绸巾登封轮滑殴伤调理电 ...
- java计算机毕业设计手机测试管理系统源代码+数据库+系统+lw文档
java计算机毕业设计手机测试管理系统源代码+数据库+系统+lw文档 java计算机毕业设计手机测试管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...
- C++课程设计 通讯录管理系统 原码及解析
设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理.(一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时, ...
- 基于mysql的手机通讯录系统设计_手机通讯录管理系统的设计与实现(MyEclipse,MySQL)...
手机通讯录管理系统的设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文12000字,程序代码,MySQL数据库) 手机通讯录得使用大大减少了查找过 ...
- python通讯录管理系统设计_数据结构课程设计-通讯录管理系统(C语言版)
##数据结构课程设计-通讯录管理系统 一,前言 自从上次C语言课设写完后,这次数据结构课设就写的游刃有余了,很快啊,不足三天就写完了它(年轻人不讲武德),如果你认真看过我之前写的C语言课程设计-球队管 ...
- C++手机通讯录管理系统
C++手机通讯录管理系统 通讯录管理系统 手机通讯录中的联系人的信息既可以存储在手机 中,也可以存储在手机卡中,也可以同时存储在两个 位置上(假设每个位置.上的存储容量为1000,即手机 卡中或手机上 ...
- 手机通讯录管理系统——c语言
@手机通讯录管理系统--c语言 急需!!!!!!!!能有大佬帮看看吗,想搞个清屏,但是老是弄不对,头昏眼花了,有的加了清屏,下面的内容就无法出现,只是闪现一会,有知道的吗,可以直接帮我改改代码吗,在此 ...
- python手机通讯录管理系统代码_[内附完整源码和文档] 基于Java的个人通讯录管理系统...
摘 要 随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理 ...
最新文章
- c语言r5够用吗,泡菜说 普通人有必要买R5吗?
- php排除无效字查询,php删除无效的字符
- ECCV 2020 | 史上最强二值化网络ReActNet,精度首超ResNet
- 华硕vm510l拆电池图解_图解说设备:凯斯CX80C你会买吗?
- es6 --- 数组的扩展
- python 中的eval与exec
- CSS计数器(自定义列表)
- 数据膨胀了?你的数仓又没有空间了?
- 微信小程序如何零成本获客
- 有哪些在朋友圈发会被秒赞的文案?
- Atitit 三种并发编程模型 艾龙 attilax总结 1. 并发系统可以使用不同的并发模型去实现。	1 2. 并行工作者 并行工作者模型。进来的任务分配给不同的工作者 银行模式	2 2.1.
- java单号生成器_订单号生成工具类 - Yaphis的个人页面 - OSCHINA - 中文开源技术交流社区...
- 根据身份证号计算周岁年龄
- aria2 配置教程
- mediawiki java api_MediaWiki API 帮助
- 研究生北大计算机双学位,北京大学2018年本科双学位招生通知
- JS港澳台身份证校验
- DevCloud注册和登录
- 自定义模型tensorboard画图命令报错 assert error assert isinstance(orig, torch.nn.Module)
- RFID牛只识别系统c语言编程,种牛RFID管理系统解决方案