java优惠卷实现 用户获得了一张20元抵用卷,现在五项商品可以使用抵用卷,用户只能选择一种选项进行使用 用户选择后,用户付钱并找零
时间: 2024-09-12 19:11:04 浏览: 67
基于逻辑回归对优惠券使用情况预测分析数据集
在Java中实现优惠券功能,可以采用面向对象的设计方法。首先,我们可以定义一个`Coupon`类来表示优惠券,这个类可以包含优惠券的金额、状态(是否已使用)、有效期等属性。然后,可以创建一个`Product`类来表示商品,包含商品的价格、名称等信息。为了使用优惠券,我们还需要一个`ShoppingCart`类,它负责管理商品和应用优惠券。以下是这些类的基本结构和功能实现:
1. `Coupon`类(优惠券类):
```java
public class Coupon {
private double value; // 抵用金额
private boolean used; // 是否已经使用过
public Coupon(double value) {
this.value = value;
this.used = false;
}
public double getValue() {
return value;
}
public boolean isUsed() {
return used;
}
public void use() {
used = true;
}
}
```
2. `Product`类(商品类):
```java
public class Product {
private String name;
private double price;
public Product(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
}
```
3. `ShoppingCart`类(购物车类):
```java
import java.util.ArrayList;
import java.util.List;
public class ShoppingCart {
private List<Product> products = new ArrayList<>();
private Coupon coupon;
public void addProduct(Product product) {
products.add(product);
}
public void applyCoupon(Coupon coupon) {
if (coupon != null && !coupon.isUsed()) {
this.coupon = coupon;
System.out.println("已应用优惠券,优惠金额:" + coupon.getValue() + "元");
} else {
System.out.println("优惠券无效或已被使用");
}
}
public double calculateTotal() {
double total = 0;
for (Product product : products) {
total += product.getPrice();
}
if (coupon != null && !coupon.isUsed()) {
total -= coupon.getValue();
}
return total;
}
public void checkout(double payment) {
double total = calculateTotal();
if (payment >= total) {
double change = payment - total;
System.out.println("用户需支付:" + total + "元,找零:" + change + "元");
} else {
System.out.println("支付金额不足");
}
}
}
```
4. 使用示例:
```java
public class Main {
public static void main(String[] args) {
Product product1 = new Product("商品1", 50);
Product product2 = new Product("商品2", 80);
Product product3 = new Product("商品3", 100);
Product product4 = new Product("商品4", 120);
Product product5 = new Product("商品5", 150);
ShoppingCart cart = new ShoppingCart();
cart.addProduct(product1);
cart.addProduct(product2);
cart.addProduct(product3);
cart.addProduct(product4);
cart.addProduct(product5);
Coupon coupon = new Coupon(20);
cart.applyCoupon(coupon);
double payment = 250; // 假设用户支付了250元
cart.checkout(payment);
}
}
```
在这个例子中,用户添加了五项商品到购物车,并应用了一张20元的优惠券。然后用户付了250元,程序会计算用户需要支付的总金额,并根据优惠券抵扣相应的金额,最后输出找零的金额。
阅读全文