首頁 > 軟體

Java實現聯絡人管理系統

2022-02-28 16:06:45

基於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手機號ttQQtt郵箱");
        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手機號ttQQtt郵箱");
        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手機號ttQQtt郵箱");
        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手機號ttQQtt郵箱");
        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();
    }

功能實現裡沒有什麼技術難點,只要細心一點將物件方法呼叫和一些簡單的判斷語句使用靈活就能輕鬆的完成此係統。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com