您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“怎么用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實現聯系人管理系統”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。