客户信息管理软件

目标:

 模拟实现一个基于文本界面的《客户信息管理软件》  进一步掌握编程技巧和调试技巧,熟悉面向对象编程  主要涉及以下知识点: 类结构的使用:属性、方法及构造器 对象的创建与使用 类的封装性 声明和使用数组 数组的插入、删除和替换 关键字的使用:this

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

 

 

 具体实现:

CustomerList类:
public class CustomerList {
        private Customer[] customers;
        private int total; //记录存储的客户的个数
    public CustomerList(int totalCustomer){ //构造器,用来初始化customers数组
        customers = new Customer[totalCustomer];
        total = 0;
    }
}
Customer类:
public class Customer {
    private String name; //姓名
    private char gender; //性别
    private int age;       //年龄
    private String phone;//电话
    private String email;//电子邮件
    public Customer() {
    }

    public Customer(String name, char gender, int age, String phone, String email) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.phone = phone;
        this.email = email;
    }

    public String getName() {
        return name;
    }

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

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

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

    public String getPhone() {
        return phone;
    }

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

    public String getEmail() {
        return email;
    }

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

    public void method(){
        name = "方钒";
        System.out.println(name);
    }
}

主界面:

public static void main(String[] args) {
    ArrayList<Customer> array = new ArrayList<>();
    CMUtility u = new CMUtility();
    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();
        System.out.println("             请选择(1-5):");
        char ch = u.readMenuSelection();
        switch (ch){
            case '1':
                addNewCustomer(array);
                break;
            case '2':
                modifyCustomer(array);
                break;
            case '3':
                deleteCustomer(array);
                break;
            case '4':
                listAllCustomers(array);
                break;
            case '5':
                System.out.println("确定要退出吗(Y/N)");
                char c = u.readConfirmSelection();
                if(c == 'Y'){
                    System.out.println("退出成功");
                    System.out.println("谢谢使用");
                    System.exit(0);
                }
        }
    }
}

添加客户实现:

private static void addNewCustomer(ArrayList<Customer> array){ //添加客户
        CMUtility u = new CMUtility();
        Scanner sc = new Scanner(System.in);
        System.out.println("需要添加几条客户信息:");
        int num;
        while (true){
            num = u.readInt();//键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
            if( num>0 ){
                break;
            }else {
                System.out.println("您输入的信息有误,请重新输入:");
            }

        }
        for (int i =0 ; i < num ; i++ ){
            System.out.println("请输入第"+(i+1)+"条信息");
            System.out.println("---------------------添加客户---------------------");
            System.out.println("姓名:");
            String name = u.readString();// 用于收入和支出说明的输入。该方法从键盘读取一个不超过8位长度的字符串,并将其作为方法的返回值。
            System.out.println("性别:");
            char gender = u.readChar();//从键盘读取一个字符,并将其作为方法的返回值。
            System.out.println("年龄:");
//            int age = sc.nextInt();
            int age =u.readInt();//键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
            System.out.println("电话:");
            String phone = u.readString2();// 该方法从键盘读取一个不超过15位长度的字符串
            boolean b =repeat(array,phone);
            if(b){
                System.out.println("该条信息已经存在,请勿重复输入");
                continue;
            }
            System.out.println("邮箱:");
            String email = u.readString3();// 不超过30
            Customer c = new Customer(name,gender,age,phone,email);
            array.add(c);
        }
        System.out.println("添加成功");
    }
修改客户信息实现:
private static void modifyCustomer(ArrayList<Customer> array){ // 修改客户信息
    CMUtility u = new CMUtility();
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入需要修改客户的编号:");
    int num;
    while (true){
        num = u.readInt();//键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
        if( num > 0 && num <=array.size()){
            break;
        }else {
            System.out.println("您输入的信息有误,请重新输入:");
        }
    }
    System.out.println("新姓名为;");
    String name = u.readString();// 用于收入和支出说明的输入。该方法从键盘读取一个不超过8位长度的字符串
    System.out.println("新性别为;");
    char gender =u.readChar();//从键盘读取一个字符,并将其作为方法的返回值。
    System.out.println("新年龄为;");
    int age = u.readInt();//键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
    System.out.println("新电话为;");
    String phone = u.readString2();// 该方法从键盘读取一个不超过15位长度的字符串
    System.out.println("新邮箱为;");
    String email = u.readString3();// 不超过30
    Customer c = new Customer();
    c.setName(name);
    c.setGender(gender);
    c.setAge(age);
    c.setPhone(phone);
    c.setEmail(email);
    array.set(num-1,c);
    System.out.println("修改成功");
}
删除客户信息实现:
private static void deleteCustomer(ArrayList<Customer> array){ //删除客户
    CMUtility u = new CMUtility();
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入需要删除第几条信息:");
    int num;
    while (true){
        num = u.readInt();//键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
        if( num >0 && num <= array.size()){
            break;
        }else {
            System.out.println("您输入的信息有误,请重新输入:");
        }

    }
    System.out.println("确定要删除吗(Y/N)");
    char ch =u.readConfirmSelection();
    if(ch =='Y'){
        array.remove(num-1);
        System.out.println("删除成功");
    }else{
        return;
    }
}

查询信息实现:

private static void listAllCustomers(ArrayList<Customer> array){//查询客户列表
    if(array.size() == 0){
        System.out.println("列表为空,请先添加信息");
        return;
    }
    System.out.println("---------------------------客户列表---------------------------");
    System.out.println("编号\t姓名\t性别\t年龄\t电话\t\t\t邮箱");
    for (int i =0 ; i <array.size() ; i++){
        Customer c = new Customer();
        c = array.get(i);
        System.out.println((i+1)+"\t\t"+c.getName()+"\t"+c.getGender()+"\t\t"+c.getAge()+"\t\t"+c.getPhone()+"\t\t\t"+c.getEmail());
    }
    System.out.println("-------------------------客户列表完成-------------------------");
}
添加时判断时候已经有了该条信息实现:
public static boolean repeat(ArrayList<Customer> array , String phone){//添加时判断时候已经有了该条信息

    boolean b = false;
    for (int i =0 ; i < array.size(); i++){
        Customer c = new Customer();
        c = array.get(i);
        if( c.getPhone().equals(phone)){
            b = true;
            break;
        }
    }
    return b; //如果输出true 表示重复
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值