栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java项目二之客户信息管理软件(面向对象)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java项目二之客户信息管理软件(面向对象)

目录

一 .概述

二.需求说明

三.设计结构

 四.步骤

1.Customer为实体对象,用来封装客户信息

(1)实用小技巧

2.CustomerList

 3.CustomerView为主模块

 四.获取完整代码


一 .概述

该项目,是对面向对象的熟悉运用,主要涉及知识点有:

1·类结构的使用:属性、方法及构造器

2·对象的创建与使用 (String的各种部分方法的运用)

3·类的封装性 声明和使用数组 数组的插入、删除和替换

4·关键字的使用:this

二.需求说明

模拟实现基于文本界面的《客户信息管理软件》。 该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。 项目采用分级菜单方式。主菜单如下:              

-----------------客户信息管理软件-----------------                                      

1 添 加 客 户                                      

2 修 改 客 户                                    

 3 删 除 客 户                                    

 4 客 户 列 表                                      

5 退           出                                    

 请选择(1-5):_

每个客户的信息被保存在Customer对象中。 以一个Customer类型的数组来记录当前所有的客户。 每次“添加客户”(菜单1)后,客户(Customer)对象被添加到数组中。 每次“修改客户”(菜单2)后,修改后的客户(Customer)对象替换数组中原对象。 每次“删除客户”(菜单3)后,客户(Customer)对象被从数组中清除。 执行“客户列表 ”(菜单4)时,将列出数组中所有客户的信息。

三.设计结构

该软件由以下三个模块组成:

CustomerView为主模块,负责菜单的显示和处理用户操作

CustomerList为Customer对象的管理模块,内部用数组管理一组Customer对象,并提供相应的添加、修改、删除和遍历方法,供CustomerView调用

Customer为实体对象,用来封装客户信息

 四.步骤

1.Customer为实体对象,用来封装客户信息

该类是用来封装客户信息(性别name,性别sex,年龄age,电话号码phoneNumber,邮箱mail)

public class Customer {
    private String name;
    private String sex;
    private int age;
    private String phoneNumber;
    private String mail;

    public Customer() {
    }

    public Customer(String name, String sex, int age, String phoneNumber, String mail) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.phoneNumber = phoneNumber;
        this.mail = mail;
    }

    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 int getAge() {
        return age;
    }

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

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }
}

(1)实用小技巧

快捷创建类的构造方法(空方法和带参数)和private关键字所提供的get()/set()方法。

构造方法(空方法和带参数)

单击鼠标右键点击Generrate,其中包含构造方法和get()/set()方法的快捷创建

Constructor:创建带参数的构造方法,按下shift键,鼠标点击name和mail就可以把所有属性包含并创建有参构造方法,同理get()/set()也是一样的创建。

 

2.CustomerList

 该类中,则是各个功能的方法实现,供CustomereView主模块的调用

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

