【Java】通讯录管理系统小项目
一、前言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站前言 – 床长人工智能教程正在上传…重新上传取消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】通讯录管理系统小项目相关推荐
- 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)
计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...
- 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...
- java写的教育管理的项目_干货分享|推荐12款适合做Java后台管理系统的项目
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有 ...
- java通讯录工程_JAVA通讯录管理小项目
**自己写的简单通讯录管理项目** 有集合基本的增删改查,我还没有学数据库什么的,就用对象序列化和反序列化来保存信息了. 本人菜鸟一枚,有不足之处请多指点. package aatroxcarry.t ...
- java gui 项目解密,java GUI(实例小项目--列出磁盘目录)
//java实例小项目:列出磁盘目录. import java.awt.*; import java.awt.event.*; import java.io.File; class MyWindDem ...
- Java综合练习小项目——快递柜
快递柜 前言 这是针对基础部分的综合练习,需要了解的知识有变量.数据类型.数组. 取快递是现在大部分人都会做的事情,那么小白该怎么写出一个简单的取快递的程序呢?那么请按照以下功能条件来写出一个简单的快 ...
- java学习之小项目彩票购买系统
项目需求 双色球投注区分为红色球号码区和蓝色球号码区, 红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成. 投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注 ...
- [java]JavaSE基础小项目:校园多人畅聊系统
这是一个基于JavaSE的小项目,从名字我们也能看出来这是个多人聊天系统.下面记录一下整个项目的功能,设计思想以及所用到的知识,大家有兴趣的话,也可以自己尝试练习一下,也算是对SE的复习. 项目名称: ...
- Java练手小项目——BMI计算器
最近有一个减肥的朋友想要知道自己的BMI是多少,问我能不能给他做一个计算BMI的工具(无中生友).于是用Java简单写了一个.一起来看看吧. 身体质量指数是BMI指数(身体质量指数,简称体质指数),是 ...
最新文章
- Servlet,过滤器,监听器,拦截器的区别
- 1分钟解决VS每次运行都显示“正在还原nuget程序包”问题
- TPC-W 一个实验结果和分析
- 一个快速、高效的Levenshtein算法实现
- IBM Storwize V7000 Introduction(1)
- Sentinel的简单使用
- Github-初始化仓库
- css伪元素研究(::before/::after)
- GOF设计模式--简单工厂模式
- 使用apktool+dex2jar+xjad进行反编译
- Mysql日常操作记录
- win7计算机开机黑屏解决办法参考
- oracle外部表 查重,问题解决中对问题的外部表征和内部表征
- 读书笔记:PHP和MySQL高性能应用开发 (2019.2.20-2019.3.4)
- USTC English Club20171010
- shell-环境变量以及环境变量的配置文件
- css3实现六边形列表
- Web死链扫描神器之LinkChecker
- java heritrix_「heritrix」开源爬虫: Heritrix 3.1 Windows 上安装/使用 - seo实验室
- 何金龙 mysql_[译文]MySQL发生死锁肿么办?by何金龙