最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)聯(lián)系人管理系統(tǒng)

 更新時(shí)間:2022年02月28日 12:15:40   作者:Tryci  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)聯(lián)系人管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

基于Java的聯(lián)系人管理系統(tǒng),供大家參考,具體內(nèi)容如下

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

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

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

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

/** 編號*/
private int sno;
/** 姓名*/
private String name;
/** 手機(jī)號*/
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)系人屬性定義,再實(shí)現(xiàn)對聯(lián)系人進(jìn)行管理的功能

功能類

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

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

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

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

聯(lián)系人查詢功能(根據(jù)不同信息進(jì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ù)手機(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;
}

此類完成

測試實(shí)現(xiàn)類

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

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ù)手機(jī)號查看聯(lián)系人信息=========");
?? ??? ?msg("======【5】查看所有聯(lián)系人===============");
?? ??? ?msg("======【6】根據(jù)標(biāo)號刪除聯(lián)系人============");
?? ??? ?msg("======【0】退出系統(tǒng)===================");
?? ??? ?msg("請輸入操作指令: ");
?? ??? ?start();
?? ?}

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

/** 程序按鍵入口 */
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)系人姓名首字母進(jìn)行排序的功能

/** 1-用戶添加的客戶端實(shí)現(xiàn) */
private void add() {
?? ??? ?String regex = "^1[13456789]\\d{9}$";
?? ??? ?String email="\\w+@\\w+\\.\\w+";
?? ??? ?msg("請輸入用戶信息:((按以下格式:編號/姓名/手機(jī)號/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("格式錯(cuò)誤,請輸入正確的手機(jī)號!");
?? ??? ??? ??? ?add();
?? ??? ??? ?}
?? ??? ??? ?if (info[4].matches(email)) {
?? ??? ??? ??? ?
?? ??? ??? ?}else{
?? ??? ??? ??? ?msg("格式錯(cuò)誤,請輸入正確的郵箱!");
?? ??? ??? ??? ?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手機(jī)號\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手機(jī)號\t\tQQ\t\t郵箱");
?? ??? ?msg(u);
?? ?}
?? ?
?? ?/** 4-根據(jù)手機(jī)號查詢聯(lián)系人*/
?? ?private void queryByPhone() {
?? ??? ?sc = new Scanner(System.in);
?? ??? ?msg("請輸入聯(lián)系人手機(jī)號:");
?? ??? ?String phone = sc.next();
?? ??? ?User u = um.findByPhone(phone);
?? ??? ?if (u == null) {
?? ??? ??? ?msg(phone + "不存在,請重新輸入");
?? ??? ??? ?queryByPhone();
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?msg("編號\t姓名\t手機(jī)號\t\tQQ\t\t郵箱");
?? ??? ?msg(u);
?? ?}

?? ?/** 5-顯示所有聯(lián)系人(按名字首拼音排序) */
?? ?private void list() {
?? ??? ?(um.findAll()).sort((a, b) -> {
?? ??? ??? ?//分別獲取要比較的兩個(gè)聯(lián)系人的的姓名
?? ??? ??? ?String name1 = a.getName();
?? ??? ??? ?String name2 = b.getName();
?? ??? ??? ?//聲明變量存儲(chǔ)轉(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手機(jī)號\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();
?? ?}

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot淺析Redis訪問操作使用

    SpringBoot淺析Redis訪問操作使用

    Redis是一個(gè)速度非??斓姆顷P(guān)系數(shù)據(jù)庫(Non-Relational?Database),它可以存儲(chǔ)鍵(Key)與多種不同類型的值(Value)之間的映射(Mapping),可以將存儲(chǔ)在內(nèi)存的鍵值對數(shù)據(jù)持久化到硬盤,可以使用復(fù)制特性來擴(kuò)展讀性能,還可以使用客戶端分片來擴(kuò)展寫性能
    2022-11-11
  • Java Bean的作用域,生命周期和注解

    Java Bean的作用域,生命周期和注解

    這篇文章主要介紹了淺談Spring中Bean的作用域,生命周期和注解,具有一定借鑒價(jià)值,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-11-11
  • 深入理解Java8新特性之Stream API的創(chuàng)建方式和中間操作步驟

    深入理解Java8新特性之Stream API的創(chuàng)建方式和中間操作步驟

    Stream是Java8的一大亮點(diǎn),是對容器對象功能的增強(qiáng),它專注于對容器對象進(jìn)行各種非常便利、高效的 聚合操作(aggregate operation)或者大批量數(shù)據(jù)操作。Stream API借助于同樣新出現(xiàn)的Lambda表達(dá)式,極大的提高編程效率和程序可讀性,感興趣的朋友快來看看吧
    2021-11-11
  • Java:com.netflix.client.ClientException錯(cuò)誤解決

    Java:com.netflix.client.ClientException錯(cuò)誤解決

    本文主要介紹了Java:com.netflix.client.ClientException錯(cuò)誤解決,主要是指出客戶端?module-sso?試圖通過負(fù)載均衡器訪問服務(wù)時(shí),負(fù)載均衡器沒有找到可用的服務(wù)器來處理請求,下面就來介紹一下解決方法
    2024-08-08
  • Java實(shí)現(xiàn)記事本功能

    Java實(shí)現(xiàn)記事本功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)記事本功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java中java.lang.ClassCastException異常原因及解決方法

    Java中java.lang.ClassCastException異常原因及解決方法

    大家好,本篇文章主要講的是Java中java.lang.ClassCastException異常原因及解決方法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 微信小程序錄音文件格式silk遇到的問題及解決方法

    微信小程序錄音文件格式silk遇到的問題及解決方法

    錄音文件為silk格式,說是silk其實(shí)是base64加密后的webm格式,只需將其轉(zhuǎn)為webm格式即可。但是在處理過程中遇到各種坑,下面小編給大家?guī)砹宋⑿判〕绦蜾浺粑募袷絪ilk遇到的問題及解決方法,感興趣的朋友一起看看吧
    2018-09-09
  • Java案例之隨機(jī)驗(yàn)證碼功能實(shí)現(xiàn)實(shí)例

    Java案例之隨機(jī)驗(yàn)證碼功能實(shí)現(xiàn)實(shí)例

    本篇文章主要介紹了Java案例之隨機(jī)驗(yàn)證碼功能實(shí)現(xiàn)實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java獲取IP地址及對應(yīng)的歸屬地的方法詳解

    Java獲取IP地址及對應(yīng)的歸屬地的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Java獲取IP地址及對應(yīng)的歸屬地,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111

    Caused by: java.io.IOException: DerInputStrea

    這篇文章主要介紹了Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10

最新評論

东明县| 崇左市| 奉节县| 靖江市| 哈尔滨市| 固安县| 察隅县| 和平县| 闻喜县| 泾源县| 台南市| 莱州市| 时尚| 当阳市| 大庆市| 资源县| 泸州市| 红原县| 清苑县| 三都| 江陵县| 垦利县| 腾冲县| 南安市| 建昌县| 嵊泗县| 镶黄旗| 中西区| 新竹县| 安岳县| 曲靖市| 绥宁县| 庆安县| 荣昌县| 竹溪县| 曲阳县| 罗甸县| 扶沟县| 华容县| 托里县| 墨脱县|