Java:设计并实现购物车的逻辑存储,购买的若干商品和数量。包括商品的添加,删除,遍历输出及购物车的清空等方法。添加商品完成数量的累加; 删除商品,如果商品在购物车中,按数量删除,如果剩余数量小于等于零,则删除这个商品。设计所需的构造函数和成员函数。编写主函数测试 所写的功能。
时间: 2024-09-16 18:05:16 浏览: 65
在Java中,我们可以创建一个名为`ShoppingCart`的类来实现购物车的逻辑存储。下面是一个简单的示例,包括了构造函数、成员变量(商品列表和总数量)、添加商品、删除商品、遍历输出以及清空购物车的方法:
```java
import java.util.ArrayList;
import java.util.List;
public class ShoppingCart {
private List<CartItem> items; // 商品列表
private int totalPrice = 0; // 总价格
// 构造函数,初始化购物车为空
public ShoppingCart() {
this.items = new ArrayList<>();
}
// 商品项
class CartItem {
String name;
int quantity;
public CartItem(String name, int quantity) {
this.name = name;
this.quantity = quantity;
}
}
// 添加商品方法,增加数量
public void addItem(String name, int quantity) {
for (CartItem item : items) {
if (item.name.equals(name)) {
item.quantity += quantity;
totalPrice += quantity * calculatePriceForItem(item);
return;
}
}
CartItem newItem = new CartItem(name, quantity);
items.add(newItem);
totalPrice += quantity * calculatePriceForItem(newItem);
}
// 删除商品方法
public void removeItem(String name) {
for (Iterator<CartItem> iterator = items.iterator(); iterator.hasNext();) {
CartItem item = iterator.next();
if (item.name.equals(name)) {
int removalQuantity = Math.min(item.quantity, getAvailableQuantity());
item.quantity -= removalQuantity;
totalPrice -= removalQuantity * calculatePriceForItem(item);
if (item.quantity <= 0) {
iterator.remove();
} else {
break;
}
}
}
}
// 遍历输出商品信息
public void printItems() {
System.out.println("购物车内容:");
for (CartItem item : items) {
System.out.printf("%s x %d - %.2f元\n", item.name, item.quantity, item.quantity * calculatePriceForItem(item));
}
}
// 清空购物车
public void clearCart() {
items.clear();
totalPrice = 0;
}
// 计算单个商品的价格
private double calculatePriceForItem(CartItem item) {
// 这里假设每个商品都有price属性,实际应用中应从数据库或其他来源获取
return item.quantity * 10; // 仅作为示例,这里假定每个商品单价为10元
}
// 获取剩余可用数量
private int getAvailableQuantity(String name) {
for (CartItem item : items) {
if (item.name.equals(name)) {
return item.quantity;
}
}
return 0;
}
// 主函数测试购物车功能
public static void main(String[] args) {
ShoppingCart cart = new ShoppingCart();
// 测试添加和删除商品
cart.addItem("苹果", 5);
cart.addItem("香蕉", 3);
cart.removeItem("苹果");
cart.printItems();
// 清空购物车
cart.clearCart();
cart.printItems();
}
}
```
在这个例子中,我们首先创建了一个`ShoppingCart`类,包含一个内部类`CartItem`表示商品和其数量。然后实现了添加、删除、打印和清空购物车的基本操作。
在`main`函数中,我们进行了简单的测试,如添加商品、删除部分商品,以及最终清空购物车。
阅读全文