通过应用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. ARPG游戏引擎设计思路
  2. QQ好友列表数据模型封装
  3. 初等数论--同余--MILLER-RABIN素性检测算法
  4. 他从零开始学Python,25岁拥有480000粉丝:成功就靠这3点!
  5. 4-2 ADO.NET-查询和检索数据13
  6. 指定开局五子棋c语言代码,C语言案例:控制台版本的五子棋游戏【代码】
  7. VR来了,科技的各行各业要如何做好准备?
  8. Leetcode每日一题:33.search-in-rotated-sorted-array(搜索旋转排序数组)
  9. 使用L2TPV3桥接---FR-TO-PPP
  10. springmvc项目在启动完成之后执行一次方法_SpringMVC源码分析
  11. Xcode9 无线连接真机调试
  12. c语言程序设计教程 郭浩志,C语言程序设计教程答案杨路明郭浩志.doc
  13. RHEL7中设置ssh
  14. windows下面刷新dns
  15. 华为外包的感受(CSDN)
  16. 华为无线路由器信道怎么测试软件,路由器无线信道是什么怎么设置
  17. 呕心沥血总结的Python自动化测试面试题
  18. UVA10881 Piotr‘s Ants
  19. SSL、openSSL、CA
  20. 用Java写PTA 7-8 设计一个Shape及其子类Oval

热门文章

  1. 原型设计转html5,H5的交互原型设计
  2. 常用windows自带程序对应的命令
  3. 将图片转换成base64 在前端使用img标签显示出来
  4. Git配置多仓库账户密码
  5. android依赖重复处理办法
  6. 1 跟李沐老师学习深度学习(介绍监督【分类回归】、非监督【聚类】)
  7. JAVA模拟pcb池带ui界面_电路设计软件系列教程(四),Protel DXP电路设计软件之创建PCB文件...
  8. Shell中read的选项及用法
  9. Pandas 练习题
  10. 【UML】UML图--交互图(时序图和协作图)