java-小学期小小项目-通讯录管理系统

举报
迈热 发表于 2022/04/28 00:35:46 2022/04/28
【摘要】 java-小学期小小项目-通讯录管理系统

📋个人简介

📜个人简介 :
🎅 作者简介:大家好,我是迈热✌️
🌝 支持一下:点赞👍+收藏🌟+留言📪
📣 系列专栏:java基础🍁
✉️格言:先把键盘敲烂再说💻往死里敲!🌞

🌞学习前的小唠叨

🌈🌈哈喽 兄弟萌! 我们都在想成为大佬的路上加油着👍
既然我们已经踏入了学习这一长路, 那么就把它做的让
自己满意为止💜 加油兄弟萌!!!!😝

在这里插入图片描述

@[TOC](目录)

🍄 前言

🍊这一期我们来学习小学期常做的小项目通讯录管理系统🍊

🌱 通讯录管理系统的详细介绍

🌱这期我们所要介绍的通讯录管理系统很适合新手伙伴来练练手,内容主要包括增,删,改,查功能和java基础知识来实现通讯人员的管理。

💦1.1系统流程图

在这里插入图片描述

🌱画好了流程图咋们就思路清晰了,接下来我们一个一个去实现这些功能吧!!

💦1.2 编写代码思路

  • 🍋首先定义People类
  • 🍋系统主界面的编写过程
  • 🍋实现添加通讯人信息功能
  • 🍋实现修改通讯人信息功能
  • 🍋实现删除通讯人信息功能
  • 🍋实现查看通讯人信息功能

🌱 各功能的实现

🌱🌱要注意每一个细节哦!😁

💦1.1定义People类

  • ⭐️注:我们的People类是写在People中的,其他主界面,增,删,改,查等功能写在PeopleDemo中
    在这里插入图片描述

🐬1.1.1 定义类思路

  • 🍒 定义People类
    • 🌵 取名People
  • 🍒 成员变量:
    • 🌵 姓名:name
    • 🌵 电话号码:phone
    • 🌵 居住地:address
  • 🍒 构造方法:
    • 🌵 无参构造
    • 🌵 带三个参数的构造
  • 🍒 成员方法:
    • 🌵 每个成员变量对应给出get/set方法

🐬1.1.1 定义类的代码实现

public class People {
    private String name;
    private String phone;
    private String address;//成员变量

    public People() {
    }//无参构造

    public People(String name, String phone, String address) {
        this.name = name;
        this.phone = phone;
        this.address = address;
    }//带三个参数的构造

    // 每个成员变量对应给出 get / set方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

💦1.2 系统主界面的编写

在这里插入图片描述

🐬 1.2.1主界面编写思路

  • 🌵用输出语句完成主界面的编写
  • 🌵用Scanner实现键盘录入数据
  • 🌵用Switch语句来完成操作的选择
  • 🌵用循环完成再次回到主界面

🐬 1.2.2主界面代码实现

public class PeopleDemo {
    public static void main(String[] args) {
//    用循环完成再次回到主界面
        while (true)
        {
            ArrayList<People> array=new ArrayList<People>();
//    用输出语句完成主界面的编写
            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("请输入你的选择:");
//    用Scanner实现键盘录入数据
            Scanner sc=new Scanner(System.in);
            String line = sc.nextLine();
//    用Switch语句完成操作的选择
            switch (line){
                case "1":
                    System.out.println("添加通讯录人员");
                    //添加方法的调用
                    addPeople(array);
                    break;
                case "2":
                    System.out.println("修改通讯录人员");
                     //修改方法的调用
                    revisePeople(array);
                    break;
                case "3":
                    System.out.println("删除通讯录人员");
                     //删除方法的调用
                    deletePeople(array);
                    break;
                case "4":
                    System.out.println("查看所有通讯录人员");                    
                    //查看方法的调用
                    printPeople(array);
                    break;
                case "5":
                    System.exit(0);//退出系统
            }
        }

    }
}

🐬 1.2.2主界面代码运行

在这里插入图片描述

💦1.3 添加功能的编写

在这里插入图片描述

🐬 1.3.1添加功能的思路

  • 🌵用键盘录入选择添加通讯人
  • 🌵定义一个方法 用于添加通讯人
    • 🌵显示提示信息,提示要输入和中信息
    • 🌵键盘录入通讯人对象所需要的信息
    • 🌵创建通讯人对象,把键盘录入的数据赋值给通讯人对象的成员变量
    • 🌵将通讯人对象添加到集合中
    • 🌵 给出添加完成的提示
  • 🌵调用方法

⚠️⚠️注意:我们都知道,每一个都只能拥有一个电话号码,总不能一个号码两个共同使用吧。那么在我们用添加功能的时候,会遇到我们添加的通讯人对象的电话号码重复的情况? 那么下面就是解决在添加通讯人对象是电话号码重复的的问题

