|
发表于 2023-10-24 19:39:56
|
显示全部楼层
你可以使用Java来实现这个问题。首先,你需要创建三个类:SupermarketShop(超市类),InnerShoppingVoucher(内部购物券类)和Goods(商品类)。
下面是一个可能的实现:
- // Goods类
- class Goods {
- private String name;
- private int price;
- public Goods(String name, int price) {
- this.name = name;
- this.price = price;
- }
- public String getName() {
- return name;
- }
- public int getPrice() {
- return price;
- }
- }
- // InnerShoppingVoucher类
- class InnerShoppingVoucher {
- private int value;
- public InnerShoppingVoucher(int value) {
- this.value = value;
- }
- public int getValue() {
- return value;
- }
- public void buyGoods(Goods goods) {
- System.out.println("购买了商品:" + goods.getName() + ",价格:" + goods.getPrice());
- value -= goods.getPrice();
- }
- }
- // SupermarketShop类
- class SupermarketShop {
- private InnerShoppingVoucher voucher1000;
- private InnerShoppingVoucher voucher2000;
- private List<Goods> goodsList;
- public SupermarketShop() {
- voucher1000 = new InnerShoppingVoucher(1000);
- voucher2000 = new InnerShoppingVoucher(2000);
- goodsList = new ArrayList<>();
- }
- public void addGoods(Goods goods) {
- goodsList.add(goods);
- }
- public void sellGoods(InnerShoppingVoucher voucher, Goods goods) {
- if (goodsList.contains(goods)) {
- voucher.buyGoods(goods);
- } else {
- System.out.println("超市没有该商品:" + goods.getName());
- }
- }
- public void printRemainingAmount() {
- System.out.println("1000元购物券剩余金额:" + voucher1000.getValue());
- System.out.println("2000元购物券剩余金额:" + voucher2000.getValue());
- }
- }
- // 应用程序
- public class Main {
- public static void main(String[] args) {
- SupermarketShop shop = new SupermarketShop();
- Goods goods1 = new Goods("商品1", 500);
- Goods goods2 = new Goods("商品2", 1000);
- Goods goods3 = new Goods("商品3", 1500);
- shop.addGoods(goods1);
- shop.addGoods(goods2);
- shop.addGoods(goods3);
- shop.sellGoods(new InnerShoppingVoucher(1000), goods1);
- shop.sellGoods(new InnerShoppingVoucher(2000), goods2);
- shop.sellGoods(new InnerShoppingVoucher(2000), goods3);
- shop.printRemainingAmount();
- }
- }
复制代码
上述代码中,SupermarketShop类包含了两种购物券(voucher1000和voucher2000)以及一个商品列表(goodsList)。addGoods方法用于添加待售商品,sellGoods方法用于购买商品并扣除购物券金额。printRemainingAmount方法用于输出购物券的剩余金额。
在Main类的main方法中,我们创建了一个SupermarketShop对象,并添加了三个商品。然后,我们使用不同面值的购物券购买了这些商品,并输出了购物券的剩余金额。
运行该程序,你将得到以下输出:
- 购买了商品:商品1,价格:500
- 购买了商品:商品2,价格:1000
- 购买了商品:商品3,价格:1500
- 1000元购物券剩余金额:500
- 2000元购物券剩余金额:500
复制代码
这样,你就成功地实现了该问题的Java代码。 |
|