Java基础实现自动贩卖机

通过JavaSE的选择、循环、方法的重写、有参构造等知识点模拟实现自动贩卖机的功能

User,用户操作端

import java.util.Scanner;

public class User {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        shopping shopping = new shopping();
        System.out.println("欢迎使用自动贩卖机");
        System.out.println("是否进行购物:1、是\t2、否");
        int select = sc.nextInt();
        if (select == 1){
            shopping.show(1);
            System.out.println("请选择相应序号");
            int choose = sc.nextInt();
            while (choose >= 5){
                if (choose == 5){
                    System.out.println("库存充足哟。。。");
                    System.out.println("请再次选择相应序号");
                }else {
                    System.out.println("没有此商品,请重新选择");
                }
                choose = sc.nextInt();
            }
            System.out.println("请输入购买数量");
            int num = sc.nextInt();
            while (true){
                shopping.shop(choose,num);
                System.out.println();
                shopping.show();
                System.out.println("如继续购物,请再次选择相应序号");
                choose = sc.nextInt();
                while (choose >= 6){
                    if (choose == 6){
                        shopping.shop(6);
                        System.out.println("请再次选择相应序号");
                    }else {
                        System.out.println("没有此商品,请重新选择");
                    }
                    choose = sc.nextInt();
                }
                if(choose == 5){
                    System.out.println("欢迎下次光临!");
                    break;
                }
                System.out.println("请输入购买数量");
                num = sc.nextInt();
            }
        }else {
            System.out.println("欢迎下次光临!");
        }
    }
}

shopping,数据处理

public class shopping {
    goods cola = new goods("可口可乐",3,10);
    goods noodles = new goods("红烧牛肉面",5.5,10);
    goods ham = new goods("火腿肠",2.5,10);
    goods spicy = new goods("卫龙",0.5,100);

    public void show(){
        System.out.println("现还有以下商品供您选择:");
        System.out.println("1、"+cola.goodsname+"\t价格:"+cola.price+"\t剩余:"+cola.number);
        System.out.println("2、"+noodles.goodsname+"\t价格:"+noodles.price+"\t剩余:"+noodles.number);
        System.out.println("3、"+ham.goodsname+"\t价格:"+ham.price+"\t剩余:"+ham.number);
        System.out.println("4、"+spicy.goodsname+"\t价格:"+spicy.price+"\t剩余:"+spicy.number);
        System.out.println("5、退出购物");
        System.out.println("6、一键补货");
    }

    public void show(int i){
        System.out.println("现还有以下商品供您选择:");
        System.out.println("1、"+cola.goodsname+"\t价格:"+cola.price+"\t剩余:"+cola.number);
        System.out.println("2、"+noodles.goodsname+"\t价格:"+noodles.price+"\t剩余:"+noodles.number);
        System.out.println("3、"+ham.goodsname+"\t价格:"+ham.price+"\t剩余:"+ham.number);
        System.out.println("4、"+spicy.goodsname+"\t价格:"+spicy.price+"\t剩余:"+spicy.number);
        System.out.println("5、一键补货");
    }

    public void shop(int choose,int num){
            switch (choose){
                case 1:
                    if(cola.number == 0){
                        System.out.println("已售罄,等待补货!");
                    }else if (num>cola.number){
                        System.out.println("库存不足,请重新选择");
                    }else {
                        cola.number = cola.number - num;
                        success();
                    }
                    break;
                case 2:
                    if(noodles.number == 0){
                        System.out.println("已售罄,等待补货!");
                    }else if (num>noodles.number){
                        System.out.println("库存不足,请重新选择");
                    }else {
                        noodles.number = noodles.number - num;
                        success();
                    }
                    break;
                case 3:
                    if(ham.number == 0){
                        System.out.println("已售罄,等待补货!");
                    }else if (num>ham.number){
                        System.out.println("库存不足,请重新选择");
                    }else {
                        ham.number = ham.number - num;
                        success();
                    }
                    break;
                case 4:
                    if(spicy.number == 0){
                        System.out.println("已售罄,等待补货!");
                    }else if (num>spicy.number){
                        System.out.println("库存不足,请重新选择");
                    }else {
                        spicy.number = spicy.number - num;
                        success();
                    }
                    break;
                case 5:
                    System.out.println("欢迎下次光临!");
                    break;
                case 6:
                    System.out.println("补货ing......");
                    this.cola.number = 10;
                    this.noodles.number = 10;
                    this.ham.number = 10;
                    this.spicy.number = 100;
                    break;
                default:
                    System.out.println("没有此商品,请重新选择");
                    break;
            }
    }

