Java编程实现:用面向对象的思想解决购书优惠问题,书城会员等级分为三个等级,钻石会员,黄金会员,白银会员。钻石会 6/36 核算消费所有会员的消费 员享受6折待遇,黄金会员享受8折待遇,白银会员享受9折待遇,如果不是会员不享受任何折扣,为书城系统写一个系统
时间: 2024-03-13 11:45:47 浏览: 66
好的,我可以帮你解决这个问题。首先,我们需要定义三个会员类,分别是DiamondMember、GoldMember和SilverMember。每个会员类都有一个计算折扣的方法,根据会员等级返回相应的折扣。
然后我们需要一个Book类,包含书名、价格等属性。Book类还有一个计算折扣后的价格的方法,需要传入一个会员对象作为参数,这样就可以根据会员的等级计算出折扣后的价格。
最后,我们需要一个购物车类,用于保存用户购买的图书。购物车类有一个计算购物车总价的方法,需要遍历购物车中的图书,计算每本书的折扣后的价格,并累加到总价中。
下面是Java代码实现:
```java
// 会员类
public abstract class Member {
protected String name; // 会员名字
public Member(String name) {
this.name = name;
}
// 计算折扣
public abstract double calculateDiscount();
}
// 钻石会员
public class DiamondMember extends Member {
public DiamondMember(String name) {
super(name);
}
@Override
public double calculateDiscount() {
return 0.6; // 6折
}
}
// 黄金会员
public class GoldMember extends Member {
public GoldMember(String name) {
super(name);
}
@Override
public double calculateDiscount() {
return 0.8; // 8折
}
}
// 白银会员
public class SilverMember extends Member {
public SilverMember(String name) {
super(name);
}
@Override
public double calculateDiscount() {
return 0.9; // 9折
}
}
// 书类
public class Book {
private String name; // 书名
private double price; // 价格
public Book(String name, double price) {
this.name = name;
this.price = price;
}
// 计算折扣后的价格
public double calculatePrice(Member member) {
return price * member.calculateDiscount();
}
}
// 购物车类
public class ShoppingCart {
private List<Book> books = new ArrayList<>(); // 购物车中的书
// 添加书到购物车
public void addBook(Book book) {
books.add(book);
}
// 计算购物车总价
public double calculateTotalPrice(Member member) {
double totalPrice = 0;
for (Book book : books) {
totalPrice += book.calculatePrice(member);
}
return totalPrice;
}
}
```
使用示例:
```java
// 创建会员
Member diamondMember = new DiamondMember("John");
Member goldMember = new GoldMember("Alice");
Member silverMember = new SilverMember("Bob");
// 创建书
Book book1 = new Book("Java编程思想", 88);
Book book2 = new Book("Effective Java", 98);
// 创建购物车
ShoppingCart cart = new ShoppingCart();
// 添加书到购物车
cart.addBook(book1);
cart.addBook(book2);
// 计算购物车总价
double totalPrice1 = cart.calculateTotalPrice(diamondMember);
double totalPrice2 = cart.calculateTotalPrice(goldMember);
double totalPrice3 = cart.calculateTotalPrice(silverMember);
System.out.println("钻石会员购物车总价:" + totalPrice1);
System.out.println("黄金会员购物车总价:" + totalPrice2);
System.out.println("白银会员购物车总价:" + totalPrice3);
```
输出结果:
```
钻石会员购物车总价:86.4
黄金会员购物车总价:92.8
白银会员购物车总价:98.1
```
阅读全文