首頁 > 軟體

java實現飲料自助售貨機

2022-02-08 13:01:58

本文範例為大家分享了java實現飲料自助售貨機的具體程式碼,供大家參考,具體內容如下

①使用者類

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("歡迎使用XX大學飲料自動販賣機");//系統提示語
        System.out.println("是否進行購物:1、是t2、否");//系統提示語
        
        int select = sc.nextInt();//儲存客戶輸入的數位
        if (select == 1)//如果客戶輸入的是「1」也就是需要進行購物
        {
            shopping.show();//列印商品列表
            System.out.println("請選擇相應編號!");//提示用於選擇商品
            int choose = sc.nextInt();//儲存客戶輸入的商品編號
            
            //邊界限定
            while (choose > 5 || choose <= 0)
            {
                System.out.println("沒有此商品,請重新選擇!");//提示使用者輸入的編碼沒有對應的商品
                choose = sc.nextInt();//再次儲存客戶輸入的編號
            }
            
            if(choose == 5)//如果是「5」退出購物
            {
                System.out.println("歡迎您下次光臨!");
                return ;
            }
            
            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 > 5 || choose <= 0)
                {
                    System.out.println("沒有此商品,請重新選擇!");
                    choose = sc.nextInt();
                }
                if(choose == 5)
                {
                    System.out.println("歡迎您下次光臨!");
                    break;
                }
                
                System.out.println("請輸入購買數量");//提示語
                num = sc.nextInt();//儲存客戶購買數量
            }
        }
        else//選擇「2」不進行購物
        {
            System.out.println("歡迎下次光臨!");
        }
    }
}

②購買類

//購買類
 class shopping 
 {
    //建立商品
    goods beer = new goods("啤酒",3,30);
    goods juice = new goods("匯源橙汁",3,20);
    goods water = new goods("農夫山泉",2,30);
    goods coffee = new goods("雀巢咖啡",5,20);

    //顯示函數
    public void show()
    {
        System.out.println("現還有以下商品供您選擇:");
        System.out.println("1、"+beer.goodsname+"t價格:"+beer.price+"t剩餘:"+beer.number);
        System.out.println("2、"+juice.goodsname+"t價格:"+juice.price+"t剩餘:"+juice.number);
        System.out.println("3、"+water.goodsname+"t價格:"+water.price+"t剩餘:"+water.number);
        System.out.println("4、"+coffee.goodsname+"t價格:"+coffee.price+"t剩餘:"+coffee.number);
        System.out.println("5、退出購物");
    }

    //購買函數
    public void shop(int choose,int num)
    {
            switch (choose)
            {
                case 1://如果選擇的是商品「1」
                    if(beer.number == 0)//如果當前的庫存為0
                    {
                        System.out.println("商品已售完,等待補貨!");//提示使用者商品已售完
                    }
                    else if(num>beer.number)//如果使用者需要購買的數量大於庫存的數量
                    {
                        System.out.println("您需要購買的商品庫存不足,請重新選擇!");//提示使用者當前商品庫存不足
                    }
                    else
                    {
                        beer.number = beer.number - num;//更改庫存數量=購買前的庫存數量-使用者購買的數量
                        success();//提示使用者購買成功
                    }
                    break;
                case 2://如果選擇的是商品「2」
                    if(juice.number == 0)//如果當前的庫存為0
                    {
                        System.out.println("商品已售完,等待補貨!");//提示使用者商品已售完
                    }
                    else if (num>juice.number)//如果使用者需要購買的數量大於庫存的數量
                    {
                        System.out.println("您需要購買的商品庫存不足,請重新選擇!");//提示使用者當前商品庫存不足
                    }
                    else 
                    {
                        juice.number = juice.number - num;//更改庫存數量=購買前的庫存數量-使用者購買的數量
                        success();//提示使用者購買成功
                    }
                    break;
                case 3://如果選擇的是商品「3」
                    if(water.number == 0)//如果當前的庫存為0
                    {
                        System.out.println("商品已售完,等待補貨!");//提示使用者商品已售完
                    }
                    else if (num>water.number)//如果使用者需要購買的數量大於庫存的數量
                    {
                        System.out.println("您需要購買的商品庫存不足,請重新選擇!");//提示使用者當前商品庫存不足
                    }
                    else 
                    {
                        water.number = water.number - num;//更改庫存數量=購買前的庫存數量-使用者購買的數量
                        success();//提示使用者購買成功
                    }
                    break;
                case 4://如果選擇的是商品「4」
                    if(coffee.number == 0)//如果當前的庫存為0
                    {
                        System.out.println("商品已售完,等待補貨!");//提示使用者商品已售完
                    }
                    else if (num>coffee.number)//如果使用者需要購買的數量大於庫存的數量
                    {
                        System.out.println("您需要購買的商品庫存不足,請重新選擇!");//提示使用者當前商品庫存不足
                    }
                    else 
                    {
                        coffee.number = coffee.number - num;//更改庫存數量=購買前的庫存數量-使用者購買的數量
                        success();//提示使用者購買成功
                    }
                    break;
                case 5://如果輸入的是「5」
                    System.out.println("歡迎您下次光臨!");//提示語
                    break;
                default://其他
                    System.out.println("沒有此商品,請重新選擇");//提示語
                    break;
            }
    }

    //如果購買成功列印函數內容
    public void success()
    {
        System.out.println("請選擇你的支付方式");
    System.out.println("1、掃碼支付t2、投幣支付");//系統提示語
    Scanner sc = new Scanner(System.in);
int select = sc.nextInt();
if(select == 1)
{
System.out.println("請掃螢幕下方的二維條碼進行支付");
                System.out.println("購買成功!");
}else if(select==2){
    System.out.println("請投入硬幣");
}
        else
{
System.out.println("歡迎您下次光臨!");
}
    }
}

③商品類

//商品類
 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;
    }
 }

功能測試

測試可以從以下方面進行,並給出截圖:

①顧客開始使用飲料自助售貨機,進入系統主介面:使用者可以根據介面提示選擇是否開始購物:
②當顧客選擇不購物,那麼即將退出系統:
③若顧客選擇了購物,那麼將進入購物介面,系統將展示所有的商品資訊,以供選擇。在商品資訊中,根據商品編號,可以選擇自己想要的商品,假設此時使用者選擇了啤酒,並且購買數量為15瓶:
④購買完之後進行結賬,本系統提供兩種結賬方式,一種是掃碼支付,一種是投幣支付,假設現在顧客選擇了投幣支付:
⑤在顧客第一次買完啤酒後,原本庫存為30現在減少為15,然後現在庫存還剩15,假使此時又有一個顧客需要購買50瓶啤酒,很明顯庫存不夠,那麼此時將給出提示,使用者無法完成購買:
⑥加入使用者在購物時選擇了掃碼支付,那麼系統將提示使用者掃螢幕下方的支付碼完成支付:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com