  • 🍒🍒思路
    • 🌵定义一个方法,对电话号码是否被使用进行判断
      • 🌵如果与集合中的某个电话号码相同,返回true,如果都不相同,返回false
    • 🌵在添加通讯人录入电话号码后调用方法
      • 🌵如果返回true,给出提示,号码重复 请重新输入号码
      • 🌵如果返回false,正常添加通讯人对象
        在这里插入图片描述

🐬 1.3.2 添加功能的代码实现

  • 🍒🍒这里我们需要一个array去存我们的数据,而且这个array在每一个功能都会用到,所以为了把array弄成统一,我在主界面的编写中创建了array 对象。

⚠️⚠️注意: 兄弟萌,我把每个功能的方法调用都放在主界面的编写代码中了哦⬆️⬆️

//添加通讯人信息
    public static void addPeople(ArrayList<People> array){
        Scanner sc=new Scanner(System.in);
        //通讯人号码重复的方法调用
        String phone ;
        while(true) {
            System.out.println("请输入通讯人电话号码:");
            phone = sc.nextLine();
            boolean flag = boolPeople(array, phone);
            if (flag) {
                System.out.println("该号码已被占用 请重新输入!");
            } else {
                break;
            }
        }
        //输入通讯人信息
        System.out.println("请输入通讯人姓名:");
        String name=sc.nextLine();
        System.out.println("请输入通讯人电话号码:");
        String Phone = sc.nextLine();
        System.out.println("请输入通讯人居住地:");
        String address=sc.nextLine();
        //创建通讯人对象
        People p=new People();
        //把信息赋给通讯人对象的成员变量
        p.setName(name);
        p.setPhone(Phone);
        p.setAddress(address);
        //把通讯人对象添加到集合里
        array.add(p);
        System.out.println("信息添加完毕");
    }

🐬 1.3.3 添加功能的运行

在这里插入图片描述

💦1.4 通讯人号码重复的的问题

⚠️⚠️注意:我们都知道,每一个都只能拥有一个电话号码,总不能一个号码两个共同使用吧。那么在我们用添加功能的时候,会遇到我们添加的通讯人对象的电话号码重复的情况? 那么下面就是解决在添加通讯人对象是电话号码重复的的问题

🐬 1.4.1解决号码重复的思路

  • 🍒🍒思路
    • 🌵定义一个方法,对电话号码是否被使用进行判断
      • 🌵如果与集合中的某个电话号码相同,返回true,如果都不相同,返回false
    • 🌵在添加通讯人录入电话号码后调用方法
      • 🌵如果返回true,给出提示,号码重复 请重新输入号码
      • 🌵如果返回false,正常添加通讯人对象
        在这里插入图片描述

🐬 1.4.2 号码重复的代码实现

  • 🍒🍒
//解决添加号码重复的问题
    public static boolean boolPeople(ArrayList<People> array,String phone){
        boolean flag=false;

        for(int i=0;i< array.size();i++){
            People p = array.get(i);
            if(p.getPhone().equals(phone)){
                flag=true;
            }
        }

        return flag;
    }

🐬 1.4.3 号码重复的代码运行

  • 🍒🍒当输入的号码被占用时:
    在这里插入图片描述
  • 🍒🍒当输入的号码没被占用时:
    在这里插入图片描述

💦1.5 查看功能的编写

在这里插入图片描述

🐬 1.5.1查看功能的思路

  • 🌵用键盘录入选择查看所有通讯人信息
  • 🌵定义一个方法 用于查看通讯人信息
    • 🌵显示表头信息
    • 🌵将集合中数据取出,按照对应格式显示通讯人信息
  • 🌵调用方法

🐬 1.5.2 查看功能的代码实现

  • 🍒🍒
//查看通讯人信息
    public static void printPeople(ArrayList<People> array){
        if(array.size()==0){
            System.out.println("无通讯人信息,请输入信息再查看!");
            return;
        }
        System.out.println("姓名\t\t电话号码\t\t居住地");
        for(int i=0;i<array.size();i++){
            People p = array.get(i);
            System.out.println(p.getName()+"\t\t"+p.getPhone()+"\t\t"+p.getAddress());
        }
    }

🐬 1.5.3 查看功能的运行

