服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java实现简单客户信息管理系统

Java实现简单客户信息管理系统

2022-12-25 16:21好汤圆 Java教程

这篇文章主要为大家详细介绍了Java实现简单客户信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java实现客户信息管理系统的具体代码,供大家参考,具体内容如下

一、目标

模拟实现一个基于文本界面的《客户信息管理软件》

进一步掌握编程技巧和调试技巧,熟悉面向对象编程

主要涉及以下知识点:

  • 类结构的使用:属性、方法及构造器
  • 对象的创建与使用
  • 类的封装性
  • 声明和使用数组
  • 数组的插入、删除和替换
  • 关键字的使用:this

二、系统结构设计

Java实现简单客户信息管理系统

  • CustomerView为主模块,负责菜单的显示和处理用户操作
  • CustomerList为Customer对象的管理模块,内部用数组管理一组Customer对象,并提供相应的添加、修改、删除和遍历方法,供CustomerView调用
  • Customer为实体对象,用来封装客户信息

三、键盘访问的实现

项目中提供了CMUtility.java类,可用来方便地实现键盘访问。

四、Customer类

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

该类封装客户的以下信息:

  • String name :客户姓名
  • char gender :性别
  • int age :年龄
  • String phone:电话号码
  • String email :电子邮箱

提供各属性的get/set方法

提供所需的构造器(可自行确定)

五、CustomerList类

CustomerList为Customer对象的管理模块,内部使用数组管理一组Customer对象

本类封装以下信息:

  • Customer[] customers:用来保存客户对象的数组
  • int total = 0:记录已保存客户对象的数量

该类至少提供以下构造器和方法:

  • public CustomerList(int totalCustomer)
  • public boolean addCustomer(Customer customer)
  • public boolean replaceCustomer(int index, Customer cust)
  • public boolean deleteCustomer(int index)
  • public Customer[] getAllCustomers()
  • public Customer getCustomer(int index)
  • public int getTotal()

六、CustomerView类

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

本类封装以下信息:

CustomerList customerList = new CustomerList(10);

创建最大包含10个客户对象的CustomerList 对象,供以下各成员方法使用。

该类至少提供以下方法:

  • public void enterMainMenu()
  • private void addNewCustomer()
  • private void modifyCustomer()
  • private void deleteCustomer()
  • private void listAllCustomers()
  • public static void main(String[] args)

七、代码

CMUtility类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.hsy.pack.project;
 
import java.util.Scanner;
 
/**
 * CMUtility工具类:
 * 将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。
 */
public class CMUtility {
    private static Scanner scanner = new Scanner(System.in);
 
    /**
     * 用于界面菜单的选择。该方法读取键盘,如果用户键入'1'-'5'中的任意字符,则方法返回。返回值为用户键入字符。
     */
    public static char readMenuSelection() {
        char c;
        for (; ; ) {
            String str = readKeyBoard(1, false);
            c = str.charAt(0);
            if (c != '1' && c != '2' &&
                    c != '3' && c != '4' && c != '5') {
                System.out.print("选择错误,请重新输入:");
            } else break;
        }
        return c;
    }
 
    /**
     * 从键盘读取一个字符,并将其作为方法的返回值。
     */
    public static char readChar() {
        String str = readKeyBoard(1, false);
        return str.charAt(0);
    }
 
    /**
     * 从键盘读取一个字符,并将其作为方法的返回值。
     * 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
     */
    public static char readChar(char defaultValue) {
        String str = readKeyBoard(1, true);
        return (str.length() == 0) ? defaultValue : str.charAt(0);
    }
 
    /**
     * 从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
     */
    public static int readInt() {
        int n;
        for (; ; ) {
            String str = readKeyBoard(2, false);
            try {
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
                System.out.print("数字输入错误,请重新输入:");
            }
        }
        return n;
    }
 
    /**
     * 从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
     * 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
     */
    public static int readInt(int defaultValue) {
        int n;
        for (; ; ) {
            String str = readKeyBoard(2, true);
            if (str.equals("")) {
                return defaultValue;
            }
 
            try {
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
                System.out.print("数字输入错误,请重新输入:");
            }
        }
        return n;
    }
 
