用java代码写一个简单的网上购物车程序

本文将介绍如何使用Java编程语言来创建一个简单的购物车应用。包括定义商品类(包含编号、名称、分类和单价属性),商品条目信息类(包含商品对象和数量,以及计算商品总价的方法),购物车类(提供添加、查看、删除、修改和清空购物车的功能,以及计算购物车内所有商品总金额的方法)。最后,通过一个测试类验证所有功能的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:1、写一个商品类,有商品编号、商品名称、商品分类、商品单价属性。2、写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法。

3、写一个购物车类,有添加商品方法、查看订单信息,删除商品,修改商品,清空购物车,求购物车中所有商品总金额方法。4、写一个测试类,测试上述方法。

商品类:

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

	public Product() {// 无参构造
		super();
	}

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

	public String toString() {
		return "Product [productId=" + productId + ", productName="
				+ productName + ", category=" + category + ", price=" + price
				+ "]";
	}

	public int 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 String getCategory() {
		return category;
	}

	public void setCategory(String category) {
		this.category = category;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

}
商品条目信息类:


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;
	}
	
}

购物车类:

import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
public class ShoppingCart {//购物车
	//key:商品编号 value:商品条目
	private Map<Integer,ProductItem> map=new LinkedHashMap<Integer,ProductItem>();
	
	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));
		}
	}
	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.getProductId()+",商品名称:"
			+product.getProductName()+",单价:"+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();
	}
	
	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 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.addProduct(p3);
		cart.addProduct(p4);
		cart.addProduct(p5);
		cart.addProduct(p6);
		cart.showAll();
		System.out.println("############");
		boolean flag=cart.deleteProduct(p2.getProductId());
		if(flag){
			System.out.println("商品编号为:"+p2.getProductId()+"的商品删除成功!");
		}else{
			System.out.println("删除失败");
		}
		cart.showAll();
		System.out.println("############");
		boolean flag2=cart.modifyProduct(p3.getProductId(), 2);
		if(flag2){
			System.out.println("商品编号为:"+p3.getProductId()+"的商品修改成功!");
		}else{
			System.out.println("修改失败");
		}
		cart.showAll();
		
		//cart.clearCart();
		//cart.showAll();
		System.out.println("商品总价钱为:"+cart.totalAllMoney());

	}

}
运行效果图:




评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值