  • 🍒🍒在有数据存在的情况下:
    在这里插入图片描述
  • 🍒🍒当我们通讯录为空时:
    在这里插入图片描述

💦1.6 删除功能的编写

在这里插入图片描述

🐬 1.6.1删除功能的思路

  • 🌵用键盘录入选择删除通讯人信息
  • 🌵定义一个方法 用于删除通讯人信息
    • 🌵显示提示信息
    • 🌵键盘输入要删除的通讯人手机号
    • 🌵遍历集合将对应通讯人对象从集合中删除
    • 🌵给出删除成功提示
  • 🌵调用方法

⚠️⚠️注意:在我们在用删除功能的时候,会遇到我们所想删除的对象不存在的情况? 那么下面就是解决删除所想删除的对象不存在的问题

  • 🍒🍒思路:
    • 🌵在删除通讯人之前,我们对电话号码是否存在进行判断
    • 🌵如果不存在,显示提示信息
    • 🌵如果存在,执行删除操作
      在这里插入图片描述

🐬 1.6.2 删除功能的代码实现

  • 🍒🍒
//删除通讯人信息
    public static void deletePeople(ArrayList<People> array){
    //用键盘录入选择删除通讯人信息
        Scanner sc=new Scanner(System.in);
    //显示提示信息
        System.out.println("请输入你要删除的通讯人号码:");
        String phone = sc.nextLine();
        
    //在删除通讯人之前,我们对电话号码是否存在进行判断
        int index=-1;
    //遍历集合将对应通讯人对象从集合中删除
        for(int i=0;i<array.size();i++){
            People p = array.get(i);
            if(p.getPhone().equals(phone)){
                index=i;
                break;
            }
        }

        if(index==-1){
            System.out.println("该号码不存在 请重新输入!");
        }else{
            array.remove(index);//remove是删除此通讯人的信息
            System.out.println("删除通讯人成功");
        }


    }

🐬 1.6.3 删除功能的运行

  • 🍒🍒想删除的通讯人不存在的情况下:
    在这里插入图片描述

  • 🍒🍒想删除的通讯人存在的情况下:
    在这里插入图片描述

💦1.7 修改功能的编写

在这里插入图片描述

🐬 1.7.1修改功能的思路

  • 🌵用键盘录入选择修改通讯人信息
  • 🌵定义一个方法 用于修改通讯人信息
    • 🌵显示提示信息
    • 🌵键盘输入要修改的通讯人手机号
    • 🌵键盘输入要修改的通讯人信息
    • 🌵遍历集合将修改对应通讯人信息
    • 🌵给出修改成功提示
  • 🌵调用方法

⚠️⚠️注意:在我们在用修改功能的时候,会遇到我们所想修改的对象不存在的情况?那么下面就是解决修改所想修改的对象不存在的问题

  • 🍒🍒思路
    • 🌵在修改通讯人之前,我们对电话号码是否存在进行判断
    • 🌵如果不存在,显示提示信息
    • 🌵如果存在,执行修改操作
      在这里插入图片描述

🐬 1.7.2 修改功能的代码实现

  • 🍒🍒
//修改学生信息
    public static void revisePeople(ArrayList<People> array){
        Scanner sc=new Scanner(System.in);

        System.out.println("请输入你要修改的通讯人电话号码:");
        String phone = sc.nextLine();
        
        int index=-1;

        for(int i=0;i<array.size();i++){
            People people = array.get(i);
            if(people.getPhone().equals(phone)){
                index=i;
                break;
            }
        }

        if(index==-1){
            System.out.println("该号码不存在 请重新输入!");
        }
        else{
            System.out.println("请输入新姓名:");
            String name=sc.nextLine();
            System.out.println("请输入新居住地:");
            String address=sc.nextLine();
            //创建通讯人对象
            People p=new People();
            p.setPhone(phone);
            p.setName(name);
            p.setAddress(address);
            array.set(index,p);
            System.out.println("修改完成!");
        }

    }

🐬 1.7.3 修改功能的运行

  • 🍒🍒想修改的通讯人不存在的情况下:
    在这里插入图片描述

  • 🍒🍒想修改的通讯人存在的情况下:
    9

💦1.8 完整代码展示

🌱🌱到这里我们上述的代码已经讲解的差不多了,下面就是完整代码的展示咯

  • 🍒🍒下面两代码要放在一个Package中的哦
    在这里插入图片描述

🐋 1.8.1 People类的编写

public class People {
    private String name;
    private String phone;
    private String address;