    /**
     * 从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。
     */
    public static String readString(int limit) {
        return readKeyBoard(limit, false);
    }
 
    /**
     * 从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。
     * 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
     */
    public static String readString(int limit, String defaultValue) {
        String str = readKeyBoard(limit, true);
        return str.equals("") ? defaultValue : str;
    }
 
    /**
     * 用于确认选择的输入。该方法从键盘读取‘Y'或'N',并将其作为方法的返回值。
     */
    public static char readConfirmSelection() {
        char c;
        for (; ; ) {
            String str = readKeyBoard(1, false).toUpperCase();
            c = str.charAt(0);
            if (c == 'Y' || c == 'N') {
                break;
            } else {
                System.out.print("选择错误,请重新输入:");
            }
        }
        return c;
    }
 
    private static String readKeyBoard(int limit, boolean blankReturn) {
        String line = "";
 
        while (scanner.hasNextLine()) {
            line = scanner.nextLine();
            if (line.length() == 0) {
                if (blankReturn) return line;
                else continue;
            }
 
            if (line.length() < 1 || line.length() > limit) {
                System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");
                continue;
            }
            break;
        }
 
        return line;
    }
}

Customer类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.hsy.pack.project;
 
public class Customer {
    private String name;
    private char gender;
    private int age;
    private String phone;
    private String email;
 
    public Customer(String name, char gender, int age) {
        this(name, gender, age, "", "");
    }
 
    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 String getDetails() {
        return name + "\t" + gender + "\t" + age + "\t\t" + phone + "\t" + email;
    }
}

CustomerList类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.hsy.pack.project;
 
public class CustomerList {
    private Customer[] customers;
    private int total = 0;
 
    public CustomerList(int totalCustomer) {
        customers = new Customer[totalCustomer];
    }
 
    public boolean addCustomer(Customer customer) {
        if (total >= customers.length) return false;
 
        customers[total++] = customer;
        return true;
    }
 
    public boolean replaceCustomer(int index, Customer cust) {
        if (index < 0 || index >= total) return false;
 
        customers[index] = cust;
        return true;
    }
 
    public boolean deleteCustomer(int index) {
        if (index < 0 || index >= total) return false;
 
        for (int i = index; i < total - 1; i++) {
            customers[i] = customers[i + 1];
        }
 
        customers[--total] = null;
 
        return true;
    }
 
    public Customer[] getAllCustomers() {
        Customer[] custs = new Customer[total];
        for (int i = 0; i < total; i++) {
            custs[i] = customers[i];
        }
        return custs;
    }
 
    public int getTotal() {
        return total;
    }
 
    public Customer getCustomer(int index) {
        if (index < 0 || index >= total) return null;
 
        return customers[index];
    }
}

CustomerView类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package com.hsy.pack.project;
 
public class CustomerView {
    private CustomerList customers = new CustomerList(10);
 
    public CustomerView() {
        Customer cust = new Customer("张三", '男', 30, "010-56253825",
                "abc@email.com");
        customers.addCustomer(cust);
    }
 
    public void enterMainMenu() {
        boolean loopFlag = true;
        do {
            System.out
                    .println("\n-----------------客户信息管理软件-----------------\n");
            System.out.println("                   1 添 加 客 户");
            System.out.println("                   2 修 改 客 户");
            System.out.println("                   3 删 除 客 户");
            System.out.println("                   4 客 户 列 表");
            System.out.println("                   5 退       出\n");
            System.out.print("                   请选择(1-5):");
 
            char key = CMUtility.readMenuSelection();
            System.out.println();
            switch (key) {
                case '1':
                    addNewCustomer();
                    break;
                case '2':
                    modifyCustomer();
                    break;
                case '3':
                    deleteCustomer();
                    break;
                case '4':
                    listAllCustomers();
                    break;
                case '5':
                    System.out.print("确认是否退出(Y/N):");
                    char yn = CMUtility.readConfirmSelection();
                    if (yn == 'Y')
                        loopFlag = false;
                    break;
            }
        } while (loopFlag);
    }
 
