ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

客户信息管理软件

2021-05-08 10:29:15  阅读:148  来源: 互联网

标签:Customer 对象 信息管理 客户 数组 软件 方法 public


看老师教java在网上找的小程序制作
模拟实现一个基于文本界面的《客户信息管理软件》
进一步掌握编程技巧和调试技巧,熟悉面向对象编程
主要涉及以下知识点:
类结构的使用:属性、方法及构造器
对象的创建与使用
类的封装性
声明和使用数组
数组的插入、删除和替换
关键字的使用:this
模拟实现基于文本界面的《客户信息管理软件》。
该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。
项目采用分级菜单方式。主菜单如下:
-----------------客户信息管理软件-----------------

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

                                 请选择(1-5):_

每个客户的信息被保存在Customer对象中。
以一个Customer类型的数组来记录当前所有的客户。
每次“添加客户”(菜单1)后,客户(Customer)对象被添加到数组中。
每次“修改客户”(菜单2)后,修改后的客户(Customer)对象替换数组中原对象。
每次“删除客户”(菜单3)后,客户(Customer)对象被从数组中清除。
执行“客户列表 ”(菜单4)时,将列出数组中所有客户的信息。
添加客户”的界面及操作过程如下所示:
……
请选择(1-5):1

---------------------添加客户---------------------
姓名:佟刚
性别:男
年龄:35
电话:010-56253825
邮箱:tongtong@atguigu.com
---------------------添加完成---------------------
修改客户”的界面及操作过程如下所示:
……
请选择(1-5):2

---------------------修改客户---------------------
请选择待修改客户编号(-1退出):1
姓名(佟刚):<直接回车表示不修改>
性别(男):
年龄(35):
电话(010-56253825):
邮箱(tongtong@atguigu.com):tongg@atguigu.com
---------------------修改完成---------------------
“删除客户”的界面及操作过程如下所示:
……
请选择(1-5):3

---------------------删除客户---------------------
请选择待删除客户编号(-1退出):1
确认是否删除(Y/N):y
---------------------删除完成---------------------
客户列表”的界面及操作过程如下所示:
……
请选择(1-5):4

---------------------------客户列表---------------------------
编号 姓名 性别 年龄 电话 邮箱
1 佟刚 男 45 010-56253825 tong@abc.com
2 封捷 女 36 010-56253825 fengjie@ibm.com
3 雷丰阳 男 32 010-56253825 leify@163.com
-------------------------客户列表完成-------------------------

该软件由以下三个模块组成:
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

项目中提供了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’,并将其作为方法的返回值。
Customer为实体类,用来封装客户信息
该类封装客户的以下信息:
String name :客户姓名
char gender :性别
int age :年龄
String phone:电话号码
String email :电子邮箱
提供各属性的get/set方法
提供所需的构造器(可自行确定)
按照设计要求编写Customer类,并编译
在Customer 类中临时添加一个main方法中,作为单元测试方法。
在方法中创建Customer对象,并调用对象的各个方法,以测试该类是否编写正确。
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()
public CustomerList(int totalCustomer)
用途:构造器,用来初始化customers数组
参数:totalCustomer:指定customers数组的最大空间
public boolean addCustomer(Customer customer)
用途:将参数customer添加到数组中最后一个客户对象记录之后
参数:customer指定要添加的客户对象
返回:添加成功返回true;false表示数组已满,无法添加
public boolean replaceCustomer(int index, Customer cust)
用途:用参数customer替换数组中由index指定的对象
参数:customer指定替换的新客户对象
index指定所替换对象在数组中的位置,从0开始
返回:替换成功返回true;false表示索引无效,无法替换
public boolean deleteCustomer(int index)
用途:从数组中删除参数index指定索引位置的客户对象记录
参数: index指定所删除对象在数组中的索引位置,从0开始
返回:删除成功返回true;false表示索引无效,无法删除
public Customer[] getAllCustomers()
用途:返回数组中记录的所有客户对象
返回: Customer[] 数组中包含了当前所有客户对象,该数组长度与对象个数相同。
public Customer getCustomer(int index)
用途:返回参数index指定索引位置的客户对象记录
参数: index指定所要获取的客户在数组中的索引位置,从0开始
返回:封装了客户信息的Customer对象
在这里插入图片描述

按照设计要求编写CustomerList类,并编译
在CustomerList类中临时添加一个main方法中,作为单元测试方法。
在方法中创建CustomerList对象(最多存放5个客户对象),然后分别用模拟数据调用以下各个方法,以测试各方法是否编写正确:
addCustomer()
replaceCustomer()
deleteCustomer()
getAllCustomers()
getCustomer()
getTotal()
进一步测试以下情况,以验证该类是否编写正确:
调用addCustomer方法,添加至少5个以上客户对象时
当数组中客户对象数量为0时,仍然调用replaceCustomer方法替换对象
当数组中客户对象数量为0时,仍然调用deleteCustomer方法删除对象
对于replaceCustomer、 deleteCustomer和getCustomer的调用,当参数index的值无效时(例如-1或6)
getAllCustomers方法返回的数组长度是否与实际的客户对象数量一致

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)

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()方法以执行程序。

按照设计要求编写CustomerView类,逐一实现各个方法,并编译
执行main方法中,测试以下功能:
主菜单显示及操作是否正确
“添加客户”操作是否正确,给用户的提示是否明确合理;测试当添加的客户总数超过10时,运行是否正确
“修改客户”操作是否正确,给用户的提示是否明确合理;
“删除客户”操作是否正确,给用户的提示是否明确合理;
“客户列表”操作是否正确,表格是否规整;

标签:Customer,对象,信息管理,客户,数组,软件,方法,public
来源: https://blog.csdn.net/weixin_47246918/article/details/116519054

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有