详解Java如何使用集合来实现一个客户信息管理系统

 更新时间:2021年11月11日 11:32:36   作者:代码小k  
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java 集合实现一个客户信息管理系统,大家可以在过程中查缺补漏,提升水平

1 客户类

public class Customers {
    private String cid;
    private String name;
    private String sex;
    private String age;
    private String call;
    private String email;

    public Customers() {
    }

    public Customers(String cid,String name, String sex, String age, String call, String email) {
        this.cid=cid;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.call = call;
        this.email = email;
    }

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getCall() {
        return call;
    }

    public void setCall(String call) {
        this.call = call;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email){
        this.email = email;
    }

    public String getCid() {
        return cid;
    }

    public void setCid(String cid) {
        this.cid = cid;
    }
}




2 主界面

public class Customermanager {
    public static void main(String[] args)   {
        ArrayList<Customers> array = new ArrayList<Customers>();

        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( "请选择1-5" );

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

            switch (line) {
                case "1":
                    //System.out.println( "1 添加客户" );
                    addCustomer( array );
                    break;
                case "2":
                    //System.out.println( "2 修改客户" );
                    modifyCustomer( array );
                    break;
                case "3":
                    //System.out.println( "3 删除客户" );
                    deleteCustomer( array );
                    break;
                case "4":
                    //System.out.println( "4 查看所有客户" );
                    findCustomer( array );
                    break;
                case "5":
                    System.out.print("确认是否退出(Y/N):");
                    String y = sc.nextLine();
                    if (y.equals( "Y" ))
                    {
                        System.exit( 0 );
                    }


            }
        }

    }

3 方法

(1)添加客户

public static void addCustomer(ArrayList<Customers> array ){
        Scanner sc = new Scanner( System.in );
        String cid;

        while (true){
            System.out.println("请输入客户编号");
            cid = sc.nextLine();
            boolean flag =isUsed( array,cid );
            if (flag){
                System.out.println("编号被占用,请重新输入");

            }else {
                break;
            }
        }




        System.out.println("请输入客户姓名");
        String name = sc.nextLine();
        System.out.println("请输入客户性别");
        String sex = sc.nextLine();
        System.out.println("请输入客户年龄");
        String age = sc.nextLine();
        System.out.println("请输入客户电话");
        String call = sc.nextLine();
        System.out.println("请输入客户邮箱");
        String email = sc.nextLine();

        Customers c = new Customers();
        c.setCid( cid );
        c.setName( name );
        c.setSex( sex );
        c.setAge( age );
        c.setCall( call );
        c.setEmail( email );
        array.add( c);

        System.out.println("添加成功");

    }

(2)判断编号是否被占用

 public static boolean isUsed(ArrayList<Customers>array ,String cid){
        boolean flag = false;
        for (int i = 0; i <array.size() ; i++) {
            Customers s = array.get( i );
            if (s.getCid().equals( cid )){
                flag = true;
                break;
            }

        }
        return flag;
    }

(3)修改客户信息

public static void modifyCustomer(ArrayList<Customers> array ){
        Scanner sc= new Scanner( System.in );
        System.out.println("请输入要修改的客户编号");
        String cid = sc.nextLine();
        System.out.println("请输入客户姓名");
        String name = sc.nextLine();
        System.out.println("请输入客户性别");
        String sex = sc.nextLine();
        System.out.println("请输入客户年龄");
        String age = sc.nextLine();
        System.out.println("请输入客户电话");
        String call = sc.nextLine();
        System.out.println("请输入客户邮箱");
        String adress = sc.nextLine();
        String email = sc.nextLine();
        Customers c = new Customers();
        c.setCid( cid );
        c.setName( name );
        c.setSex( sex );
        c.setAge( age );
        c.setCall( call );
        c.setEmail( email );

        for (int i = 0; i <array.size() ; i++) {
            Customers customers = array.get( i );
            if (customers.getCid().equals( cid )){
                array.set( i,c );
                break;
            }

        }
        System.out.println("修改客户信息成功");

    }

(4)删除客户

 public static void deleteCustomer(ArrayList<Customers> array ){
        Scanner sc = new Scanner( System.in );
        System.out.println("请输入要删除的客户编号(-1退出)");
        String cid = sc.nextLine();
        if (cid.equals( "-1" )){
            return;
        }
            int index = -1;
            for (int i = 0; i < array.size(); i++) {
                Customers s = array.get( i );
                if (s.getCid().equals( cid )) {
                    index = i;
                    break;
                }
            }
            if (index == -1) {
                System.out.println( "该信息不存在,请重新输入" );
            } else {
                System.out.println("确认是否删除(Y/N):");
                String s = sc.nextLine();
                if (s.equals( "Y" )|s.equals( "y" )){
                    array.remove( index );
                    System.out.println( "删除成功" );
                }
        }
    }

