Java实现简单通讯录管理系统
作者:菜鸟的第一天 发布时间:2022-06-28 01:15:54
标签:java,通讯录,管理系统
本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下
题目:
1、完成一个通讯录,需求:
(1)添加联系人(联系人:编号,姓名,手机号,QQ,邮箱地址)添加时需要检查手机号和邮箱地址格式是否正确,若不正确,不允许添加
(2)联系人查询(输入姓名或电话查询)
(3)显示联系人列表
(4)根据编号删除指定编号的联系人
代码分析:
之前写过类似的管理系统,不过是使用数组进行数据存储,这次的通讯录管理系统通过动态数组
ArrayList进行数据存储。其中代码实现的原理和之前所写相似。在此不再赘述。
判断手机号邮箱地址格式是否格式正确使用了正则表达式进行判断,如果输入错误则输出提示语句,并重新输入正确格式,递归实现。
其中修改手机号的方法和删除用户类似,顺带写了一下,没有进行实现,感兴趣的朋友可以自己进行实现测试一下。
代码实现:
用户类:
package com.softeem.j2106.work;
/**
* @author admin
* 2021/7/26
*/
public class User {
private int no;
private String name;
private String phone;
private String QQ;
private String email;
public User() {
}
public User(int no, String name, String phone, String QQ, String email) {
this.no = no;
this.name = name;
this.phone = phone;
this.QQ = QQ;
this.email = email;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
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;
}
public String getQQ() {
return QQ;
}
public void setQQ(String QQ) {
this.QQ = QQ;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"no=" + no +
", name='" + name + '\'' +
", phone='" + phone + '\'' +
", QQ='" + QQ + '\'' +
", email='" + email + '\'' +
'}';
}
}
用户管理类:
public class UserMange {
static ArrayList<User> s = new ArrayList<>();
public boolean addUser(User user){
return s.add(user);
}
public ArrayList showInfo(){
return s;
}
public User searchByName(String name){
for (User user : s) {
if (Objects.equals(name,user.getName()) ||Objects.equals(name,user.getPhone())){
return user;
}
}
return null;
}
public boolean updatePhone(int no,String phone){
User user = null;
for(User u:s) {
if(no == u.getNo()) {
u.setPhone(phone);
break;
}
}
if(user == null) {
System.out.println("该用户不存在");
return false;
}
System.out.println("修改成功!");
return true;
}
public boolean delUser(int no){
User user = null;
for(User u:s) {
if(no == u.getNo()) {
user = u;
break;
}
}
if(user == null) {
System.out.println("该用户不存在");
return false;
}
return s.remove(user);
}
}
测试类:
public class Test2 {
static UserMange user = new UserMange();
static Scanner sc = new Scanner(System.in);
public static void start(){
System.out.println("=======SOFTEEM通讯录管理系统=====");
System.out.println("【1】添加联系人");
System.out.println("【2】联系人查询");
System.out.println("【3】显示联系人列表");
System.out.println("【4】根据编号删除指定编号的联系人");
System.out.println("=============================");
int i = sc.nextInt();
switch (i){
case 1:
add();
start();
break;
case 2:
System.out.println("【1】通过联系人姓名查询/【2】通过联系人电话查询");
int a = sc.nextInt();
findbyName(a);
start();
break;
case 3:
show();
start();
break;
case 4:
del();
start();
break;
case 0:
System.out.println("谢谢使用,再见!");
System.exit(0);
break;
default:
System.out.println("请输入正确的指令!");
start();
break;
}
}
public static void add(){
System.out.println("请输入联系人编号:");
int a = sc.nextInt();
System.out.println("请输入联系人姓名:");
String b = sc.next();
System.out.println("请输入联系人手机号:");
String c = sc.next();
judgePhone(c);
System.out.println("请输入联系人QQ:");
String d = sc.next();
System.out.println("请输入联系人邮箱地址:");
String e = sc.next();
judgeEmail(e);
User x = new User(a,b,c,d,e);
if(user.addUser(x)){
System.out.println("添加成功!");
}
}
public static void judgePhone(String phone){
if (phone.matches("1[34589][0-9]{9}")){
}else {
System.out.println("手机号输入有误,请重新输入");
String v = sc.next();
judgePhone(v);
}
}
public static void judgeEmail(String email){
if (email.matches("[A-Za-z0-9]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)")){
}else {
System.out.println("邮箱格式输入有误,请重新输入");
String v = sc.next();
judgeEmail(v);
}
}
public static void findbyName(int a){
if (a==1){
System.out.println("请输入联系人姓名");
}else {
System.out.println("请输入联系人电话");
}
String name = sc.next();
User user = Test2.user.searchByName(name);
System.out.println(user);
}
public static void show(){
ArrayList list = user.showInfo();
for (Object o : list) {
System.out.println(o);
}
}
public static void del(){
System.out.println("请输入编号");
int no = sc.nextInt();
if(user.delUser(no)){
System.out.println("删除成功");
}
}
public static void main(String[] args) {
start();
}
}
来源:https://blog.csdn.net/qq_44873394/article/details/119152704
0
投稿
猜你喜欢
- 本文实例讲述了java实现的简单猜数字游戏代码。分享给大家供大家参考。具体代码如下:import java.util.InputMismat
- 最近经常在机房看同学在玩一个走迷宫的游戏,比较有趣,自己也用java写一个实现随机生成迷宫的算法,其实就是一个图的深度优先遍历算法.基本思想
- 程序如下:View Code /* * Hanoi塔游戏 问题描述: * 汉诺塔:汉诺塔(又称河内塔)问
- 上篇教程回顾ServerSocket --监听客户端的连接,他的作用主要是建立一个连接-ServerSocket -建立连接,拿到一个Soc
- 一、参数校验springboot 使用校验框架validation校验方法的入参SpringBoot的Web组件内部集成了hibernate
- 现在的项目基本上都是java web项目,所以导入jar包会出现问题,主要介绍一下java项目与javaweb项目的区别:java项目:在c
- 一、封装类1.封装类概念Java中存在基础数据类型,但是在某些情况下,我们要对基础数据类型进行对象的操作,例如,集合中只能存对象,而不能存在
- 总体实现思路是启动一个生产者项目注册, 将所含服务注册到zookeeper的注册中心, 然后在启动一个消费者项目,将所需服务向zookeep
- 本文实例为大家分享了两种java实现FTP文件上传下载的方式,供大家参考,具体内容如下第一种方式:package com.cloudpowe
- 现有一些图片在服务器上的链接,在浏览器中打开这些链接是直接显示在浏览器页面的形式。现在需要生成这些图片的单独下载以及打包下载链接,即在浏览器
- synchronized都问啥?如果Java面试有什么是必问的,synchronized必定占据一席之地。初出茅庐时synchronized
- 前言前阵子有同学反馈Flutter中的http请求无法通过fiddler抓包,作者喜欢使用Charles抓包工具,于是抽时间写了个小demo
- 生产者消费者模式的几种实现方式拿我们生活中的例子来说,工厂生产出来的产品总是要输出到外面使用的,这就是生产与消费的概念。在我们实际的软件开发
- MyBatis简介MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参
- 目录前言基础组件工作流程初步使用详细流程获取 MapperProxy 对象缓存执行方法构造参数获取需要执行的 SQL 对象执行 SQL 语句
- JSTL条件行为和遍历行为JSTL的条件行为标签有四个:if,choose,when,otherwise标签1、if标签是对某一个条件进行测
- 一.mybatis的配置1.1 添加相应的jar包在lib文件夹下面添加mybatis的核心jar包以及依赖的jar包同在lib文件夹下面加
- SpringBoot starter用了springboot 那么久了居然都还没自定义过starter,想想都觉得羞愧,所以今天来玩一下。S
- 由于又开了新机器所以又要重新布置Jenkins从老项目拷贝过来,发现Job Import Plugin 这个插件更新了,和以前的有些出入所以
- 1.前提已经配置Sleuth,可参考2.什么是Zipkin?官网:https://zipkin.io/大规模分布式系统的APM工具( App