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


猜你喜欢
- 将Android项目导出为Library1.修改build.gradle中的Module:app文件最终如下:2. 进入到项目文件夹目录,保
- 一、数据输出SpringMVC将数据携带给页面的储存工具,有三种,map,ModelMap,model,它们在底层实质还是使用到了Bindi
- JPA介绍JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映
- 本文实例为大家分享了Android实现滑动效果的具体代码,供大家参考,具体内容如下坐标系与视图坐标系相辅相成1、坐标系:描述了View在屏幕
- 这一篇博客我们来使用 UGUI 实现图片的拖拽功能。说到拖拽,那必然离不开坐标,UGUI 的坐标有点不一样,它有两种坐标,一种是屏幕坐标,还
- 方法1 :利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。但是如果返回的对象是一个数
- 具体详情如下所示:int -> Stringint i=12345;String s="";第一种方法:s=i+&
- 最近的项目中,想做到一种能够吸引眼球的一种角色选择浏览效果Demo源码:点击打开链接最终实现了下按如下图这么一种浏览效果:效果图一效果图二可
- java加载properties文件的六种方法总结java加载properties文件的六中基本方式实现java加载properties文件
- 1、普通用户与系统管理员用户的权限要有严格的区分。如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许
- 最新需要在项目启动后立即执行某个方法,然后特此记录下找到的四种方式注解@PostConstruct使用注解@PostConstruct是最常
- 本文实例为大家分享了Unity使用摄像机实现望远镜效果的具体代码,供大家参考,具体内容如下听起来挺酷炫,其实超简单,就是控制摄像机的fiel
- MybatisPlus分页排序查询字段带有下划线如果使用MybatisPlus的自动转驼峰命名法,分页排序查询的字段带有下划线时,会出问题。
- 本文实例讲述了java实现文件重命名的方法。分享给大家供大家参考。具体如下:下载的电影总是有一些存在网站名称等没用的信息 作为一个强迫症患者
- 在VF、VB、PB的应用中,有些无法通过语言工具本身来完成的或者做得不理想的功能,我们会考虑通过Windows的API来完成。在那个年代,熟
- 完整代码已上传到GitHub。Web端体验地址:http://47.116.72.33/(只剩一个月有效期)apk下载地址:https://
- 关于注入数据说明1.不通过配置文件注入数据通过@Value将外部的值动态注入到Bean中,使用的情况有:注入普通字符串注入操作系统属性注入表
- 1、 初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中 关卡所在处赋予代表关卡的值。关键代码如下///
- AOP我想大家都很清楚,有时候我们需要处理一些请求日志,或者对某些方法进行一些监控,如果出现例外情况应该进行怎么样的处理,现在,我们从spr
- 代码中已经加入了注释,需要的朋友可以直接参考代码中的注释。下面直接上功能实现的主要代码:import java.io.File;import