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;
                  }

              }
              }
          }

      }

最终效果总览图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实战之用Swing实现通讯录管理系统

    一.系统介绍  1.系统功能 登录系统 查询信息 新增信息 修改信息 删除信息 2.环境配置 JDK版本:1.8 Mysql:8.0.13 3.数据库 /* Navicat Premium Data Transfer Source Server : MySQL Source Server Type : MySQL Source Server Version : 80013 Source Host : localhost:3306 Source Schema : swing_address Tar

  • java web个人通讯录系统设计

    现在开始上截图: 下面粘贴代码: 首先是目录结构: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-/

  • java使用集合实现通讯录功能

    本文实例为大家分享了java使用集合实现通讯录的具体代码,供大家参考,具体内容如下 代码有些繁琐,只适合初学者. 项目1 java通讯录 方法(声明方法的类) 代码块 代码块语法遵循标准markdown代码,例如: package com.lanou.homwork; import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; import java.util.Scanner; impor

  • Java实现简单通讯录管理系统

    本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 题目: 1.完成一个通讯录,需求: (1)添加联系人(联系人:编号,姓名,手机号,QQ,邮箱地址)添加时需要检查手机号和邮箱地址格式是否正确,若不正确,不允许添加 (2)联系人查询(输入姓名或电话查询) (3)显示联系人列表 (4)根据编号删除指定编号的联系人 代码分析: 之前写过类似的管理系统,不过是使用数组进行数据存储,这次的通讯录管理系统通过动态数组 ArrayList进行数据存储.其中代码实现的原理和之前

  • java微信企业号开发之通讯录

    上篇文章中介绍了聊天功能,这里介绍通讯录是如何实现的.首先要加载公司的所有部门,树形结构,然后点击进入部门的人员列表,点击人员能查看详细信息. 一.界面 公司部门的树形结构: 部门成员列表: 个人详细信息: 二.代码实现 1.controller /** * 加载部门列表 */ @RequestMapping("/addressListDepartmentjsp.do") public void addressListDepartment(HttpServletRequest requ

  • JavaWeb JDBC + MySql 通讯录实现简单的增删改查功能案例详解

    本文实例讲述了JavaWeb JDBC + MySql 通讯录实现简单的增删改查功能.分享给大家供大家参考,具体如下: 开发工具:Eclipse + Navicat 项目源码:Github:https://github.com/Sunjinhang/JavaWeb 一.新建项目 在Eclipse中新建一个Web项目,至于如何新建Web项目以及如何添加Tomcat服务器的就不赘述了,项目的目录如下 最终实现的效果如下所示: 点击新增可以进行联系人的新增,点击修改/删除可以进行 联系人的修改和删除

  • java实现通讯录管理系统

    本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 完成项目的流程: 1.根据需求,确定大体方向 2.功能模块分析 3.界面实现 4.功能模块设计 5.coding 6.代码测试 下面是源代码: import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import j

  • 简单实现Java通讯录系统

    本文实例为大家分享了Java通讯录系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; class Person { String name; String number; } class connect { Person a[]; int number; public connect() { a=new Person[100]; number=0; } public String add(String name,String number) { if(n

  • java实现简单控制台通讯录

    通过主菜单对各级子菜单进行控制,并实现添加记录,查找记录,删除记录,修改记录,排序记录,以及退出系统功能的实现.一共六部分的功能模块. 上面的图就是每个模块具有的功能,而且还用到了正则表达式判断输入的是否符合规则,这个系统体现了MVC的设计模式,分工调用很清晰. 主要包含了下面几个类: APP类:程序的主函数类,程序开始的入口 Menu类:里面都是简单页面显示的效果,没有功能的实现. TelNoteRegex类:正则表达式,判断是否输入合格,都在这个方法中. Operate类:业务逻辑类,全部功

  • Java实现XML文件学生通讯录

    java实现学生通讯录,使用XML文件作为数据存储,实现学生编号,姓名,年龄,住址,专业,生日等信息的添加,删除,修改,查找,备份,恢复,专业分类查找等功能. 项目需要导入dom4j.jar包. /* 添加学生记录 */ import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JPa

随机推荐