gitee地址:https://gitee.com/wangyanyuvc/shopping-cart/tree/master/
1.前期调查通过观察京东购物车的界面可以大致了解到购物车需要实现的功能
2.系统功能结构图 系统描述:进入购物车系统,根据界面提示来进行一系列商品操作,商城用以添加销售商品及商品的信息修改。并将所需商品添加进购物车中,也可在购物车中进行所需商品的添加,删除并结算商品。 3.UML图 4.关键代码 ShoppingCart: import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; public class ShoppingCart { private Map<Integer, ProductItem> map = new LinkedHashMap<Integer, ProductItem>(); public void addProduct(Product p) {// 添加商品 int productId = p.getId(); if (map.containsKey(productId)) { // 判断商品编号是否存在 ProductItem productItem = map.get(productId); productItem.setCount(productItem.getCount() + 1); // 数量增加 } else { map.put(productId, new ProductItem(p, 1));// 新增商品 } } public void showAll() {// 查看订单信息 Collection<ProductItem> productItems = map.values();// 获取键值 Iterator<ProductItem> iterator = productItems.iterator(); while (iterator.hasNext()) { ProductItem productItem = iterator.next(); Product product = productItem.getProduct(); System.out.println("编号:" + product.getId() + ",名称:" + product.getName() + ",单价:" + product.getPrice() + ",数量:" + productItem.getCount() + ",小计:" + productItem.totalMoney()); } } public boolean deleteProduct(int productId) {// 删除商品 if (map.containsKey(productId)) { map.remove(productId); return true; } return false; } public boolean modifyProduct(int productId, int count) {// 修改商品数量 if (map.containsKey(productId)) { if (count >= 1) { ProductItem productItem = map.get(productId); productItem.setCount(count); return true; } else if (count == 0) {// 删除某商品 deleteProduct(productId); return true; } } return false; } public void clearCart() {// 清空购物车 map.clear(); System.out.println("购物车已清空!"); } public double totalAllMoney() {// 商品总价值 double total = 0; Collection<ProductItem> productItems = map.values(); Iterator<ProductItem> iterator = productItems.iterator(); while (iterator.hasNext()) { ProductItem productItem = iterator.next(); double money = productItem.totalMoney(); total += money; } return total; } public void Displaycart(ShoppingCart cart) { if(map.isEmpty()) { System.out.println("购物车为空!"); } else{ cart.showAll(); System.out.println("总价为:" + cart.totalAllMoney()); } } } Inventory: import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; public class Inventory { private Map<Integer,ProductItem> map=new LinkedHashMap<Integer,ProductItem>(); public void addProduct(Product p){//添加商品 int productId=p.getId(); if(map.containsKey(productId)){ //判断商品编号是否存在 System.out.println("该商品已存在"); }else{ map.put(productId, new ProductItem(p));//新增商品 } } public boolean Productexist(int productId) { if(!map.containsKey(productId)) { return false; } return true; } public Product getProduct(int productId) { return map.get(productId).getProduct(); } public void showAll(){//查看订单信息 Collection<ProductItem> productItems = map.values();//获取键值 Iterator<ProductItem> iterator = productItems.iterator(); while(iterator.hasNext()){ ProductItem productItem = iterator.next(); Product product = productItem.getProduct(); System.out.println("编号:"+product.getId()+",名称:" +product.getName()+",单价:"+product.getPrice()); } } public void deleteProduct(int productId){//删除商品 if(map.containsKey(productId)){ map.remove(productId); System.out.println("编号为:" + productId + "的商品删除成功!"); } else { System.out.println("删除失败!市场中无此商品!"); } } }