通过应用Java中常用的数组和字符串,编写一个简单的通讯录程序,来熟悉系统类和数组的应用。通讯录由多条记录构成。每条记录包括一个联系人的姓名、性别、电话、通信地址,并具有显示、查询、增加、修改、删除等功能,且每执行一次功能操作后,可以选择用类似以下的格式,输出通讯录的所有信息记录:
编号 姓名 性别 电话 通信地址
01 张三 男 123456 上海
02 李四 女 456789 桂林
可考虑用数组分别存储姓名,性别,电话,通信地址,那么显示、查询,增加、修改、删除操作就可转换为对数组元素的操作。通讯录中的所有记录的每一个字段可以采用一维或二维或其它类型数组来存放。 请发挥自己的思考能力,用自己熟悉的或者觉得更合理的方式来设计程序解决问题,完成该实验。
User.java

import java.util.Scanner;public class User {public static void main(String[] args) {System.out.println("请输入您的操作:1、显示\t2、查询\t3、增加\t4、修改\t5、删除");system sy = new system();Scanner sc = new Scanner(System.in);int choose = sc.nextInt();while (true){switch (choose){case 1:sy.show();break;case 2:System.out.print("请输入您要查询的关键字:");String key = sc.next();sy.refer(key);break;case 3:System.out.println("请输入您要增添的姓名、性别、电话、通讯地址:");String name = sc.next();String sex = sc.next();String tele = sc.next();String addr = sc.next();sy.add(name,sex,tele,addr);break;case 4:System.out.println("请输入您要更改的姓名:");String name1 = sc.next();System.out.println("请输入您要更改的选项1、性别\t2、电话\t3、通讯地址");int upn = sc.nextInt();if(upn == 1){                               //利用方法的重写,选择性更改System.out.println("请输入更改后的性别:");String sex1 = sc.next();sy.updata(name1,sex1);}else if (upn == 2){System.out.println("请输入更改后的电话:");String tele1 = sc.next();sy.updata(name1,tele1,upn);}else {System.out.println("请输入更改后的地址:");String addr1 = sc.next();sy.updata(name1,upn,addr1);}break;case 5:System.out.print("请输入您要删除的关键字:");String key1 = sc.next();sy.delete(key1);break;default:System.out.println("放学了");}System.out.println("请输入您的操作:1、显示\t2、查询\t3、增加\t4、修改\t5、删除\t6、退出");choose = sc.nextInt();if(choose == 6){break;}}}
}

system.java

public class system {static String[][] sys = new String[100][5];static int first = 0;  //用于标记某行有没有数据   0 表示没有  1 有//显示public void show(){for(int i = 0; i<sys.length-1; i++){  // 减一为了防止溢出for(int j = 0; j<sys[0].length; j++){if(sys[i][j] == null){break;}else {first = 1;System.out.print(sys[i][j]+"\t");}}if(first == 1 && sys[i+1][0] != null){   // 由于在大循环中,我们只要求有数据才换行System.out.println();}else if (first== 0){System.out.println("表内无数据!");break;}}System.out.println();}//查找public void refer(String key){int flag=0;                          //标记是否有关键字for(int i = 0; i<sys.length; i++){for(int j = 0; j<sys[0].length; j++){if(key.equals(sys[i][j])){   // 遍历数组找关键字,一样的那一行输出信息flag = 1;for(int t = 0; t<sys[0].length; t++){System.out.print(sys[i][t]+"\t");}System.out.println();}}}if(flag == 0){System.out.println("无此信息");}}//增加public void add(String name, String sex, String tele, String addr){int flag = 0;for(int i = 0; i<sys.length; i++){for(int j = 0; j<sys[0].length; j++){if(sys[i][0] == null){             //找到最后一行sys[i][0]= i+1+"";sys[i][1]= name;sys[i][2]= sex;sys[i][3]= tele+"";sys[i][4]= addr;flag = 1;break;}}if(flag == 1){break;}}if (flag == 0){System.out.println("增加失败!");}}//修改更新public void updata(String name1, String sex1){ //方法重写,找关键字int flag=0;for(int i = 0; i<sys.length; i++){for(int j = 0; j<sys[0].length; j++){if(name1.equals(sys[i][j])){flag = 1;sys[i][j+1] = sex1;System.out.println();}}}if(flag == 0){System.out.println("无此信息");}}public void updata(String name1,String tele1, int upn){int flag=0;for(int i = 0; i<sys.length; i++){for(int j = 0; j<sys[0].length; j++){if(name1.equals(sys[i][j])){flag = 1;sys[i][j+2] = tele1;System.out.println();}}}if(flag == 0){System.out.println("无此信息");}}public void updata(String name1,int upn,String addr1){int flag=0;for(int i = 0; i<sys.length; i++){for(int j = 0; j<sys[0].length; j++){if(name1.equals(sys[i][j])){flag = 1;sys[i][j+3] = addr1;System.out.println();}}}if(flag == 0){System.out.println("无此信息");}}//删除public void delete(String key1){int flag=0;for(int i = 0; i<sys.length; i++){for(int j = 0; j<sys[0].length; j++){if(key1.equals(sys[i][j])){flag = 1;for(int o = i;o<sys.length; o++){  //o用来找行for(int t = 0; t<sys[0].length; t++){sys[o][t] = null;sys[o][t] = sys[o+1][t];sys[o+1][t] = null;}if(sys[o][0] != null){  //删完后就不再打印数字了sys[o][0] = o+1+"";}else {break;}}j--;      //删完后后面一行补上,得回到改行进行核查关键字System.out.println();}}}if(flag == 0){System.out.println("无此信息");}}
}

效果如下:

javase设计简单通讯录相关推荐

  1. 设计简单通讯录系统 普通数组和vector数组实现

    设计并实现简单通讯录系统 1.定义描述联系人信息的类(数据类) 数据成员:身份证号.姓名.手机号(用字符串数组,可能不止一个).QQ号.微信号.住址;成员函数:构造函数若干.get/set函数.显示函 ...

  2. Jquery Mobile设计Android通讯录第二章

    本文是jQuery Mobile设计Android通讯录系统教程的第二篇,在上一篇教程中(http://publish.itpub.net/a2011/0517/1191/000001191561.s ...

  3. 通讯录管理系统C语言课程设计大作业,c语言课程设计报告---通讯录管理系统.doc...

    c语言课程设计报告---通讯录管理系统.doc Yangtze University College of Arts and Science 学生实习手册 (课程设计报告) 学 部 理 工 学 部 专 ...

  4. 用python画简单图案图片_使用 Python Turtle 设计简单而又美丽的图形

    使用 Python Turtle 设计简单而又美丽的图形 看看本文中这些美丽的图画.正是这样的事情让我爱上了 turtle.优秀的程序员会认为turtle是"落后原始的",但我不敢 ...

  5. 使用Ext Designer 设计简单计算器

    使用ExtDesigner 设计简单计算器   一,   设计思想. 计算器的设计主要功能是使用,做出来的计算器要能简单的计算加减乘除法的运算,清除复位功能.分析计算器用ExtDesigner设计需要 ...

  6. 用Java设计一个通讯录,保存读者的信息。

    用Java设计一个通讯录,保存读者的信息. 一class Address package p3;import java.io.Serializable;public class Address imp ...

  7. 用python画简单的图案-使用 Python Turtle 设计简单而又美丽的图形

    原标题:使用 Python Turtle 设计简单而又美丽的图形 正文 看看本文中这些美丽的图画.正是这样的事情让我爱上了 turtle.优秀的程序员会认为turtle是"落后原始的&quo ...

  8. C语言课程设计:通讯录系统

    C语言课程设计:通讯录系统 [题目4]通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能.由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码.电话号码 ...

  9. 学习用Photoshop来设计简单的网页

    学习用Photoshop来设计简单的网页   从设计<动力文章系统2003>的两张网页开始: 一张是网站首页,一张是文章内容页 通过对这两张网页的完整设计初步掌握PS设计网页的基本操作. ...

最新文章

  1. 中文版GPT-3来了?智源研究院发布清源 CPM —— 以中文为核心的大规模预训练模型...
  2. docker image aarch64 x86_64_「docker」交叉编译适用于ARM平台的Docker源码
  3. 《敏捷个人-认识自我、管理自我.pdf》更新至 v0.7
  4. “内部人”的信息安全架构---信任体系
  5. 增删改查java代码_程序员:听说你正在为天天写增删改查代码而烦恼
  6. 周鸿祎:不得不说的话
  7. flutter和dart的SDK安装
  8. 华三H3C链路聚合配置实例
  9. paip.提高开发效率----自动数据库SQL备份
  10. 几款pdf转换成word转换器免费版软件
  11. 浙江农林大学计算机分数线,浙江农林大学各专业录取分数线
  12. 谷歌最新版本浏览器安装海康插件后仍不能预览摄像头视频的解决方法
  13. mysql字段提取函数_MySQL 字符串截取函数
  14. python积木编程软件_积木编程软件手机版下载
  15. 利用Java的JavaMail发送邮件:企业邮箱版和个人邮箱客端版
  16. 神经网络:训练模型+转化为k210上跑的kmodel
  17. android入门之broadcast
  18. [Unity Mirror] 作弊与反作弊
  19. 前端中常用的一个标准的表格模板
  20. 零号培训平台课程-1、SQL注入基础

热门文章

  1. ucsb计算机专业排名,加州大学圣塔芭芭拉分校UCSB计算机科学Computer Science专业排名第58位(2021年THE世界大学商科排名)...
  2. Golang 原生实现简单爬虫
  3. 数据库基础-入门看这篇
  4. Duplicate class com.xxx.xxx found in modules问题解决(aidl相互依赖问题)
  5. kali2020 vnc安装_kali配置x11vnc
  6. 谁主沉浮:小型机替代的新生力
  7. 穿越剧韩剧盘点-Signal(信号)
  8. 光伏逆变器MPPT功能
  9. Unity 之 NullReferenceException(空引用异常)问题
  10. 【CTO讲堂】揭秘高效协作工具背后的技术架构