Java面向对象课程设计——购物车

0.人员分工。

| 代码 | 博客 |
| ---- | ---- | ---- |
| 邓宏 | 姚庆荣 |

1.前期调查。

客人先在商城中浏览商品,将浏览的商品加入购物车,最后通过购物车生成订单,支付购买结束。

2.系统功能结构图。

业务流程图

功能结构图

3.系统描述:购物车程序:先将商城中的商品进行包装,表明商品编号商品名称商品类型商品单价作为商品类的属性。当顾客浏览商城时选中待购买的商品,需从商品类中提取有关商品信息,并根据商品的单价数量计算该类商品的价格,最后在用户界面显示商品的信息价格

4.UML类图:



5.本系统哪里体现了面向对象的封装性。

在ProductItem.java中

public class ProductItem {

	private Product product;//购买的商品
	private int count;//商品数量
	public double totalMoney(){//小计
		double price=product.getPrice();//获取商品单价
		return price*count;
	}
	
	public ProductItem() {
		super();
	}
	 
	public ProductItem(Product product, int count) {
		super();
		this.product = product;
		this.count = count;
	}
	 
	public Product getProduct() {
		return product;
	}
	public void setProduct(Product product) {
		this.product = product;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}

}

pubilc、private体现了面向对象的封装性;

**商品的属性、商品属性的获取方式、购物车中商品的添加可以体现面向对象的封装性;

6.项目包结构与关键代码:项目的包结构(为什么要这样设计包结构),主要功能(如网购物车添加、删除商品)的流程图与关键代码。

该项目的包结构可以保证在后期进行程序修改时更为简便。

6.1 商品添加

流程图

关键代码

public void addProduct(Product p){//添加商品
		int productId=p.getProductId();
		if(map.containsKey(productId)){
			ProductItem productItem=map.get(productId);
			productItem.setCount(productItem.getCount()+1);
		}else{
			map.put(productId, new ProductItem(p,1));
		}
	}

6.2 购物车展示

流程图

关键代码

public class ShoppingCartTest {
	public static void main(String[] args) {
		ShoppingCart cart=new ShoppingCart();
		Product p1=new Product(101,"华硕笔记本","笔记本",4599);
		Product p2=new Product(102,"苹果","水果",5.9);
		Product p3=new Product(103,"彩电","家电",2799);
		Product p4=new Product(104,"秋裤","服装",128);
		Product p5=new Product(105,"华为手机","手机",2998);
		Product p6=new Product(101,"华硕笔记本","笔记本",4599);
		cart.addProduct(p1);
		cart.addProduct(p2);
		cart.showAll();

 
	}
}

posted @ 2021-10-04 21:28  年少不知头发贵  阅读(430)  评论(0编辑  收藏  举报