Java类基础使用实践之客户信息管理软件

Java类基础使用实践之客户信息管理软件

基础类Customer负责客户基本信息的存储和获取
package com.customer;

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

    public Customer(){

    }
    public Customer(String name,String sex,int age,String phone,String mail){
        this.id  = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.phone = phone;
        this.mail = mail;
    }
    // 3 5 3 3 15 20
    public void showInfo(){
        System.out.printf("%-3d%-5s%-3s%-3d%-15s%-20s",id,name,sex,age,phone,mail);
        System.out.println();
    }
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    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 getPhone() {
        return phone;
    }

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

    public String getMail() {
        return mail;
    }

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

信息表类InfoTable负责用数组存储所有的客户,提供添加,删除,查找,信息展示方法
package com.customer;

public class InfoTable {
    private Customer[] customers;
    private int nowId;
    private int pos;
    private int length;
    public InfoTable(){
        customers = new Customer[100];
        nowId = 1;
        pos = 0;
        length = 0;

    }
    public void printInfo(){
        System.out.printf("%-49s\n","---------------------客户列表---------------------");
        System.out.printf("%-3s%-5s%-3s%-3s%-15s%-20s\n","Id","Name","Sex","Age","Phone","Mail");

        for(int i=0;i<length;++i){
            customers[i].showInfo();
        }
        System.out.printf("%-49s\n","---------------------客户列表完成---------------------");
    }
    public void addCustomer(Customer newCustomer){
        newCustomer.setId(nowId);
        nowId += 1;
        if (pos<100) customers[pos] = newCustomer;
        else {
            System.out.println("客户列表已满,请删除部分信息后使用");
            return;
        }
        System.out.println("客户添加成功,编号Id为"+(nowId-1));
        pos += 1;
        length += 1;
    }
    public void deleteCustomerById(int id){
        int i = 0;
        boolean delete = false;
        while (i<length){
            if (customers[i].getId() == id){
                customers[i] = null;
                i += 1;
                delete = true;
                break;
            }
            i += 1;
        }
        while (i<length){
            customers[i-1] = customers[i];
            i += 1;
        }
        if (delete){
            pos -= 1;
            length -= 1;
            System.out.println("删除id = "+id+"的顾客信息  成功");
            return;
        }
        System.out.println("删除id = "+id+"的顾客信息  失败,信息中未包含该顾客信息或其他原因");

    }
    public Customer findCustomerById(int id){
        for(int i=0;i<length;++i){
            if(customers[i].getId() == id) return customers[i];
        }
        return null;
    }
}

菜单类,负责控制基本的菜单逻辑
package com.customer;

import java.util.Scanner;

public class Menu {
    private InfoTable infoTable;
    public Menu(){
        infoTable = new InfoTable();
    }
    public void MenuMain(){
        while (true){
            System.out.printf("--------------客户信息管理软件--------------\n");
            System.out.println();
            System.out.printf("%15d %-10s\n",1," 添 加 客 户");
            System.out.printf("%15d %-10s\n",2," 修 改 客 户");
            System.out.printf("%15d %-10s\n",3," 删 除 客 户");
            System.out.printf("%15d %-10s\n",4," 客 户 列 表");
            System.out.printf("%15d %-10s\n",5," 退       出");
            System.out.println();
            System.out.printf("%25s","请选择(1-5): ");
            Scanner scanner = new Scanner(System.in);
            int choose = scanner.nextInt();
            switch (choose){
                case 1:{
                    addCustomer();
                    break;
                }
                case 2:{
                    modifyCustomers();
                }
                case 3:{
                    deleteCustomers();
                    break;
                }
                case 4:{
                    showCustomers();
                    break;
                }
                case 5:{
                    System.out.println("客户信息管理软件已退出");
                    return;
                }
                default:{
                    System.out.println("请输入正确的指令编号 1-5");
                }
            }
            System.out.println();
        }

    }
    private void addCustomer(){
        Scanner scanner = new Scanner(System.in);
        while (true){
        System.out.println("请输入客户信息");
        System.out.print("姓名");
        String name = scanner.next();
        System.out.print("性别");
        String sex = scanner.next();
        System.out.print("年龄");
        int age = scanner.nextInt();
        System.out.print("电话");
        String phone = scanner.next();
        System.out.print("邮箱");
        String mail = scanner.next();
        Customer newCustomer = new Customer(name,sex,age,phone,mail);
        this.infoTable.addCustomer(newCustomer);
        System.out.println("输入q 返回主界面, 其他任意键 继续添加...");
        String check = scanner.next();
        if (check.equals("q")) break;
        }
    }
    private void showCustomers(){
        Scanner scanner = new Scanner(System.in);
        this.infoTable.printInfo();
        System.out.println("输入任意键 返回主界面...");
        scanner.next();
    }
    private void deleteCustomers(){
        Scanner scanner = new Scanner(System.in);
        this.infoTable.printInfo();
        while (true){
            System.out.print("输入需要删除的顾客的id: ");
            int id = scanner.nextInt();
            this.infoTable.deleteCustomerById(id);
            this.infoTable.printInfo();
            System.out.println("输入q 返回主界面, 其他任意键 继续删除...");
            String check = scanner.next();
            if (check.equals("q")) break;
        }
    }
    private void modifyCustomers(){
        Scanner scanner = new Scanner(System.in);
        this.infoTable.printInfo();
        while (true){
            System.out.print("输入需要修改的顾客的id: ");
            int id = scanner.nextInt();
            Customer custom = this.infoTable.findCustomerById(id);
            if (custom!=null){
                System.out.print("姓名("+custom.getName()+"):");
                String name = scanner.next();
                custom.setName(name);
                System.out.print("性别("+custom.getSex()+"):");
                String sex = scanner.next();
                custom.setSex(sex);
                System.out.print("年龄("+custom.getAge()+"):");
                int age = scanner.nextInt();
                custom.setAge(age);
                System.out.print("电话("+custom.getPhone()+"):");
                String phone = scanner.next();
                custom.setPhone(phone);
                System.out.print("邮箱("+custom.getMail()+"):");
                String mail = scanner.next();
                custom.setMail(mail);
                System.out.println("修改完毕");
            }
            else {
                System.out.println("修改失败,未找到该Id的客户或其他原因");
            }
            this.infoTable.printInfo();
            System.out.println("输入q 返回主界面, 其他任意键 继续修改...");
            String check = scanner.next();
            if (check.equals("q")) break;
        }
    }
}

