一、前言

 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站前言 – 床长人工智能教程正在上传…重新上传取消https://www.cbedai.net/gkbskchttps://www.cbedai.net/gkbskc

我们学了这么久的知识了,光学知识不会用是一件很悲伤的事情,所以我们应学完

部分练一些项目或题,来巩固我们学习的知识,激发我们持续学习的动力。

二、创建通讯的功能

  • 增加联系人信息

  • 删除联系人信息

  • 修改联系人信息

  • 查看所有联系人信息

  • 退出通信录管理系统

首先定义一个People类,提供相应的get、set方法

(在idea中有快捷键Alt+insert生成get、set方法,和构造方法)

public class People {private String sid;private String name;private String age;private String address;private String num;public People(){}public People(String sid, String name, String age, String address, String num) {this.sid = sid;this.name = name;this.age = age;this.address = address;this.num=num;}public String getSid() {return sid;}public void setSid(String sid) {this.sid = sid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getNum() {return num;}public void setNum(String num) {this.num = num;}

在People类中加上菜单,并在测试类中去调用。

    public void 菜单(){System.out.println("-------欢迎来到通讯录管理系统-------");System.out.println("1.增加联系人");System.out.println("2.删除联系人");System.out.println("3.修改联系人");System.out.println("4.查看所有联系人");System.out.println("5.退出");System.out.println("请选择:");}

我们为了能直接通过打印对象来得到我们想要得到信息,而不是得到

查看所有输入的信息,没有重写toString时:[controller.Student@6e0be858]

重写了toString方法就可以得到看得懂。也可以通过Alt+Inset快捷键来快速生成toString方法

