song0820

Java--购物车

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("删除失败!市场中无此商品!");
		}
	}
}

分类:

技术点:

相关文章: