任务九:使用集合ArryList集合对类对象Member和Goods类的形势完成淘宝shopping”购物管理系统购物结算模块和...
需积分: 0 86 浏览量
更新于2015-12-17
收藏 9KB RAR 举报
任务九:使用集合的方法(ArryList集合对类对象Member和Goods类)
完成淘宝shopping”购物管理系统购物结算模块和客户管理模块
1.需要完成的任务
开发“淘宝Shopping购物管理系统”:
(1)实现系统数据传递
(2)实现自动计算会员折扣
(3)完善购物结算程序
(4)实现从购物结算程序返回上一级主菜单
2.技能训练
(1)会使用String的相关方法
(2)会使用带参数的方法
3.实践
实践1:实现系统数据传递
需求说明:
实现数据传递,如图
(1)系统开始时加载系统数据:会员信息、商品信息和管理员信息
(2)在系统运行中,数据在不同界面间进行传递,但始终保持对同一个数组进行操作
实现思路及关键代码
(1)在前面已实现的StartSMS.java的main()中添加代码加载系统数据。
Data data = new Data();
data.initial();
(2)在前面已实现的Menu类中编写带参的setData(<参数列表>)方法,用于获取系统数据。
a)编写类成员变量,定义数组变量goodsName、goodsPrice、custNo、custBirth和custScore
b)编写setData方法,用于接收传递的数据。
public void setData(String[] goodsName1, double[] goodsPrice1,
int[] custNo1, String[] custBirth1, int[] custScore1) {
//给成员变量赋初值
}
(3)在main()方法中调用setData方法实现Menu对象的数据加载。
实践2:扩展购物结算程序,实现自动计算会员折扣
需求说明
扩展购物结算功能,实现自动计算会员折扣:已知会员号,根据会员号查找目前的积分,然后计算该会员所享受的会员折扣。
实现思路及关键代码
(1)在前面已实现的Pay.java中添加方法。
(2)添加代码实现数据加载(可以直接复制Menu类中用于加载系统数据的代码)
(3)编写带参数的方法实现会员折扣计算(参照任务3中实现的CalcDiscount.java)
publicdoublegetDiscount(intcurCustNo,int[] custNo,int[] custScore){
//根据会员号curCustNo查询对应的下标index
//根据多重if结构判断折扣数
//使用return返回折扣值
}
实践3:扩展实践2,打印购物小票
需求说明
在实践2基础上扩展购物结束程序,实现输出如下所示的购物小票。
输出购物小票
实现思路及关键代码
(1)扩展calcPay()方法
(2)创建StringBuffer对象存储购物信息
StringBuffergoodsList = new StringBuffer();
(3)调用StringBuffer对象的append方法追加购物信息
goodsList.append(name + "\t" + "¥" + price + "\t\t" + count
+ "\t\t" + "¥" + (price * count) + "\t\n");
(4)测试购物结算模块:Menu类中的showMainMenu()方法中添加测试代码:
Pay pay = newPay(); //创建Pay实例
pay.setData(goodsName,goodsPrice,custNo,custBirth,custScore);//数据加载
pay.calcPay();//执行购物结算
实践4:执行购物结算后返回上一级菜单
需求说明
(1)添加Pay类的另一个方法returnLastMenu(),功能是在完成购物结算后,按数字0返回上一级菜单,部分代码如下,将其完善。
publicvoidreturnLastMenu() {
System.out.print("\n\n请输入数字0返回上一级菜单:");
Scanner input = new Scanner(System.in);
boolean con;
do {
con = true;
if (input.next().equals("0")) {
// 添加代码1:创建菜单类
// 添加代码2:调用方法加载系统数据
// 添加代码3:调用显示系统主菜单的方法
} else {
System.out.print("输入错误, 请重新输入数字0返回上一级菜单:");
con = false;
}
} while (!con);
}
(2)测试returnLastMenu()方法
实现思路及关键代码
(1)当用户输入数字0时,执行返回上一级菜单的功能,因此需要调用Menu对象的setData()方法传递当前系统数据,然后调用showMainMenu()方法显示上一级菜单
(2)在购物结算结束后调用returnLastMenu()方法,运行StartSMS.java,执行购物结算,然后返回主菜单。
实践5:改进客户管理类,实现数据加载
(1)在客户管理类中实现数据接收功能
(2)修改客户管理类,实现客户信息增加和查询
(3)执行完毕返回上一级菜单
测试客户管理模块,使用户能够通过选择客户信息管理菜单完成相应操作
实现思路及关键代码
(1)扩展CustManagement类
(2)添加setData()方法实现系统数据加载
(3)编写方法返回上一级菜单(即客户管理菜单),并在add(),show()方法结束时调用该方法
(4)测试客户信息管理模块,在Menu类的showCustMMenu()方法中添加如下测试代码
CustManagement cm = new CustManagement();
cm.setData(goodsName,goodsPrice,custNo,custBirth,custScore);
//省略代码
if(输入的数字为1){
cm.show(); //调用show()显示所有客户信息;功能在前面任务已实现
}else if(输入的数字为2){
cm.add(); //调用add()添加客户信息;功能在前面任务已实现
}
//省略其他
看我君临天下
- 粉丝: 87
- 资源: 364