主类SoftWare
package com.customer;

public class SoftWare {
    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.MenuMain();
    }
}
运行结果
--------------客户信息管理软件--------------

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 1
请输入客户信息
姓名小白
性别男
年龄25
电话54654521
邮箱1259454@qq.con
客户添加成功,编号Id为1
输入q 返回主界面, 其他任意键 继续添加...
d
请输入客户信息
姓名小白
性别女
年龄25
电话12313215
邮箱456asda@163.com
客户添加成功,编号Id为2
输入q 返回主界面, 其他任意键 继续添加...
d
请输入客户信息
姓名小宋
性别男
年龄28
电话13241654
邮箱dasdjal
客户添加成功,编号Id为3
输入q 返回主界面, 其他任意键 继续添加...
q

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

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 4
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
2  小白   女  25 12313215       456asda@163.com     
3  小宋   男  28 13241654       dasdjal             
---------------------客户列表完成--------------------- 
输入任意键 返回主界面...
d

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

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 2
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
2  小白   女  25 12313215       456asda@163.com     
3  小宋   男  28 13241654       dasdjal             
---------------------客户列表完成--------------------- 
输入需要修改的顾客的id: 2
姓名(小白):小黑
性别(女):女
年龄(25):25
电话(12313215):14444444
邮箱(小黑):123213@xml.com
修改完毕
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
2  小黑   女  25 14444444       123213@xml.com      
3  小宋   男  28 13241654       dasdjal             
---------------------客户列表完成--------------------- 
输入q 返回主界面, 其他任意键 继续修改...
q
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
2  小黑   女  25 14444444       123213@xml.com      
3  小宋   男  28 13241654       dasdjal             
---------------------客户列表完成--------------------- 
输入需要删除的顾客的id: 8
删除id = 8的顾客信息  失败,信息中未包含该顾客信息或其他原因
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
2  小黑   女  25 14444444       123213@xml.com      
3  小宋   男  28 13241654       dasdjal             
---------------------客户列表完成--------------------- 
输入q 返回主界面, 其他任意键 继续删除...
q

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

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 3
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
2  小黑   女  25 14444444       123213@xml.com      
3  小宋   男  28 13241654       dasdjal             
---------------------客户列表完成--------------------- 
输入需要删除的顾客的id: 2
删除id = 2的顾客信息  成功
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
3  小宋   男  28 13241654       dasdjal             
---------------------客户列表完成--------------------- 
输入q 返回主界面, 其他任意键 继续删除...
q

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

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 1
请输入客户信息
姓名小蓝
性别女
年龄30
电话132132
邮箱sdasdvcvc
客户添加成功,编号Id为4
输入q 返回主界面, 其他任意键 继续添加...
q

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

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 4
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
3  小宋   男  28 13241654       dasdjal             
4  小蓝   女  30 132132         sdasdvcvc           
---------------------客户列表完成--------------------- 
输入任意键 返回主界面...
2

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

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 3
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
3  小宋   男  28 13241654       dasdjal             
4  小蓝   女  30 132132         sdasdvcvc           
---------------------客户列表完成--------------------- 
输入需要删除的顾客的id: 3
删除id = 3的顾客信息  成功
---------------------客户列表---------------------   
Id Name SexAgePhone          Mail                
1  小白   男  25 54654521       1259454@qq.con      
4  小蓝   女  30 132132         sdasdvcvc           
---------------------客户列表完成--------------------- 
输入q 返回主界面, 其他任意键 继续删除...
q

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

              1  添 加 客 户  
              2  修 改 客 户  
              3  删 除 客 户  
              4  客 户 列 表  
              5  退       出

               请选择(1-5): 5
客户信息管理软件已退出

Process finished with exit code 0

posted @   青椒炒野生菌  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示