public class CustomerList {
    //添加客户方法
    public static void addUser(ArrayList array){
        System.out.println("---------------------添加客户---------------------");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入客户姓名:");
        String name = CMUtility.readString(4).toString();
        System.out.println("请输入客户性别:");
        String sex = CMUtility.readString(4);
        System.out.println("请输入客户年龄:" );
        int  age = CMUtility.readInt(4);
        System.out.println("请输入客户电话号码:");
        String phoneNumber = CMUtility.readString(15);
        System.out.println("请输入客户邮箱:");
        String mail = CMUtility.readString(30);
        Customer cus = new Customer(name,sex,age,phoneNumber,mail);
        array.add(cus);
        System.out.println("---------------------添加完成---------------------");
    }
    //修改客户方法
    public static void changeUser(ArrayList array){
        System.out.println("---------------------修改客户---------------------");
        Scanner sc = new Scanner(System.in);
        boolean flag=true;

        while(flag) {
            System.out.print("请选择待修改客户编号(-1退出):");
            int index = CMUtility.readInt();
            if (array.size() == 0||index>array.size()) {
                System.out.println("没有该客户信息!");
                //flag=false;
                return;
            }
            Customer cus = array.get(index - 1);//原客户对象在数组集合中的下标。
            if ((index-1)!= -1) {
                System.out.println("姓名(" + cus.getName() + "):");
                String name =CMUtility.readString(4, cus.getName());
                name=Kong(name);
                System.out.println("性别("+ cus.getSex()+"):");
                String sex =CMUtility.readString(4,cus.getSex());
                sex=Kong(sex);
                System.out.println("年龄("+ cus.getAge()+"):");
                int age =CMUtility.readInt(cus.getAge());
                age=Integer.parseInt(Kong(age+""));
                System.out.println("电话("+ cus.getPhoneNumber()+"):");
                String phoneNumber =CMUtility.readString(15, cus.getPhoneNumber());
                phoneNumber=Kong(phoneNumber);
                System.out.println("邮箱("+ cus.getMail()+"):");
                String mail = CMUtility.readString(15, cus.getMail());
                mail=Kong(mail);
                Customer cus1 = new Customer();
                cus1.setName(name);
                cus1.setSex(sex);
                cus1.setAge(age);
                cus1.setPhoneNumber(phoneNumber);
                cus1.setMail(mail);
                for (int i = 0; i  array){
        System.out.println("---------------------删除客户---------------------");

        Scanner sc = new Scanner(System.in);
        boolean flag=true;
        System.out.println("请先查看客户列表,确认待删除客户编号!");

        while (flag){
            System.out.println("请选择待删除客户编号(-1退出):");
            int index = CMUtility.readInt();
            for (int i = 0; i  array){
        System.out.println("---------------------------客户列表---------------------------");
        System.out.println("编号t姓名tt性别t年龄t电话ttt邮箱n");
        for (int i = 0; i 

 其中有一个Kong()方法是优化软件功能,除bug写的,为了解决修改客户信息时,输入空格会将原信息所替换(因为空格也属于字符,所以会替换)

public static String Kong(String s){
        boolean Flag=true;
        while (Flag){
            if (s.trim().isEmpty()) {
                System.out.println("请重新输入");
                s=CMUtility.readKeyBoard(20,false);
            }else {
                Flag=false;
            }
        }
        return s;
    }

主要讲一下修改客户的功能,通过调用Kong()方法,若是输入为空格就会使方法中的while无限循环,重新输入修改信息,一直输入正确才会退出Kong()方法,然后将值赋给所对应的属性。

public static void changeUser(ArrayList array){
        System.out.println("---------------------修改客户---------------------");
        Scanner sc = new Scanner(System.in);
        boolean flag=true;

        while(flag) {
            System.out.print("请选择待修改客户编号(-1退出):");
            int index = CMUtility.readInt();
            if (array.size() == 0||index>array.size()) {
                System.out.println("没有该客户信息!");
                //flag=false;
                return;
            }
            Customer cus = array.get(index - 1);//原客户对象在数组集合中的下标。
            if ((index-1)!= -1) {
                System.out.println("姓名(" + cus.getName() + "):");
                String name =CMUtility.readString(4, cus.getName());
                name=Kong(name);
                System.out.println("性别("+ cus.getSex()+"):");
                String sex =CMUtility.readString(4,cus.getSex());
                sex=Kong(sex);
                System.out.println("年龄("+ cus.getAge()+"):");
                int age =CMUtility.readInt(cus.getAge());
                age=Integer.parseInt(Kong(age+""));
//这里Integet.parseInt()和age+"",一个是转换成整型,另一个是转换成字符串类型。
                System.out.println("电话("+ cus.getPhoneNumber()+"):");
                String phoneNumber =CMUtility.readString(15, cus.getPhoneNumber());
                phoneNumber=Kong(phoneNumber);
                System.out.println("邮箱("+ cus.getMail()+"):");
                String mail = CMUtility.readString(15, cus.getMail());
                mail=Kong(mail);
                Customer cus1 = new Customer();
                cus1.setName(name);
                cus1.setSex(sex);
                cus1.setAge(age);
                cus1.setPhoneNumber(phoneNumber);
                cus1.setMail(mail);
                for (int i = 0; i 

 3.CustomerView为主模块

 该类负责菜单的显示和处理用户操作,调用各种方法以及创建ArrayList集合,其中泛型则为Customer类的对象。用到了while循环以及switch语句。

 ArrayList的构造方法为:

public ArrayList(),其中E则是为泛型(特殊的数据类型)

import java.util.ArrayList;
import java.util.Scanner;
public class CustomerView {
    public static void main(String[] args) {
        ArrayList array = new ArrayList<>();
        boolean loopFlag = true;
        while (loopFlag){
            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):");
            char c = CMUtility.readMenuSelection();
            switch (c){
                case '1':CustomerList.addUser(array);
                    break;
                case '2':
                    CustomerList.changeUser(array);
                    break;
                case '3':
                    CustomerList.deleteUser(array);
                    break;
                case '4':
                    CustomerList.findUser(array);
                    break;
                case '5':
                    System.out.print("确认是否退出(Y/N):");
                    char yn = CMUtility.readConfirmSelection();
                    if (yn == 'Y')
                        loopFlag = false;
                    break;

            }
        }
    }
}

 四.获取完整代码

百度网盘

链接:https://pan.baidu.com/s/1PTJYAuuxih_1m2d1JRQqpQ 
提取码:1234

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号