📄 cart.java
字号:
package data;import java.util.*;public class Cart { private Hashtable goods = new Hashtable(); private String customer = ""; //Cart类的构造器 public Cart() {} //添加商品的方法 public void addGoods(Hashtable goods){ //取得添加商品的ID集合 Enumeration newGoodsIds = goods.keys(); while(newGoodsIds.hasMoreElements()){ Object goodsId = newGoodsIds.nextElement(); //购买车的商品包括新添加商品 if(this.goods.containsKey(goodsId)){ //分解添加商品字符串 String[] newGoods = decodeGoodsStr(goods.get(goodsId).toString()); //分解购物车商品字符串 String[] oriGoods = decodeGoodsStr(this.goods.get(goodsId).toString()); //增加商品数量 int newQuantity = Integer.parseInt(newGoods[3]) + Integer.parseInt(oriGoods[3]); //将修改后的商品数量放入购物车的商品集合,覆盖原来的商品记录 this.goods.put(goodsId, newGoods[0] + "@@" + newGoods[1] + "@@" + newGoods[2] + "@@" + String.valueOf(newQuantity)); //购买车的商品不包括新添加商品 }else{ this.goods.put(goodsId, goods.get(goodsId)); } } } //修改商品数量的方法 public void updateGoods(Hashtable goods){ //取得修改商品的ID集合 Enumeration newGoodsIds = goods.keys(); while(newGoodsIds.hasMoreElements()){ Object goodsId = newGoodsIds.nextElement(); //覆盖购物车的商品记录 this.goods.put(goodsId, goods.get(goodsId)); } } //删除商品数量的方法 public void removeGoods(java.util.Collection goodsId){ java.util.Iterator goodsIdIterator = goodsId.iterator(); while(goodsIdIterator.hasNext()){ //删除购物车的商品记录 this.goods.remove(goodsIdIterator.next()); } } //分解商品字符串的方法 public String[] decodeGoodsStr(String goodStr){ //通过StringTokenizer类分解商品字符串 StringTokenizer goodsTokenizer = new StringTokenizer(goodStr, "@@"); String[] goods = new String[4]; int i = 0; //将分解后的商品信息放入数组,分别是产品名称、单位数量、单价和购买数量 while(goodsTokenizer.hasMoreTokens()){ goods[i] = goodsTokenizer.nextToken(); i++; } return goods; } //取得顾客名字的方法 public String getCustomer() { return customer; } //设置顾客名字的方法 public void setCustomer(String customer) { this.customer = customer; } //取得购物车商品集合类的方法 public Hashtable getGoods() { return goods; } //显示商品的方法 public Object[][] getGoodsobjs(){ Enumeration GoodsIds = goods.keys(); //创建商品数组 Object[][] goodsObjs = new Object[goods.size()+1][7]; //创建单个商品数组 String[] oneGoodsStrs = new String[4]; int row = 0; String goodsStr = ""; String goodsId = ""; double amount = 0; double oneGoodAmount = 0; int quantity = 0; while(GoodsIds.hasMoreElements()){ //取得商品标识 goodsId = (String)GoodsIds.nextElement(); //取得商品字符串 goodsStr = (String)goods.get(goodsId); //分解商品字符串 oneGoodsStrs = decodeGoodsStr(goodsStr); goodsObjs[row][0] = goodsId; //取得商品标识 goodsObjs[row][1] = oneGoodsStrs[0]; //取得商品名称 goodsObjs[row][2] = oneGoodsStrs[1]; //取得单位数量 goodsObjs[row][3] = new Double(oneGoodsStrs[2]); //取得单价 goodsObjs[row][4] = new Boolean(false); //是否修改 goodsObjs[row][5] = new Integer(oneGoodsStrs[3]); //取得购买数量 try{ oneGoodAmount = Double.parseDouble(oneGoodsStrs[2]) * Double.parseDouble(oneGoodsStrs[3]); quantity += Integer.parseInt(oneGoodsStrs[3]); //累加购买数量 }catch(Exception ex){ oneGoodAmount = 0; } //累加总金额 amount += oneGoodAmount; goodsObjs[row][6] = new Double(oneGoodAmount); //取得金额 row++; } //在最后一行显示总金额 goodsObjs[row][0] = "总金额"; goodsObjs[row][1] = ""; goodsObjs[row][2] = ""; double averagePrice = 0; //计算平均单价 if(quantity != 0){ averagePrice = Math.round((amount/quantity)*100); averagePrice /= 100; }else{ averagePrice = 0; } goodsObjs[row][3] = new Double(averagePrice); goodsObjs[row][4] = new Boolean(false); //是否修改 goodsObjs[row][5] = new Integer(quantity); //取得购买数量 goodsObjs[row][6] = new Double(amount); return goodsObjs; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -