鱼C论坛

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

怎么用Java实现啊

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

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

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

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

使用道具 举报

发表于 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代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

类图怎么写嘞?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-3 21:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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