一、前言

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

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

二、创建通讯的功能

*
增加联系人信息

*
删除联系人信息

*
修改联系人信息

*
查看所有联系人信息

*
退出通信录管理系统

首先定义一个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方法
@Override public 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; } } } } }
最终效果总览图:

 

技术
©2019-2020 Toolsou All rights reserved,
程序员的520,送给女友的几行漂亮的代码(python版)基于stm32控制四轮小车电机驱动(一)linux查看磁盘空间命令实验四 自动化测试工具-软件测试axios拦截器封装与使用C语言——qsort函数opencv-python傅里叶变换以及逆变换在算法研究过程中如何进行算法创新nc的安装和简单操作C语言做一个简易的登陆验证(功能)界面