Java实现通讯录管理系统项目
作者:执久呀 发布时间:2022-11-17 02:41:03
标签:java,通讯录
本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下
一、前言
我们学了这么久的知识了,光学知识不会用是一件很悲伤的事情,所以我们应学完
部分练一些项目或题,来巩固我们学习的知识,激发我们持续学习的动力。
二、创建通讯的功能
增加联系人信息
删除联系人信息
修改联系人信息
查看所有联系人信息
退出通信录管理系统
首先定义一个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;
}
}
}
}
}
最终效果总览图:
来源:https://blog.csdn.net/weixin_60719453/article/details/121086292


猜你喜欢
- 本文实例为大家分享了Unity快速生成常用文件夹的具体代码,供大家参考,具体内容如下前言每次打开新工程创建文件夹都很麻烦,写了一个小工具代码
- 本文实例为大家分享了Android空心圆及层叠效果的具体代码,供大家参考,具体内容如下package com.bwei.test.zidin
- 异常与错误:异常:在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知
- 1、 初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中 关卡所在处赋予代表关卡的值。关键代码如下///
- 这篇文章主要介绍了如何基于Java实现对象List排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 本文实例总结了C# XML序列化方法及常用特性。分享给大家供大家参考,具体如下:C#对象XML序列化(一):序列化方法和常用特性.Net F
- 摘要在我们使用MyBatis的过程中,如果所有实体类和单表CRUD代码都需要手写,那将会是一件相当麻烦的事情。MyBatis官方代码生成器M
- 记得在学习数据结构的时候一味的想用代码实现算法,重视的是写出来的代码有一个正确的输入,然后有一个正确的输出,那么就很满足了。从网上看了许多的
- InputStream转化为base64项目经常会用到将文件转化为base64进行传输怎么才能将文件流转化为base64呢,代码如下/**
- 一.Mybatis-Plus——sum聚合函数//总收益 Order order =new Orde
- 一、简介在上篇 ElasticSearch 文章中,我们详细的介绍了 ElasticSearch 的各种 api 使用。实际的项目开发过程中
- 支付宝的接入相对比较简单,看看支付宝官网的文档基本都能搞定,但是切记一点让你们的后台也要搞清楚支付宝的流程,重中之重。1、注意事项 开发前一
- 前言在Android中经常要使用Dialog来实现一些提示以及一些特殊的效果,而且样式也不一样,每次都得查一大堆资料,还不一定能解决。对话框
- 用Visual Studio等IDE写C#的Hello World非常简单,但脱离了IDE你能不能打印出Hello World呢?这不是说工
- 最近做MVC网站时刚好用到,用以提供一个完整的文件夹并压缩下载,正好做个笔记。拷贝文件夹的所有内容到另一个文件夹内:public stati
- 本文实例形式介绍了VB.NET中TextBox的智能感知实现方法,功能非常实用,具体如下:该实例主要实现:在TextBox中键入字符,可以智
- 在上一篇文章中,我们实现了统计每个产品和地区的销售额,如果现在需要统计每个产品和地区所占市场份额的百分比,那么使用堆叠条形图是不合适的,我们
- 1 前言Java是近 10 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”
- 一、this可以代表引用类的当前实例,包括继承而来的方法,通常可以省略。public class Person{ &n
- 事件缘由:一个主项目“图说美物”,另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,