温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用Java实现联系人管理系统

发布时间:2022-03-01 10:49:32 来源:亿速云 阅读:142 作者:iii 栏目:开发技术

本文小编为大家详细介绍“怎么用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();
    }

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

读到这里,这篇“怎么用Java实现联系人管理系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI