通讯录,我们每个人都基本用过,但是 怎样实现一个简单的通讯录呢???嗯哼
我的思路:
1、首先用户应进入一个操作界面。
2、用户选择去执行哪个项目操作,这时需要输入菜单上想要执行项目对应的序号
3、根据用户的选择,执行不同的操作(添加,删除,更新,查找联系人)

主函数代码实现:

import javax.naming.NameNotFoundException;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);//输入Contact contact=new Contact();//联系人while (true){//1、打印操作界面menu();//2、用户选择输入int selected=scanner.nextInt();scanner.nextLine();//读取那个空格键//3、根据用户的选择,执行不同的操作switch (selected){case 1:add(contact,scanner);System.out.println("DEBUG: "+contact);break;case 2:search(scanner,contact);break;case 3:remove(scanner,contact);System.out.println("DEBUG: "+contact);break;case 4:update(scanner,contact);System.out.println("DEBUG: "+contact);break;default:System.out.println("指令错误");}}}private static void update(Scanner scanner, Contact contact) {System.out.println("请输入要更新的联系人的姓名:");String name = scanner.nextLine();System.out.println("请输入要更新的字段:");System.out.println("1. 姓名");System.out.println("2. 手机号");System.out.println("3. 办公室电话");int selected = scanner.nextInt();scanner.nextLine();switch (selected) {case 1: {System.out.println("请输入新的名字:");String newName = scanner.nextLine();User user = contact.get(name);if (user == null) {System.out.println("查无此人");} else {try {contact.add(newName, user.mobilePhone, user.officePhone);try {contact.remove(name);} catch (NameNotFoundException e) {}} catch (NameExistException e) {System.out.println("新姓名已存在");}}break;}case 2: {System.out.println("请输入新的手机号:");String mobilePhone = scanner.nextLine();User user = contact.get(name);if (user == null) {System.out.println("查无此人");} else {//通过引用修改,map中保存的值也会变化user.mobilePhone = mobilePhone;System.out.println("修改成功");}break;}case 3: {System.out.println("请输入新的办公室电话:");String officePhone = scanner.nextLine();User user = contact.get(name);if (user == null) {System.out.println("查无此人");} else {//通过引用修改,map中保存的值也会变化user.officePhone = officePhone;System.out.println("修改成功");}break;}}}private static void remove(Scanner scanner,Contact contact) {System.out.println("请输入要删除联系人的姓名:");String name=scanner.nextLine();try {contact.remove(name);System.out.println("成功删除");}catch (NameNotFoundException e){System.out.println("查无此人");}}private static void search(Scanner scanner,Contact contact) {System.out.println("请输入要查找的姓名:");String name=scanner.nextLine();User user=contact.get(name);if(user==null){System.out.println("查无此人");}else{System.out.println("手机号:"+user.mobilePhone);System.out.println("办公室电话:"+user.officePhone);}}private static void add(Contact contact,Scanner scanner) {System.out.println("请输入姓名:");String name=scanner.nextLine();System.out.println("请输入手机号:");String mobilePhone=scanner.nextLine();System.out.println("请输入办公室电话号码:");String officePhone=scanner.nextLine();try{contact.add(name,mobilePhone,officePhone);System.out.println("添加成功");}catch (NameExistException e){System.out.println("添加失败,用户已存在");}finally {System.out.println("*************************");}}private static void menu() {System.out.println("| 朋友专用通讯录 ");System.out.println("| 1、添加 |");System.out.println("| 2、查找 |");System.out.println("| 3、删除 |");System.out.println("| 4、更新 |");System.out.println("请选择正确的选项:");}
}

通讯录列表联系人的代码实现:

import javax.naming.NameNotFoundException;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);//输入Contact contact=new Contact();//联系人while (true){//1、打印操作界面menu();//2、用户选择输入int selected=scanner.nextInt();scanner.nextLine();//读取那个空格键//3、根据用户的选择,执行不同的操作switch (selected){case 1:add(contact,scanner);System.out.println("DEBUG: "+contact);break;case 2:search(scanner,contact);break;case 3:remove(scanner,contact);System.out.println("DEBUG: "+contact);break;case 4:update(scanner,contact);System.out.println("DEBUG: "+contact);break;default:System.out.println("指令错误");}}}private static void update(Scanner scanner, Contact contact) {System.out.println("请输入要更新的联系人的姓名:");String name = scanner.nextLine();System.out.println("请输入要更新的字段:");System.out.println("1. 姓名");System.out.println("2. 手机号");System.out.println("3. 办公室电话");int selected = scanner.nextInt();scanner.nextLine();switch (selected) {case 1: {System.out.println("请输入新的名字:");String newName = scanner.nextLine();User user = contact.get(name);if (user == null) {System.out.println("查无此人");} else {try {contact.add(newName, user.mobilePhone, user.officePhone);try {contact.remove(name);} catch (NameNotFoundException e) {}} catch (NameExistException e) {System.out.println("新姓名已存在");}}break;}case 2: {System.out.println("请输入新的手机号:");String mobilePhone = scanner.nextLine();User user = contact.get(name);if (user == null) {System.out.println("查无此人");} else {//通过引用修改,map中保存的值也会变化user.mobilePhone = mobilePhone;System.out.println("修改成功");}break;}case 3: {System.out.println("请输入新的办公室电话:");String officePhone = scanner.nextLine();User user = contact.get(name);if (user == null) {System.out.println("查无此人");} else {//通过引用修改,map中保存的值也会变化user.officePhone = officePhone;System.out.println("修改成功");}break;}}}private static void remove(Scanner scanner,Contact contact) {System.out.println("请输入要删除联系人的姓名:");String name=scanner.nextLine();try {contact.remove(name);System.out.println("成功删除");}catch (NameNotFoundException e){System.out.println("查无此人");}}private static void search(Scanner scanner,Contact contact) {System.out.println("请输入要查找的姓名:");String name=scanner.nextLine();User user=contact.get(name);if(user==null){System.out.println("查无此人");}else{System.out.println("手机号:"+user.mobilePhone);System.out.println("办公室电话:"+user.officePhone);}}private static void add(Contact contact,Scanner scanner) {System.out.println("请输入姓名:");String name=scanner.nextLine();System.out.println("请输入手机号:");String mobilePhone=scanner.nextLine();System.out.println("请输入办公室电话号码:");String officePhone=scanner.nextLine();try{contact.add(name,mobilePhone,officePhone);System.out.println("添加成功");}catch (NameExistException e){System.out.println("添加失败,用户已存在");}finally {System.out.println("*************************");}}private static void menu() {System.out.println("| 朋友专用通讯录 ");System.out.println("| 1、添加 |");System.out.println("| 2、查找 |");System.out.println("| 3、删除 |");System.out.println("| 4、更新 |");System.out.println("请选择正确的选项:");}
}

通讯录列表里每个用户的代码实现:

public class User {String name;String mobilePhone;String officePhone;public User(String name,String mobilePhone,String officePhone){this.name=name;this.mobilePhone=mobilePhone;this.officePhone=officePhone;}
}

抛异常的代码实现1:

public class NameExistException extends Exception{public NameExistException() {}public NameExistException(String message) {super(message);}public NameExistException(String message, Throwable cause) {super(message, cause);}public NameExistException(Throwable cause) {super(cause);}public NameExistException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {super(message, cause, enableSuppression, writableStackTrace);}
}

异常的代码实现2:

public class NameNotFoundException extends Exception{public NameNotFoundException() {}public NameNotFoundException(String message) {super(message);}public NameNotFoundException(String message, Throwable cause) {super(message, cause);}public NameNotFoundException(Throwable cause) {super(cause);}public NameNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {super(message, cause, enableSuppression, writableStackTrace);}
}

运行结果:

| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:
1
请输入姓名:
111
请输入手机号:
34829302
请输入办公室电话号码:
4627930
添加成功
*************************
DEBUG: Contact@7ea987ac
| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:
1
请输入姓名:
222
请输入手机号:
853975094
请输入办公室电话号码:
743842980
添加成功
*************************
DEBUG: Contact@7ea987ac
| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:
2
请输入要查找的姓名:
111
手机号:34829302
办公室电话:4627930
| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:
3
请输入要删除联系人的姓名:
111
成功删除
DEBUG: Contact@7ea987ac
| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:
4
请输入要更新的联系人的姓名:
222
请输入要更新的字段:
1. 姓名
2. 手机号
3. 办公室电话
1
请输入新的名字:
666
DEBUG: Contact@7ea987ac
| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:
2
请输入要查找的姓名:
222
查无此人
| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:
2
请输入要查找的姓名:
666
手机号:853975094
办公室电话:743842980
| 朋友专用通讯录
| 1、添加 |
| 2、查找 |
| 3、删除 |
| 4、更新 |
请选择正确的选项:

(Java)通讯录的实现相关推荐

  1. 用集合编写的java通讯录_java使用集合实现通讯录功能

    本文实例为大家分享了java使用集合实现通讯录的具体代码,供大家参考,具体内容如下 代码有些繁琐,只适合初学者. 项目1 java通讯录 方法(声明方法的类) 代码块 代码块语法遵循标准markdow ...

  2. java学生通讯录_简单实现Java通讯录系统

    本文实例为大家分享了Java通讯录系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; class Person { String name; String n ...

  3. Java~通讯录系统

    Java~通讯录欢迎各位 1.需求分析 2.概要设计 2.1功能模块结构图 2.2业务流程图 3 运行环境 4 开发工具和编程语言 5 详细设计 5.1 数据库设计 5.2 类的设计 5.3登录 5. ...

  4. java通讯录课程设计_Java通讯录管理系统(课程设计)

    Java通讯录管理系统 作者: 李思萌 日期: 2012-11-17 1.创建数据库DB_Address 脚本: create database DB|_|Address 2.数据表脚本tb_Addr ...

  5. java通讯录带报告

    web技术(jsp)课程设计任务书 设计题目: 网络通信录管理网站设计 设计主要内容: 一.开发平台:VISO+界面设计语言(JAVA/VB/HTML) 二.功能要求: 1.设计内容 设计一个网络通信 ...

  6. java通讯录源码下载_Java通讯录手机版源码JAVA源码下载

    运行在手机上的一款通讯录程序,是用Java编写的,现在附上所有的源码,请在Eclipse下尝试运行这套程序,这样能够减少您的很多步骤.有兴趣的朋友好好研讨一下. Java通讯录手机版源码 (1 fol ...

  7. java通讯录工程_JAVA通讯录管理小项目

    **自己写的简单通讯录管理项目** 有集合基本的增删改查,我还没有学数据库什么的,就用对象序列化和反序列化来保存信息了. 本人菜鸟一枚,有不足之处请多指点. package aatroxcarry.t ...

  8. java通讯录课程设计_java课程设计_通讯录_通讯簿.doc

    java课程设计_通讯录_通讯簿.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: impor ...

  9. JAVA 通讯录 —— 实现对XML文件数据的增删改查

    心血来潮,带着好奇写了人生中第一篇博客,哈哈哈哈 ~ 嗝 ~ ~   这篇文章主要就是分享自己做的一次项目作业,一是为了分享,二是用另外一种方式保存自己的代码 嘻嘻嘻 ~.还是个编程萌新,所以有啥写的 ...

  10. java桌面通讯录源码_TONGXUNLU JAVA通讯录源码 JAVA课程设计源码 讯友桌面通讯录 通讯录管理 - 下载 - 搜珍网...

    讯友桌面通讯录/.classpath 讯友桌面通讯录/.project 讯友桌面通讯录/.settings/org.eclipse.jdt.core.prefs 讯友桌面通讯录/bin/com/zzk ...

最新文章

  1. 电子计算机的发展与应用教案,川教版信息技术七上第3课《电子计算机的发展与应用》教案1.doc...
  2. MariaDB/MySQL防止重复插入相同记录:INSERT IGNORE或者REPLACE
  3. 百度网页分享js代码
  4. jvm内存结构_浅谈JVM内存结构
  5. C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
  6. 注意啦,Struts 2.1.6跟sitemesh-2.4.1不兼容
  7. call mysql_connect_Call to undefined function mysql_connect()
  8. STM32CubeMX+Keil裸机代码风格(2)
  9. ARM开发7.5.2 基础实训( 6 ) 4×4 矩阵键盘和 2 路 LED 显示系统( 2 )--LPC21XX
  10. IMX6ULL Uboot 移植
  11. VS2012帮助下载地址
  12. matlab小波分解图像,MATLAB小波图像分解
  13. 人人网如何注册与设置密码
  14. word页眉页脚,奇偶不同
  15. 东莞市中考计算机考试试题,东莞中考信息技术特长生考试程序内容及评分标准...
  16. Android手势密码
  17. 论文阅读:(arXiv 2021)Beyond Periodicity: Towards a Unifying Framework for Activations in Coordinate-MLP
  18. SpringCloud(三):监控中心 hystrix turbine
  19. hylafax php,运用PHP发送传真(PHP code for Sending fax)
  20. [Python] wxPython 基本控件 (转)

热门文章

  1. php 谷歌vard 电话薄联系人头像,[Exchange] 如何为 Exchange 用户添加联系人头像
  2. 如何在 ggplot2 中更改背景颜色(附示例)
  3. 8、【循环练习-蜗牛爬井】井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。
  4. 二十九、​Fluent瞬态时间步长与迭代步数的讨论
  5. HRBU 2021年暑期训练阶段三Day1
  6. 【GPU基础】GPU状态监测 nvidia-smi 命令详解
  7. 【我的生活】旅游计划--2019
  8. 基于JAVA大学生个人博客网站计算机毕业设计源码+系统+lw文档+部署
  9. 消除Django的RuntimeWarning:DateTimeField警告
  10. 通达信挖掘大牛浮水指标公式源码