    private void addNewCustomer() {
        System.out.println("---------------------添加客户---------------------");
        System.out.print("姓名:");
        String name = CMUtility.readString(4);
        System.out.print("性别:");
        char gender = CMUtility.readChar();
        System.out.print("年龄:");
        int age = CMUtility.readInt();
        System.out.print("电话:");
        String phone = CMUtility.readString(15);
        System.out.print("邮箱:");
        String email = CMUtility.readString(15);
 
        Customer cust = new Customer(name, gender, age, phone, email);
        boolean flag = customers.addCustomer(cust);
        if (flag) {
            System.out
                    .println("---------------------添加完成---------------------");
        } else {
            System.out.println("----------------记录已满,无法添加-----------------");
        }
    }
 
    private void modifyCustomer() {
        System.out.println("---------------------修改客户---------------------");
 
        int index = 0;
        Customer cust = null;
        for (; ; ) {
            System.out.print("请选择待修改客户编号(-1退出):");
            index = CMUtility.readInt();
            if (index == -1) {
                return;
            }
 
            cust = customers.getCustomer(index - 1);
            if (cust == null) {
                System.out.println("无法找到指定客户!");
            } else
                break;
        }
 
        System.out.print("姓名(" + cust.getName() + "):");
        String name = CMUtility.readString(4, cust.getName());
 
        System.out.print("性别(" + cust.getGender() + "):");
        char gender = CMUtility.readChar(cust.getGender());
 
        System.out.print("年龄(" + cust.getAge() + "):");
        int age = CMUtility.readInt(cust.getAge());
 
        System.out.print("电话(" + cust.getPhone() + "):");
        String phone = CMUtility.readString(15, cust.getPhone());
 
        System.out.print("邮箱(" + cust.getEmail() + "):");
        String email = CMUtility.readString(15, cust.getEmail());
 
        cust = new Customer(name, gender, age, phone, email);
 
        boolean flag = customers.replaceCustomer(index - 1, cust);
        if (flag) {
            System.out
                    .println("---------------------修改完成---------------------");
        } else {
            System.out.println("----------无法找到指定客户,修改失败--------------");
        }
    }
 
    private void deleteCustomer() {
        System.out.println("---------------------删除客户---------------------");
 
        int index = 0;
        Customer cust = null;
        for (; ; ) {
            System.out.print("请选择待删除客户编号(-1退出):");
            index = CMUtility.readInt();
            if (index == -1) {
                return;
            }
 
            cust = customers.getCustomer(index - 1);
            if (cust == null) {
                System.out.println("无法找到指定客户!");
            } else
                break;
        }
 
        System.out.print("确认是否删除(Y/N):");
        char yn = CMUtility.readConfirmSelection();
        if (yn == 'N')
            return;
 
        boolean flag = customers.deleteCustomer(index - 1);
        if (flag) {
            System.out.println("---------------------删除完成---------------------");
        } else {
            System.out.println("----------无法找到指定客户,删除失败--------------");
        }
    }
 
    private void listAllCustomers() {
        System.out.println("---------------------------客户列表---------------------------");
        Customer[] custs = customers.getAllCustomers();
        if (custs.length == 0) {
            System.out.println("没有客户记录!");
        } else {
            System.out.println("编号\t姓名\t性别\t年龄\t电话\t\t\t邮箱");
            for (int i = 0; i < custs.length; i++) {
                System.out.println(i + 1 + "\t\t" + custs[i].getName() + "\t" + custs[i].getGender() + "\t\t" + custs[i].getAge() + "\t\t" + custs[i].getPhone() + "\t" + custs[i].getEmail());
            }
        }
 
        System.out.println("-------------------------客户列表完成-------------------------");
    }
 
    public static void main(String[] args) {
        CustomerView cView = new CustomerView();
        cView.enterMainMenu();
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_47436772/article/details/115216613

延伸 · 阅读

精彩推荐