角落艺术家

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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

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

成员任务分配

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

一、目标:

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

二、前期调查

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

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

勾选商品,进行结算。

三、系统功能结构图

四、系统描述

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

五、 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   角落艺术家  阅读(273)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示