(5)客户列表

 public static void findCustomer(ArrayList<Customers> array ){
        if (array.size()==0){
            System.out.println("无信息,请添加信息在再查询");
            return;//为了程序不再往下执行
        }
        System.out.println("编号\t姓名\t性别\t年龄\t\t电话\t\t邮箱");
        for (int i = 0; i <array.size() ; i++) {
            Customers s = array.get( i );

            System.out.println(s.getCid()+"\t\t"+s.getName()+"\t"+s.getSex()+"\t"+s.getAge()+"\t\t"+s.getCall()+"\t\t"+s.getEmail());

        }
    }

(6)退出

 System.out.print("确认是否退出(Y/N):");
                    String y = sc.nextLine();
                    if (y.equals( "Y" ))
                    {
                        System.exit( 0 );
                    }

4 问题总结

(1)字符串比较问题

在遇到输入“-1”退出时碰到了问题,当时想着怎么比较String类型和int类型的数据,后面知道直接用equals方法直接比较String类型数据就行。

(2)修改客户不成功

这是错误代码片

for (int i = 0; i <array.size() ; i++) {
            Customers customers = array.get( i );
            if (customers.getCid().equals( i )){
                array.set( i,customers );
                break;
            }

错误如下:
首先 if (customers.getCid().equals( ))这一步比较的是遍历后的集合与输入的cid是否相同,所以应该是与cid比较而不是i;其次, array.set( );这一步是修改指定索引处的元素,返回被修改的元素;这里是用上面存储新的客户信息的c来修改索引处元素,所以修改后的代码为

for (int i = 0; i <array.size() ; i++) {
            Customers customers = array.get( i );
            if (customers.getCid().equals( cid )){
                array.set( i,c );
                break;
            }

(3)get和set方法使用时的疑惑 (为什么这里用set那里用get?)

本题中录入数据时候多用set方法,输出数据时用get方法。那么具体的应用场景在什么地方?
set是写入数据,get是得到数据
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

成员变量private,提供对应的getXxx()/setXxx()方法
总结:明确试用场景需求,封装之后,写入数据用(输入)set方法,得到数据(输出)用get方法。

到此这篇关于详解Java如何使用集合来实现一个客户信息管理系统的文章就介绍到这了,更多相关Java 客户信息管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Jemalloc优化MySQL和Nginx

    Jemalloc优化MySQL和Nginx

    这篇文章主要介绍了Jemalloc优化MySQL和Nginx的相关资料,需要的朋友可以参考下
    2016-01-01
  • 详解Mybatis多参数传递入参四种处理方式

    详解Mybatis多参数传递入参四种处理方式

    这篇文章主要介绍了详解Mybatis多参数传递入参四种处理方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 专属于程序员的浪漫-Java输出动态闪图iloveyou

    专属于程序员的浪漫-Java输出动态闪图iloveyou

    这篇文章主要介绍了专属于程序员的浪漫-Java输出动态闪图iloveyou,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • springMVC配置环境实现文件上传和下载

    springMVC配置环境实现文件上传和下载

    这篇文章主要为大家详细介绍了springMVC配置环境实现文件上传和下载的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • java中的匿名内部类总结

    java中的匿名内部类总结

    这篇文章主要介绍了 java中的匿名内部类总结的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • ArrayList和HashMap如何自己实现实例详解

    ArrayList和HashMap如何自己实现实例详解

    这篇文章主要介绍了 ArrayList和HashMap如何自己实现的相关资料,需要的朋友可以参考下
    2016-12-12
  • springboot+vue项目从第一行代码到上线部署全流程

    springboot+vue项目从第一行代码到上线部署全流程

    本文详细介绍了如何从零开始搭建一个基于Spring Boot和Vue.js的前后端分离项目,并涵盖项目需求分析、技术选型、项目结构设计、前后端交互、部署上线等全过程,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • Springboot集成knife4j实现风格化API文档

    Springboot集成knife4j实现风格化API文档

    这篇文章主要介绍了Springboot如何集成knife4j实现风格化API文档,帮助大家更好的使用springboot框架,感兴趣的朋友可以了解下
    2020-12-12
  • SpringBoot 如何实现异步编程

    SpringBoot 如何实现异步编程

    在SpringBoot的日常开发中,一般都是同步调用的,但实际中有很多场景非常适合使用异步来处理,本文就详细的介绍一下SpringBoot 如何实现异步编程 ,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12
  • Java通过百度地图API获取定位(普通IP定位)的方法教程

    Java通过百度地图API获取定位(普通IP定位)的方法教程

    这篇文章主要介绍了Java通过百度地图API获取定位的方法教程,首先说明了实现这个功能的需求和初衷,然后详细描述了利用百度地图API实现这个功能的步骤,包括在百度地图开放平台的准备工作、学习官网API文档、修改API的AK配置、Java代码获取定位等,需要的朋友可以参考下
    2024-11-11

最新评论