java模拟实现一个基于文本界面的——客户信息管理系

本文档介绍了一个使用Java模拟实现的基于文本界面的客户信息管理系统,涵盖了类的设计、对象的管理以及用户交互。系统包括CustomerView、CustomerList和Customer类,支持客户信息的增删改查操作,通过数组管理客户数据,并通过分级菜单进行用户交互。
摘要由CSDN通过智能技术生成

一:项目介绍

介绍:模拟实现一个基于文本界面的——客户信息管理系
类和对象(属性、方法及构造器)
类的封装
引用数组
数组的插入、删除和替换
多对象协同工作
该简易系统能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表

项目采用分级菜单方式。

1、主菜单如下:

—————–客户信息管理软件—————–

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

                        请选择(1-5):_

2、添加功能:

……
请选择(1-5):1

———————添加客户———————
姓名:张三
性别:男
年龄:30
电话:010-56253825
邮箱:zhang@abc.com
———————添加完成———————

3、修改功能:

……
请选择(1-5):2

———————修改客户———————
请选择待修改客户编号(-1退出):1
姓名(张三):<直接回车表示不修改>
性别(男):
年龄(30):
电话(010-56253825):
邮箱(zhang@abc.com):zsan@abc.com
———————修改完成———————

4、删除功能:

            ……
               请选择(1-5):3

———————删除客户———————
请选择待删除客户编号(-1退出):1
确认是否删除(Y/N):y
———————删除完成———————

5、查/显示全部功能:

……
请选择(1-5):4

—————————客户列表—————————
编号 姓名 性别 年龄 电话 邮箱
1 张三 男 30 010-56253825 abc@email.com
2 李四 女 23 010-56253825 lisi@ibm.com
3 王芳 女 26 010-56253825 wang@163.com
————————-客户列表完成————————-

二:方法介绍
该软件由以下三个模块组成:

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

1.Customer类的设计
Customer为实体类,用来封装客户信息
该类封装客户的以下信息:
String name : 客户姓名
char gender : 性别
int age : 年龄
String phone: 电话号码
String email : 电子邮箱
提供各属性的get/set方法
提供所需的构造器(可自行确定)
2. 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)
3.CustomerView类的设计
CustomerView为主模块,负责菜单的显示和处理用户操作
本类封装以下信息:
CustomerList customers = 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)

public void enterMainMenu()
用途:显示主菜单,响应用户输入,根据用户操作分别调用其他相应的成员方法(如addNewCustomer),以完成客户信息处理。
private void addNewCustomer()
private void modifyCustomer()
private void deleteCustomer()
private void listAllCustomers()
用途:这四个方法分别完成“添加客户”、“修改客户”、“删除客户”和“客户列表”等各菜单功能。
这四个方法仅供enterMainMenu()方法调用。
public static void main(String[] args)
用途:创建CustomerView实例,并调用 enterMainMenu()方法以执行程序。

三、实现思路
1.键盘录入的实现
项目中提供了CMUtility.java类,可用来方便地实现键盘访问。
该类提供了以下静态方法:
public static char readMenuSelection()
用途:该方法读取键盘,如果用户键入’1’-’5’中的任意字符,则方法返回,返回值为用户键入字符。
public static char readChar() 和
public static char readChar(char defaultValue)
用途:这两个方法功能相同,均从键盘读取一个字符,并将其作为方法的返回值。
参数: defaultValue — 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。(提示:此方法可在修改客户时调用)
public static int readInt() 和
public static int readInt(int defaultValue)
用途:这两个方法功能相同,均从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
参数: defaultValue — 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
public static String readString(int limit) 和
public static String readString(int limit, String defaultValue)
用途:这两个方法功能相同,均从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。
参数:limit — 指定字符串的最大长度
defaultValue— 如用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
public static char readConfirmSelection() :
用途:从键盘读取‘Y’或’N’,并将其作为方法的返回值。
2.实现Customer类
按照设计要求编写Customer类,并编译。
在Customer 类中临时添加一个main方法,作为单元测试方法。
在方法中创建Customer对象,并调用对象的各个方法,以测试该类是否编写正确
3.实现CustomerList类
按照设计要求编写CustomerList类,并编译。
在CustomerList类中临时添加一个main方法,作为单元测试方法。
在方法中创建CustomerList对象(最多存放5个客户对象),然后分别用模拟数据调用以下各个方法,以测试各方法是否编写正确:
addCustomer
replaceCustomer
deleteCustomer
getAllCustomers
getCustomer
进一步测试以下情况,以验证该类是否编写正确:
调用addCustomer方法,添加至5个以上客户对象时
当数组中客户对象数量为0时,仍然调用replaceCustomer方法替换对象
当数组中客户对象数量为0时,仍然调用deleteCustomer方法删除对象
对于replaceCustomer、 deleteCustomer和getCustomer的调用,当参数index的值无效时(例如-1或6)
getAllCustomers方法返回的数组长度是否与实际的客户对象数量一致
4.实现CustomerView类
按照设计要求编写CustomerView类,逐一实现各个方法,并编译。
执行main方法,测试以下功能:
主菜单显示及操作是否正确
“添加客户”操作是否正确,给用户的提示是否明确合理;测试当添加的客户总数超过10时,运行是否正确
“修改客户”操作是否正确,给用户的提示是否明确合理
“删除客户”操作是否正确,给用户的提示是否明确合理
“客户列表”操作是否正确,表格是否规整。

四、代码展示

import java.util.Scanner;

/**
 * 操作扫面器的工具类
 * @author Mr.Gao
 */
public class CMUtility {
   
    private static Scanner scanner = new Scanner(System.in);

    /**
     * 读取菜单的选择
     * 
     * @return
     */
    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("选择错误,请重新输入:");
            } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值