    @Overridepublic String toString(){//重写toString方法,使其变成我们看得懂的指定的信息return "[姓名:"+name+",年龄:"+age+",电话:"+num+",关系:"+sid+",住址:"+address+"]\n";}}

以上都是在People类中。

我们在PeopleManner类下,书写以下方法。

main方法中:

 public static void main(String[] args) {ArrayList<People> array = new ArrayList();while (true) {People s = new People();//创建对象,调用方法。s.菜单();Scanner sc1 = new Scanner(System.in);int d = sc1.nextInt();switch (d) {case 1: {addPeople(array);System.out.println("添加联系人成功");break;}case 2:{deletePeople(array);break;}case 3:{revisePeople(array);break;}case 4:{checkPeople(array);break;}case 5:{System.out.println("退出成功,谢谢使用");System.exit(0);break;}default:{System.out.println("输入错误,请重新输入");}}}

在增加联系人的方法addPeople中

 public static void addPeople(ArrayList<People> array){Scanner sc=new Scanner(System.in);System.out.println("请输入姓名");String name=sc.nextLine();System.out.println("请输入电话号码");String num=sc.nextLine();System.out.println("请输入你们之间的关系");String sid=sc.nextLine();System.out.println("请输入年龄");String age=sc.nextLine();System.out.println("请输入家庭住址");String address=sc.nextLine();People s1=new People();//创建对象,调用set成员,设置成员的值s1.setAddress(address);s1.setAge(age);s1.setName(name);s1.setSid(sid);s1.setNum(num);array.add(s1);//将所有设置的变量加到集合中}

在查看所有联系人的方法checkPeople中

   public static void checkPeople(ArrayList<People> array){if(array.isEmpty()){//isEmpty是用来判断非空的是collection接口的方法,ArrayList实现了 list接口,list接口继承了collection接口System.out.println("没有联系人信息,请先添加联系人后查看");}else{System.out.println(array);}//查看所有输入的信息,没有重写toString时: //[controller.Student@6e0be858]}

在删除联系人信息方法中

 public static void deletePeople(ArrayList<People> array){if(array.isEmpty()){System.out.println("没有联系人信息,请先添加联系人信息再操作");}else{Scanner sc=new Scanner(System.in);System.out.println("请输入你要删除联系人名字");String num=sc.nextLine();int sum=0;for(int i=0;i<array.size();i++) {People stu = array.get(i);//  System.out.println(stu);//stu包括了一个元素联系人的所有信(name,age...)if(stu.getName().equals(num)) {array.remove(i);sum++;//定义一个变量用来判断是否含有该元素System.out.println("删除成功");}}if(sum==0){System.out.println("删除失败,该联系人信息不存在");}}}

在定义修改联系人信息的方法中

   public static void revisePeople(ArrayList<People> array) {if (array.isEmpty()) {System.out.println("没有联系人信息!请添加后在进行操作");} else {Scanner sc1 = new Scanner(System.in);System.out.println("请输入你要修改联系人的姓名");String name1 = sc1.nextLine();int sum = 0;for (int j = 0; j < array.size(); j++) {People s2 = array.get(j);if (s2.getName().equals(name1)) {sum++;}}if (sum == 0) {System.out.println("没有匹配的姓名,重新输入");}else{Scanner sc = new Scanner(System.in);System.out.println("请输入新姓名");String name = sc.nextLine();System.out.println("请输入新电话码");String num = sc.nextLine();System.out.println("请输入你们之间的关系");String sid = sc.nextLine();System.out.println("请输入新年龄");String age = sc.nextLine();System.out.println("请输入新地址");String address = sc.nextLine();People s1 = new People();s1.setAddress(address);s1.setAge(age);s1.setName(name);s1.setSid(sid);s1.setNum(num);// System.out.println(s1);//s1也是一个包含联系人所有信息的元素,所以后续用array.set(i,s1)等价交换for (int i = 0; i < array.size(); i++) {People s = array.get(i);if (s.getName().equals(name1)) {array.set(i, s1);//将他修改System.out.println("修改成功");break;}}}}}

最终效果总览图:

【Java】通讯录管理系统小项目相关推荐

  1. 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)

    计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...

  2. 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...

  3. java写的教育管理的项目_干货分享|推荐12款适合做Java后台管理系统的项目

    Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有 ...

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

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

  5. java gui 项目解密,java GUI(实例小项目--列出磁盘目录)

    //java实例小项目:列出磁盘目录. import java.awt.*; import java.awt.event.*; import java.io.File; class MyWindDem ...

  6. Java综合练习小项目——快递柜

    快递柜 前言 这是针对基础部分的综合练习,需要了解的知识有变量.数据类型.数组. 取快递是现在大部分人都会做的事情,那么小白该怎么写出一个简单的取快递的程序呢?那么请按照以下功能条件来写出一个简单的快 ...

  7. java学习之小项目彩票购买系统

    项目需求 双色球投注区分为红色球号码区和蓝色球号码区, 红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成. 投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注 ...

  8. [java]JavaSE基础小项目:校园多人畅聊系统

    这是一个基于JavaSE的小项目,从名字我们也能看出来这是个多人聊天系统.下面记录一下整个项目的功能,设计思想以及所用到的知识,大家有兴趣的话,也可以自己尝试练习一下,也算是对SE的复习. 项目名称: ...

  9. Java练手小项目——BMI计算器

    最近有一个减肥的朋友想要知道自己的BMI是多少,问我能不能给他做一个计算BMI的工具(无中生友).于是用Java简单写了一个.一起来看看吧. 身体质量指数是BMI指数(身体质量指数,简称体质指数),是 ...

最新文章

  1. Servlet,过滤器,监听器,拦截器的区别
  2. 1分钟解决VS每次运行都显示“正在还原nuget程序包”问题
  3. TPC-W 一个实验结果和分析
  4. 一个快速、高效的Levenshtein算法实现
  5. IBM Storwize V7000 Introduction(1)
  6. Sentinel的简单使用
  7. Github-初始化仓库
  8. css伪元素研究(::before/::after)
  9. GOF设计模式--简单工厂模式
  10. 使用apktool+dex2jar+xjad进行反编译
  11. Mysql日常操作记录
  12. win7计算机开机黑屏解决办法参考
  13. oracle外部表 查重,问题解决中对问题的外部表征和内部表征
  14. 读书笔记:PHP和MySQL高性能应用开发 (2019.2.20-2019.3.4)
  15. USTC English Club20171010
  16. shell-环境变量以及环境变量的配置文件
  17. css3实现六边形列表
  18. Web死链扫描神器之LinkChecker
  19. java heritrix_「heritrix」开源爬虫: Heritrix 3.1 Windows 上安装/使用 - seo实验室
  20. 何金龙 mysql_[译文]MySQL发生死锁肿么办?by何金龙

热门文章

  1. 医学图象存储、检索和显示的新技术及新动向
  2. 解决电脑关机后会自动重启?
  3. LCD中如何描绘点阵数据
  4. 关于数据仓库 — ODS概念
  5. 135编辑器怎么复制html,微信公众号怎么复制别人的图文排版(图文模板复制方法)...
  6. 入职体检(三甲医院)
  7. “21 天好习惯”第一期-6
  8. Java删除Maven下的.lastUpdated文件
  9. 选型笔记之二极管选型
  10. 【Unity VR开发窍门】如何在Unity中以VR视角捕捉游戏360度全景