溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用Java實現(xiàn)聯(lián)系人管理系統(tǒng)

發(fā)布時間:2022-03-01 10:49:32 來源:億速云 閱讀:133 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“怎么用Java實現(xiàn)聯(lián)系人管理系統(tǒng)”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“怎么用Java實現(xiàn)聯(lián)系人管理系統(tǒng)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

基于eclipse做的一個簡單的聯(lián)系人管理系統(tǒng)

對于聯(lián)系人姓名首字母進行了一個排序,對于存入信息時手機號碼與電子郵箱做了一個判斷,只有在輸入正確格式的手機號和電子郵箱才能成功存入數(shù)據(jù)

聯(lián)系人基本屬性類

此類包含聯(lián)系人編號、姓名、手機號、QQ、電子郵箱等信息

/** 編號*/
private int sno;
/** 姓名*/
private String name;
/** 手機號*/
private String phone;
/** QQ*/
private String qq;
/** 電子郵箱*/
private String email;

快捷生成相應(yīng)的方法與構(gòu)造器

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;
    }

由此完成聯(lián)系人屬性定義,再實現(xiàn)對聯(lián)系人進行管理的功能

功能類

功能我在功能類與測試類中共同實現(xiàn),因在測試類中反復(fù)調(diào)用方法
首先定義一個ArrayList數(shù)組來對信息進行存儲

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

添加聯(lián)系人方法

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

聯(lián)系人查詢功能(根據(jù)不同信息進行查詢:編號、姓名、手機號)

/** 2-聯(lián)系人查詢(根據(jù)編號查詢) */
public User findBySno(int sno) {
        User us = null;
        for (User u : list) {
            if (u.getSno() == sno) {
                us = u;
                break;
            }
        }
        return us;
    }

    /** 3-聯(lián)系人查詢(根據(jù)姓名查詢) */
    public User findByName(String name) {
        User us = null;
        for (User u : list) {
            if (u.getName().equals(name)) {
                us = u;
                break;
            }
        }
        return us;
    }
    
    /** 4-聯(lián)系人查詢(根據(jù)手機號查詢) */
    public User findByPhone(String phone) {
        User us = null;
        for (User u : list) {
            if (u.getPhone().equals(phone)) {
                us = u;
                break;
            }
        }
        return us;
    }

聯(lián)系人列表

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

刪除聯(lián)系人

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

此類完成

測試實現(xiàn)類

此類調(diào)用功能類中方法實現(xiàn)功能的運用
首先創(chuàng)建對象與控制臺輸入功能

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

創(chuàng)建窗口指令界面提供用戶提示消息

/** 輸入窗口的指令界面 */
public void menu() {
        msg("===================================");
        msg("======SOFTEEM聯(lián)系人管理系統(tǒng)============");
        msg("======【1】聯(lián)系人添加==================");
        msg("======【2】根據(jù)編號查看聯(lián)系人信息==========");
        msg("======【3】根據(jù)姓名查看聯(lián)系人信息==========");
        msg("======【4】根據(jù)手機號查看聯(lián)系人信息=========");
        msg("======【5】查看所有聯(lián)系人===============");
        msg("======【6】根據(jù)標(biāo)號刪除聯(lián)系人============");
        msg("======【0】退出系統(tǒng)===================");
        msg("請輸入操作指令: ");
        start();
    }

按照提示消息來使用功能,在此方法中調(diào)用各個功能

/** 程序按鍵入口 */
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();
    }

聯(lián)系人的增刪改查功能,另外添加了對聯(lián)系人姓名首字母進行排序的功能

/** 1-用戶添加的客戶端實現(xiàn) */
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();
        // 根據(jù)"/"截取用戶信息
        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-根據(jù)編號查詢聯(lián)系人 */
    private void queryById() {
        sc = new Scanner(System.in);
        msg("請輸入聯(lián)系人編號:");
        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-根據(jù)姓名查詢聯(lián)系人 */
    private void queryByname() {
        sc = new Scanner(System.in);
        msg("請輸入聯(lián)系人姓名:");
        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-根據(jù)手機號查詢聯(lián)系人*/
    private void queryByPhone() {
        sc = new Scanner(System.in);
        msg("請輸入聯(lián)系人手機號:");
        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-顯示所有聯(lián)系人(按名字首拼音排序) */
    private void list() {
        (um.findAll()).sort((a, b) -> {
            //分別獲取要比較的兩個聯(lián)系人的的姓名
            String name1 = a.getName();
            String name2 = b.getName();
            //聲明變量存儲轉(zhuǎn)換之后的漢語拼音
            String p1 = "";
            String p2 = "";
            //將漢字轉(zhuǎn)拼音
            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-根據(jù)編號刪除聯(lián)系人 */
    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-體統(tǒng)退出 */
private void exit() {
        sc = new Scanner(System.in);
        msg("是否確定退出?(Y/N)");
        String op = sc.next();
        if (op.equalsIgnoreCase("Y")) {
            msg("謝謝使用,再見!");
            System.exit(1);
        }
    }

聯(lián)系人管理系統(tǒng)的程序入口

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

功能實現(xiàn)里沒有什么技術(shù)難點,只要細心一點將對象方法調(diào)用和一些簡單的判斷語句使用靈活就能輕松的完成此系統(tǒng)。

讀到這里,這篇“怎么用Java實現(xiàn)聯(lián)系人管理系統(tǒng)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI