任务九:使用集合ArryList集合对类对象Member和Goods类的形势完成淘宝shopping”购物管理系统购物结算模块和...

preview
需积分: 0 6 下载量 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()添加客户信息;功能在前面任务已实现 } //省略其他