Java实现联系人管理系统

基于Java的联系人管理系统,供大家参考,具体内容如下

基于eclipse做的一个简单的联系人管理系统

对于联系人姓名首字母进行了一个排序,对于存入信息时手机号码与电子邮箱做了一个判断,只有在输入正确格式的手机号和电子邮箱才能成功存入数据

联系人基本属性类

此类包含联系人编号、姓名、手机号、QQ、电子邮箱等信息

/** 编号*/
private int sno;
/** 姓名*/
private String name;
/** 手机号*/
private String phone;
/** QQ*/
private String qq;
/** 电子邮箱*/
private String email;

快捷生成相应的方法与构造器

public User(int sno, String name, String phone, String qq, String email) {
        super();
        this.sno = sno;
        this.name = name;
        this.phone = phone;
        this.qq = qq;
        this.email = email;
    }
    public int getSno() {
        return sno;
    }
    public void setSno(int sno) {
        this.sno = sno;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    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;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public String toString() {
        return sno + "\t" + name + "\t" + phone + "\t" + qq + "\t" + email;
    }

由此完成联系人属性定义,再实现对联系人进行管理的功能

功能类

功能我在功能类与测试类中共同实现,因在测试类中反复调用方法
首先定义一个ArrayList数组来对信息进行存储

static ArrayList<User> list = new ArrayList<>();

添加联系人方法

/** 1-添加联系人 */
public void add(User u) {
        list.add(u);
}

联系人查询功能(根据不同信息进行查询:编号、姓名、手机号)

/** 2-联系人查询(根据编号查询) */
public User findBySno(int sno) {
        User us = null;
        for (User u : list) {
            if (u.getSno() == sno) {
                us = u;
                break;
            }
        }
        return us;
    }

    /** 3-联系人查询(根据姓名查询) */
    public User findByName(String name) {
        User us = null;
        for (User u : list) {
            if (u.getName().equals(name)) {
                us = u;
                break;
            }
        }
        return us;
    }
    
    /** 4-联系人查询(根据手机号查询) */
    public User findByPhone(String phone) {
        User us = null;
        for (User u : list) {
            if (u.getPhone().equals(phone)) {
                us = u;
                break;
            }
        }
        return us;
    }

联系人列表

/** 5-联系人列表 */
public ArrayList<User> findAll() {
        return list;
}

删除联系人

/** 6-删除联系人 */
    public boolean delete(int sno) {
        User user = findBySno(sno);
        if (user != null) {
            return list.remove(user);
        }
        return false;
}

此类完成

测试实现类

此类调用功能类中方法实现功能的运用
首先创建对象与控制台输入功能

private UserManage um = new UserManage();
private Scanner sc = new Scanner(System.in);

创建窗口指令界面提供用户提示消息

/** 输入窗口的指令界面 */
public void menu() {
        msg("===================================");
        msg("======SOFTEEM联系人管理系统============");
        msg("======【1】联系人添加==================");
        msg("======【2】根据编号查看联系人信息==========");
        msg("======【3】根据姓名查看联系人信息==========");
        msg("======【4】根据手机号查看联系人信息=========");
        msg("======【5】查看所有联系人===============");
        msg("======【6】根据标号删除联系人============");
        msg("======【0】退出系统===================");
        msg("请输入操作指令: ");
        start();
    }

按照提示消息来使用功能,在此方法中调用各个功能

/** 程序按键入口 */
private void start() {
        sc = new Scanner(System.in);
        int i = sc.nextInt();
        switch (i) {
        case 1:
            add();
            break;
        case 2:
            queryById();
            break;
        case 3:
            queryByname();
            break;
        case 4:
            queryByPhone();
            break;
        case 5:
            list();
            break;
        case 6:
            delete();
            break;
        case 0:
            exit();
            break;
        default:
            msg("请输入正确的操作指令!!!");
            break;
        }
        menu();
    }

联系人的增删改查功能,另外添加了对联系人姓名首字母进行排序的功能

/** 1-用户添加的客户端实现 */
private void add() {
        String regex = "^1[13456789]\\d{9}$";
        String email="\\w+@\\w+\\.\\w+";
        msg("请输入用户信息:((按以下格式:编号/姓名/手机号/QQ/邮箱))");
        sc = new Scanner(System.in);
        String s = sc.nextLine();
        // 根据"/"截取用户信息
        String[] info = s.split("/");
        if (um.findBySno(Integer.parseInt(info[0])) != null) {
            msg("该ID用户已存在,请重新输入!");
            add();
            return;
        } else {
            User u = new User(Integer.parseInt(info[0]), info[1], info[2], info[3], info[4]);
            if (info[2].matches(regex)) {
                
            }else{
                msg("格式错误,请输入正确的手机号!");
                add();
            }
            if (info[4].matches(email)) {
                
            }else{
                msg("格式错误,请输入正确的邮箱!");
                add();
            }
            um.add(u);
            msg("添加成功!");    
        }
    }

    /** 2-根据编号查询联系人 */
    private void queryById() {
        sc = new Scanner(System.in);
        msg("请输入联系人编号:");
        int sno = sc.nextInt();
        User u = um.findBySno(sno);
        if (u == null) {
            msg(sno + "号不存在,请重新输入!");
            queryById();
            return;
        }
        msg("编号\t姓名\t手机号\t\tQQ\t\t邮箱");
        msg(u);
    }

    /** 3-根据姓名查询联系人 */
    private void queryByname() {
        sc = new Scanner(System.in);
        msg("请输入联系人姓名:");
        String name = sc.next();
        User u = um.findByName(name);
        if (u == null) {
            msg(name + "不存在,请重新输入");
            queryByname();
            return;
        }
        msg("编号\t姓名\t手机号\t\tQQ\t\t邮箱");
        msg(u);
    }
    
    /** 4-根据手机号查询联系人*/
    private void queryByPhone() {
        sc = new Scanner(System.in);
        msg("请输入联系人手机号:");
        String phone = sc.next();
        User u = um.findByPhone(phone);
        if (u == null) {
            msg(phone + "不存在,请重新输入");
            queryByPhone();
            return;
        }
        msg("编号\t姓名\t手机号\t\tQQ\t\t邮箱");
        msg(u);
    }

    /** 5-显示所有联系人(按名字首拼音排序) */
    private void list() {
        (um.findAll()).sort((a, b) -> {
            //分别获取要比较的两个联系人的的姓名
            String name1 = a.getName();
            String name2 = b.getName();
            //声明变量存储转换之后的汉语拼音
            String p1 = "";
            String p2 = "";
            //将汉字转拼音
            for (int i = 0; i < name1.length(); i++) {
                p1 += PinyinHelper.toHanyuPinyinStringArray(name1.charAt(i))[0];
            }
            for (int i = 0; i < name2.length(); i++) {
                p2 += PinyinHelper.toHanyuPinyinStringArray(name2.charAt(i))[0];
            }
            
            return p1.compareTo(p2);
        });
        
        msg("编号\t姓名\t手机号\t\tQQ\t\t邮箱");
        for (User u : um.findAll()) {
            msg(u);
        }
    }

    /** 6-根据编号删除联系人 */
    private void delete() {
        sc = new Scanner(System.in);
        msg("请输入用户编号:");
        int sno = sc.nextInt();
        if (um.delete(sno)) {
            msg("删除成功!");
        } else {
            msg("删除失败!");
        }
    }
        public void msg(Object obj) {
        System.out.println(obj);
    }

程序的退出功能

/** 0-体统退出 */
private void exit() {
        sc = new Scanner(System.in);
        msg("是否确定退出?(Y/N)");
        String op = sc.next();
        if (op.equalsIgnoreCase("Y")) {
            msg("谢谢使用,再见!");
            System.exit(1);
        }
    }

联系人管理系统的程序入口

public static void main(String[] args) {
        TestUser tu = new TestUser();
        tu.menu();
    }

功能实现里没有什么技术难点,只要细心一点将对象方法调用和一些简单的判断语句使用灵活就能轻松的完成此系统。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java联系人管理系统简单设计

    本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求:  请使用XML保存数据,完成一个联系人管理系统.       用户必须经过认证登录后方可以使用系统.       注册.增加.删除.查看联系人功能.        分模块进行设计. 两层框架-用户交互层,Dao层.             其他支持层-数据封装层.             工具类-加密,工厂Bean. 开发步骤: 第一步:设计数据结构-XML. 第一步:设计数据结构-XML. 第三步:准备资源并

  • Java实现联系人管理系统

    基于Java的联系人管理系统,供大家参考,具体内容如下 基于eclipse做的一个简单的联系人管理系统 对于联系人姓名首字母进行了一个排序,对于存入信息时手机号码与电子邮箱做了一个判断,只有在输入正确格式的手机号和电子邮箱才能成功存入数据 联系人基本属性类 此类包含联系人编号.姓名.手机号.QQ.电子邮箱等信息 /** 编号*/ private int sno; /** 姓名*/ private String name; /** 手机号*/ private String phone; /** Q

  • Java实现员工管理系统

    本文实例为大家分享了Java实现员工管理系统的具体代码,供大家参考,具体内容如下 本系统主要练习到的相关内容: 1. 流程控制语句 2. 类.对象 3. 封装.继承.多态 4. 方法的重载.重写 5. 访问修饰符 6. static 需求说明: 员工信息的基本情况 ---------普通员工---------– 属性:员工编号.员工姓名.员工职务.请假天数.基本工资 普通员工工资: 在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助 基本工资+基本工资*0.1+基本工资*0

  • java实现通讯录管理系统

    本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 完成项目的流程: 1.根据需求,确定大体方向 2.功能模块分析 3.界面实现 4.功能模块设计 5.coding 6.代码测试 下面是源代码: import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import j

  • Java实现通讯录管理系统项目

    本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 一.前言 我们学了这么久的知识了,光学知识不会用是一件很悲伤的事情,所以我们应学完 部分练一些项目或题,来巩固我们学习的知识,激发我们持续学习的动力. 二.创建通讯的功能 增加联系人信息 删除联系人信息 修改联系人信息 查看所有联系人信息 退出通信录管理系统 首先定义一个People类,提供相应的get.set方法 (在idea中有快捷键Alt+insert生成get.set方法,和构造方法) public cl

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

  • java学生信息管理系统MVC架构详解

    本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下 一.项目结构 学生信息管理系统分三层进行实现.student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据.Stuview.java用于单一的用来显示数据. 二.源码 1.1.Student 类 /* * @FileName: Student.class * @version:1.0 * @author:nazi * 描述:模型层 * */ import java.io.Serial

  • Java实现学生管理系统

    项目描述:通过管理员帐号登录,对学员信息进行管理.可以实现学员信息的增加.修改.删除.查询. 知识点:数组.do{}while循环.for循环.if语句.switch条件语句 学生管理系统的流程图 import java.util.Scanner; public class Stu{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); boolean flag = false; int stuN

  • Java版水果管理系统源码

    水果管理系统Java版分享给大家. 主类 FruitsDemo /** * 功能: * 1. 查看所有的水果 * 2. 添加新的水果(添加的时候判断水果名是否有重复) * 3. 对所有的水果进行排序(价格排序.库存排序) * 4. 删除指定的水果 * 5. 退出系统 * * 注意: * 1. 每种水果都必须有水果id,水果名,水果数量,水果价格 * 2. 添加水果时,要由用户输入水果名.数量和价格 * 3. 删除水果时要二次确认 * * 评分依据: 功能实现的情况,代码规范性(命名规范.格式规范

  • java学生信息管理系统源代码

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] .删除 .查找.更改,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: *增加 int[] a=new int[9] *删除 *查找 *更改 */ import java.util.Scanner;//导入java输入流 import java.lang.*; import java.io.*; class Student { private static Stude

随机推荐