    public void shop(int choose){
        switch (choose){
            case 5:
                System.out.println("欢迎下次光临!");
                break;
            case 6:
                System.out.println("补货ing......");
                System.out.println("补货完毕");
                System.out.println();
                this.cola.number = 10;
                this.noodles.number = 10;
                this.ham.number = 10;
                this.spicy.number = 100;
                break;
            default:
                System.out.println("没有此商品,请重新选择");
                break;
        }
    }

    public void success(){
        System.out.println("扫码支付中。。。");
        System.out.println("正在处理。。。");
        System.out.println("购买成功!");
    }
}

goods,构造

public class goods {
    String goodsname;   //商品名
    double price;          //价格
    int number;         //剩余数量

    public goods() {
    }

    public goods(String goodsname, double price, int number) {
        this.goodsname = goodsname;
        this.price = price;
        this.number = number;
    }
}

效果如下:在这里插入图片描述

  • 17
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的Java面向对象自动贩卖机程序的实现。 首先,我们需要定义一个VendingMachine类,它包含以下属性: - drinks:一个Drink类型的数组,表示自动贩卖机中的饮料种类。 - balance:一个double类型的变量,表示用户当前的余额。 VendingMachine类还应该包含以下方法: - VendingMachine(Drink[] drinks):构造方法,用于初始化自动贩卖机中的饮料种类。 - showDrinks():展示自动贩卖机中的饮料种类和价格。 - insertCoin(double coin):投入硬币,更新用户当前的余额。 - buy(int index):购买指定饮料种类,如果用户的余额不足,则提示用户需要继续投币。 下面是VendingMachine类的代码实现: ```java public class VendingMachine { private Drink[] drinks; private double balance; public VendingMachine(Drink[] drinks) { this.drinks = drinks; this.balance = 0; } public void showDrinks() { System.out.println("饮料种类\t价格"); for (int i = 0; i < drinks.length; i++) { System.out.println((i + 1) + ". " + drinks[i].getName() + "\t" + drinks[i].getPrice()); } } public void insertCoin(double coin) { this.balance += coin; System.out.println("当前余额:" + this.balance); } public void buy(int index) { Drink drink = drinks[index - 1]; if (balance >= drink.getPrice()) { System.out.println("购买成功," + drink.getName() + ",找零:" + (balance - drink.getPrice())); balance -= drink.getPrice(); } else { System.out.println("余额不足,请继续投币"); } } } ``` 接下来,我们需要定义一个Drink类,它包含以下属性: - name:一个String类型的变量,表示饮料名称。 - price:一个double类型的变量,表示饮料价格。 下面是Drink类的代码实现: ```java public class Drink { private String name; private double price; public Drink(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public double getPrice() { return price; } } ``` 最后,我们可以在main方法中创建一个VendingMachine对象,并调用它的方法来实现自动贩卖机的功能。下面是一个简单的示例代码: ```java public static void main(String[] args) { Drink[] drinks = {new Drink("可乐", 3.0), new Drink("雪碧", 2.5), new Drink("矿泉水", 1.5)}; VendingMachine machine = new VendingMachine(drinks); machine.showDrinks(); machine.insertCoin(2.0); machine.buy(1); } ``` 输出结果: ``` 饮料种类 价格 1. 可乐 3.0 2. 雪碧 2.5 3. 矿泉水 1.5 当前余额:2.0 购买成功,可乐,找零:1.0 ``` 以上就是一个简单的Java面向对象自动贩卖机程序的实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值