鱼C论坛

 找回密码
 立即注册
查看: 1651|回复: 2

怎么用Java实现啊

[复制链接]
发表于 2023-10-24 19:38:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
3.某超市为了促销决定发行内部购物券,其它超市不能发行该购物券。请设计超市类SupermarketShop以及超市类的内部购物券InnerShoppingVoucher类,待售的商品Goods类。SupermarketShop类有两种不同的购物券(购物券分为1000元和2000元两种)以及若干待售商品,Goods有商品名称和价格,InnerShoppingVoucher类有面值属性并可以购买超市中的任何物品。请编写应用程序测试以上类,并输出每张购物券剩余金额。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-24 19:39:56 | 显示全部楼层
你可以使用Java来实现这个问题。首先,你需要创建三个类:SupermarketShop(超市类),InnerShoppingVoucher(内部购物券类)和Goods(商品类)。

下面是一个可能的实现:

  1. // Goods类
  2. class Goods {
  3.     private String name;
  4.     private int price;

  5.     public Goods(String name, int price) {
  6.         this.name = name;
  7.         this.price = price;
  8.     }

  9.     public String getName() {
  10.         return name;
  11.     }

  12.     public int getPrice() {
  13.         return price;
  14.     }
  15. }

  16. // InnerShoppingVoucher类
  17. class InnerShoppingVoucher {
  18.     private int value;

  19.     public InnerShoppingVoucher(int value) {
  20.         this.value = value;
  21.     }

  22.     public int getValue() {
  23.         return value;
  24.     }

  25.     public void buyGoods(Goods goods) {
  26.         System.out.println("购买了商品:" + goods.getName() + ",价格:" + goods.getPrice());
  27.         value -= goods.getPrice();
  28.     }
  29. }

  30. // SupermarketShop类
  31. class SupermarketShop {
  32.     private InnerShoppingVoucher voucher1000;
  33.     private InnerShoppingVoucher voucher2000;
  34.     private List<Goods> goodsList;

  35.     public SupermarketShop() {
  36.         voucher1000 = new InnerShoppingVoucher(1000);
  37.         voucher2000 = new InnerShoppingVoucher(2000);
  38.         goodsList = new ArrayList<>();
  39.     }

  40.     public void addGoods(Goods goods) {
  41.         goodsList.add(goods);
  42.     }

  43.     public void sellGoods(InnerShoppingVoucher voucher, Goods goods) {
  44.         if (goodsList.contains(goods)) {
  45.             voucher.buyGoods(goods);
  46.         } else {
  47.             System.out.println("超市没有该商品:" + goods.getName());
  48.         }
  49.     }

  50.     public void printRemainingAmount() {
  51.         System.out.println("1000元购物券剩余金额:" + voucher1000.getValue());
  52.         System.out.println("2000元购物券剩余金额:" + voucher2000.getValue());
  53.     }
  54. }

  55. // 应用程序
  56. public class Main {
  57.     public static void main(String[] args) {
  58.         SupermarketShop shop = new SupermarketShop();

  59.         Goods goods1 = new Goods("商品1", 500);
  60.         Goods goods2 = new Goods("商品2", 1000);
  61.         Goods goods3 = new Goods("商品3", 1500);

  62.         shop.addGoods(goods1);
  63.         shop.addGoods(goods2);
  64.         shop.addGoods(goods3);

  65.         shop.sellGoods(new InnerShoppingVoucher(1000), goods1);
  66.         shop.sellGoods(new InnerShoppingVoucher(2000), goods2);
  67.         shop.sellGoods(new InnerShoppingVoucher(2000), goods3);

  68.         shop.printRemainingAmount();
  69.     }
  70. }
复制代码


上述代码中,SupermarketShop类包含了两种购物券(voucher1000和voucher2000)以及一个商品列表(goodsList)。addGoods方法用于添加待售商品,sellGoods方法用于购买商品并扣除购物券金额。printRemainingAmount方法用于输出购物券的剩余金额。

在Main类的main方法中,我们创建了一个SupermarketShop对象,并添加了三个商品。然后,我们使用不同面值的购物券购买了这些商品,并输出了购物券的剩余金额。

运行该程序,你将得到以下输出:

  1. 购买了商品:商品1,价格:500
  2. 购买了商品:商品2,价格:1000
  3. 购买了商品:商品3,价格:1500
  4. 1000元购物券剩余金额:500
  5. 2000元购物券剩余金额:500
复制代码


这样,你就成功地实现了该问题的Java代码。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-29 17:48:58 | 显示全部楼层
isdkz 发表于 2023-10-24 19:39
你可以使用Java来实现这个问题。首先,你需要创建三个类:SupermarketShop(超市类),InnerShoppingVouche ...

类图怎么写嘞?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 03:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表