本次任务,按小组完成。每组最多2人。
目标:
学会使用讲故事的方式找到系统中可能包含的类与属性 理解封装
任务:
编码规范:使用英文对类、方法、包进行命名(查英文词典,不得出现拼音)。参考JAVA编码规范,进行类命名,方法命名、包命名,合适的缩进,有意义的变量名。见参考资料1中的1.1-1.4。 前期调查与功能设计:调查京东商城或者亚马逊商城中的购物车,体验从搜索商品、加入购物车、操作购物车、下单全过程,思考该过程可能包含的类。演示中要求图多字少。 面向对象设计:以面向对象的方法编写购物车代码。先设计有什么类,再考虑什么方法放到那个类中合适。初期可不用完成具体功能,只要将类名、类之间的关系、方法名设计好即可。见参考资料2、3。注意学习类与类之间的关系(先重点掌握关联关系与依赖关系)。 PPT制作或博客制作并上台演示:演示前,请务必自己在同学面前预演一遍。
注意:初期将重点放在面向对象设计、命名规范。
以上任务,请小组组长明确分工,课堂展示时教师将针对每个组员负责的部分进行提问检查。
未完成所负责任务,考核不合格。
分工表格示例(请组长将上述任务妥善分配):
任务 | 姓名 |
---|---|
编码规范、前期调查与功能设计 | 卢伟杰 |
面向对象设计、PPT制作或博客制作 | 胡旻轩 |
通过对京东商城的调查,商城需要具有搜索、添加购物车功能,购物车的属性有商品名、商品数量以及商品价格;且购物车需要具有添加商品、删除商品、计算商品总价格和结算生成订单功能。
class shangping { private long bianhao; //商品编号 private String name; //商品名称 private int shuliang; //商品数量 private double jiage; //商品价格 private String leibie; //商品类别 public long getBianhao() { return bianhao; } public void setBianhao(long bianhao) { this.bianhao = bianhao; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getShuliang() { return shuliang; } public void setShuliang(int shuliang) { this.shuliang = shuliang; } public double getJiage() { return jiage; } public void setJiage(double jiage) { this.jiage = jiage; } public String getLeibie() { return leibie; } public void setLeibie(String leibie) { this.leibie = leibie; } @Override public String toString() { return "shangping [bianhao=" + bianhao + ", name=" + name + ", shuliang=" + shuliang + ", jiage=" + jiage + ", leibie=" + leibie + "]"; } public shangping(long bianhao, String name, int shuliang, double jiage, String leibie) { super(); this.bianhao = bianhao; this.name = name; this.shuliang = shuliang; this.jiage = jiage; this.leibie = leibie; } }
private static void jiagou(yonghu loginuser, int i, shangcheng sc) { // TODO Auto-generated method stub gouwuche gou = new gouwuche(sc.getShangpings().get(i), 1); sc.getShangpings().get(i).setShuliang(sc.getShangpings().get(i).getShuliang() - 1); loginuser.getGouwuches().add(gou); }
private static int chaxun(String searchname, shangcheng sc) { // TODO Auto-generated method stub int s = -1; for (int i = 0; i < sc.getShangpings().size(); i++) { if (sc.getShangpings().get(i).getName().equals(searchname)) { System.out.println("编号:" + sc.getShangpings().get(i).getBianhao()); System.out.println("名称:" + sc.getShangpings().get(i).getName()); System.out.println("价格:" + sc.getShangpings().get(i).getJiage()); System.out.println("库存:" + sc.getShangpings().get(i).getShuliang()); System.out.println("类别:" + sc.getShangpings().get(i).getLeibie()); s = i; } } return s; }
private static double jiesuan(yonghu loginuser) { // TODO Auto-generated method stub double sum = 0; for (int i = 0; i < loginuser.getGouwuches().size(); i++) { sum += loginuser.getGouwuches().get(i).getShuliang() * loginuser.getGouwuches().get(i).getShangping().getJiage(); } return sum; }
if (user) { System.out.println("登录成功"); while (true) { System.out.println("1-查看购物车" + "\t" + "2-查询商品" + "\n" + "3-结算" + "\t" + "4-退出"); int a = input.nextInt(); yonghu loginuser = getuser(name, sc); if (a == 1) { showgou(loginuser); } else if (a == 2) { System.out.println("请输入查询商品信息:"); String searchname = input.next(); int i = chaxun(searchname, sc); if (i == -1) { System.out.println("没有此商品"); } else { System.out.println("是否加入购物车 是/否"); String jiagou = input.next(); if (jiagou.equals("是")) { jiagou(loginuser, i, sc); } else { continue; } } } else if (a == 3) { showgou(loginuser); System.out.println(); System.out.println(jiesuan(loginuser)); } else { break; } } } else { System.out.println("登录失败"); } }