| 
 | 
 
 
发表于 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代码。 |   
 
 
 
 |