    public People() {
    }

    public People(String name, String phone, String address) {
        this.name = name;
        this.phone = phone;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

🐋 1.8.1 PeopleDemo(测试类)的编写

import java.util.Scanner;
import java.util.ArrayList;

public class PeopleDemo {
    public static void main(String[] args) {
        //创建集合
        ArrayList<People> array=new ArrayList<People>();
        while (true)
        {
            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("请输入你的选择:");

            Scanner sc=new Scanner(System.in);
            String line = sc.nextLine();

            switch (line){
                case "1":
                    System.out.println("添加通讯录人员");
                    addPeople(array);
                    break;
                case "2":
                    System.out.println("修改通讯录人员");
                    revisePeople(array);
                    break;
                case "3":
                    System.out.println("删除通讯录人员");
                    deletePeople(array);
                    break;
                case "4":
                    System.out.println("查看所有通讯录人员");
                    printPeople(array);
                    break;
                case "5":
                    System.exit(0);//退出系统
            }
        }
    }
    //添加通讯人信息
    public static void addPeople(ArrayList<People> array){
        Scanner sc=new Scanner(System.in);
        String phone ;
        while(true) {
            System.out.println("请输入通讯人电话号码:");
            phone = sc.nextLine();
            boolean flag = boolPeople(array, phone);
            if (flag) {
                System.out.println("该号码已被占用 请重新输入!");
            } else {
                break;
            }
        }
        //输入通讯人信息
        System.out.println("请输入通讯人姓名:");
        String name=sc.nextLine();
        System.out.println("请输入通讯人居住地:");
        String address=sc.nextLine();
        //创建通讯人对象
        People p=new People();
        //把信息赋给通讯人对象的成员变量
        p.setName(name);
        p.setPhone(phone);
        p.setAddress(address);
        //把通讯人对象添加到集合里
        array.add(p);
        System.out.println("信息添加完毕");
    }
    //解决添加号码重复的问题
    public static boolean boolPeople(ArrayList<People> array,String phone){
        boolean flag=false;

        for(int i=0;i< array.size();i++){
            People p = array.get(i);
            if(p.getPhone().equals(phone)){
                flag=true;
            }
        }
        return flag;
    }
    //查看通讯人信息
    public static void printPeople(ArrayList<People> array){
        if(array.size()==0){
            System.out.println("无通讯人信息,请输入信息再查看!");
            return;
        }
        System.out.println("姓名\t\t电话号码\t\t居住地");
        for(int i=0;i<array.size();i++){
            People p = array.get(i);
            System.out.println(p.getName()+"\t\t"+p.getPhone()+"\t\t"+p.getAddress());
        }
    }
    //删除通讯人信息
    public static void deletePeople(ArrayList<People> array){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要删除的通讯人号码:");
        String phone = sc.nextLine();

        int index=-1;
        for(int i=0;i<array.size();i++){
            People p = array.get(i);
            if(p.getPhone().equals(phone)){
                index=i;
                break;
            }
        }
        if(index==-1){
            System.out.println("该号码不存在 请重新输入!");
        }else{
            array.remove(index);//remove是删除此通讯人的信息
            System.out.println("删除通讯人成功");
        }
    }
    //修改学生信息
    public static void revisePeople(ArrayList<People> array){
        Scanner sc=new Scanner(System.in);

        System.out.println("请输入你要修改的通讯人电话号码:");
        String phone = sc.nextLine();

        int index=-1;
        for(int i=0;i<array.size();i++){
            People people = array.get(i);
            if(people.getPhone().equals(phone)){
                index=i;
                break;
            }
        }
        if(index==-1){
            System.out.println("该号码不存在 请重新输入!");
        }
        else{
            System.out.println("请输入新姓名:");
            String name=sc.nextLine();
            System.out.println("请输入新居住地:");
            String address=sc.nextLine();
            //创建通讯人对象
            People p=new People();
            p.setPhone(phone);
            p.setName(name);
            p.setAddress(address);
            array.set(index,p);
            System.out.println("修改完成!");
        }
    }
}

💻 结语

🍻🍻到这我们的任务就结束啦!!!🌝
感谢大家的阅读 如果在内容方面有什么问题的话可以
在评论区或私信告诉我吧
博主小要求🙏🙏 如果这段对大家有用的话 就给博主
一个免费的点赞👍+评论✉️ +收藏💻吧!!!
感谢大家啦💙💙💙

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。