角落艺术家

导航

面向对象大作业-第一次-购物车

购物车程序的面向对象设计

成员任务分配

任务 姓名
代码编写、博客制作 郑文华
前期调查、功能设计 任媛

一、目标:

学会使用讲故事的方式找到系统中可能包含的类与属性
理解封装

二、前期调查

当今,网上购物早已成为一种常态,网上购物给人们提供了很大的便利。下面,以淘宝为例,来看看购物车系统都有些什么功能。首先,在商品的界面,我们清楚的可以看见商品的名称以及单价,还有一些其他商品信息介绍。我们可以对商品将添加入购物车。

在购物车里,可以增加商品数量,减少商品数量,删除商品,查找商品等。

勾选商品,进行结算。

三、系统功能结构图

四、系统描述

将选定的商品放入购物车,在购物车内可以存放多种类型的商品,用户还可以删除选中商品、清空购物车、增加减少商品数量,计算购物车内所有商品的数量价格,用户可以在购物车内进行结算,生成订单。

五、 UML类图

六、项目包结构与关键代码

商品

package Shoppingcart;

public class Product {
	private Integer productId;// 商品编号
	private String productName;// 商品名称
	private double price;// 单价

	public Product(Integer productId, String productName,double price) {
		this.productId = productId;
		this.productName = productName;
		this.price = price;
	}

      

	public Integer getProductId() {
		return productId;
	}

	public void setProductId(int productId) {
		this.productId = productId;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

        public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}
	
	  @Override
	public String toString() {
		return "Product [productId=" + productId + ", productName=" + productName + ", price=" + price + "]";
	}
	

}



购物车功能
package shoppingcar;


import java.util.*;

public class ShoppingCar {

	private HashMap<Product,Integer> shoppingcar;
	 
	public ShoppingCar() {
		shoppingcar = new HashMap<Product,Integer>();
	}
 
	public HashMap<Product,Integer> getShopping_car() {
		return shoppingcar;
	}
	
	public void addProduct(Product product,int num) {
		shoppingcar.merge(product, num, Integer::sum);
	}
	
	public void reduceProduct(Product product) {
		shoppingcar.remove(product);
 
	}
	
	public double TotalPrice(){
		double sum = 0;
		
		for (Product key : shoppingcar.keySet()) {
			sum = sum + shoppingcar.get(key) * key.getPrice();
		}
		return sum;
	}
	
	public void clearShoppingCar() {
		shoppingcar.clear();
	}
}

posted on 2021-10-07 23:36  角落艺术家  阅读(260)  评论(0编辑  收藏  举报