用Java语言设计并实现购物车的逻辑存储,购买的若干商品和数量。包括商品的添加,删除,遍历输出及购物车的清空等方法。添加商品完成数量的累加;删除商品,如果商品在购物车中,按数量删除,如果剩余数量小于等于零,则删除这个商品。设计所需的构造函数和成员函数。编写主函数测试所写的功能。
时间: 2024-09-16 21:03:31 浏览: 37
基于Java语言实现的购物车模块设计源码
在Java中,我们可以设计一个`ShoppingCart`类来表示购物车,包含商品列表和相关的操作方法。这里是一个简单的实现:
```java
import java.util.ArrayList;
import java.util.HashMap;
class Product {
String name;
int quantity;
public Product(String name, int quantity) {
this.name = name;
this.quantity = quantity;
}
// getter and setter methods for product properties
}
class ShoppingCart {
private ArrayList<Product> products;
private HashMap<String, Integer> productQuantities; // 使用HashMap保存商品名和对应数量
public ShoppingCart() {
products = new ArrayList<>();
productQuantities = new HashMap<>();
}
// 添加商品
public void addProduct(Product product) {
if (!productQuantities.containsKey(product.name)) {
productQuantities.put(product.name, product.quantity);
} else {
productQuantities.put(product.name, productQuantities.get(product.name) + product.quantity);
}
products.add(product);
}
// 删除商品
public void removeProduct(Product product) {
int currentQuantity = productQuantities.get(product.name);
if (currentQuantity > 0) {
productQuantities.put(product.name, currentQuantity - product.quantity);
if (currentQuantity == 0) {
products.removeIf(p -> p.name.equals(product.name));
}
}
}
// 遍历输出商品及其数量
public void printCart() {
for (Product product : products) {
System.out.println("商品:" + product.name + " 数量:" + product.quantity);
}
}
// 清空购物车
public void clearCart() {
products.clear();
productQuantities.clear();
}
}
public class Main {
public static void main(String[] args) {
// 测试购物车功能
ShoppingCart cart = new ShoppingCart();
// 添加商品
Product apple = new Product("苹果", 5);
Product banana = new Product("香蕉", 3);
cart.addProduct(apple);
cart.addProduct(banana);
// 遍历输出
cart.printCart();
// 删除商品
cart.removeProduct(apple);
cart.removeProduct(new Product("橙子", 2)); // 没有这个商品,不会抛出异常
// 输出删除后的状态
cart.printCart();
// 清空购物车
cart.clearCart();
System.out.println("购物车已清空");
}
}
```
这个示例中,我们首先创建了一个`Product`类来存储商品信息,然后在`ShoppingCart`类中实现了添加、删除、打印和清空购物车的方法。在`main`函数里,我们演示了如何使用这些方法来管理购物车。
阅读全文