java實現飲料自助售貨機
本文實例為大家分享了java實現飲料自助售貨機的具體代碼,供大家參考,具體內容如下
①用戶類
import java.util.Scanner; //用戶類 public class User? { ? ? public static void main(String[] args)//主函數 ? ? { ? ? ? ? Scanner sc = new Scanner(System.in); ? ? ? ? shopping shopping = new shopping();//創(chuàng)建對象 ? ? ? ?? ? ? ? ? System.out.println("歡迎使用XX大學飲料自動販賣機");//系統(tǒng)提示語 ? ? ? ? System.out.println("是否進行購物:1、是\t2、否");//系統(tǒng)提示語 ? ? ? ?? ? ? ? ? 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("如繼續(xù)購物,請再次選擇相應編號!"); ? ? ? ? ? ? ? ? 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? ?{ ?? ?//創(chuàng)建商品 ? ? 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、投幣支付");//系統(tǒng)提示語 ? ? 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; ? ? } ?}
功能測試
測試可以從以下方面進行:
①顧客開始使用飲料自助售貨機,進入系統(tǒng)主界面:用戶可以根據界面提示選擇是否開始購物:
②當顧客選擇不購物,那么即將退出系統(tǒng):
③若顧客選擇了購物,那么將進入購物界面,系統(tǒng)將展示所有的商品信息,以供選擇。在商品信息中,根據商品編號,可以選擇自己想要的商品,假設此時用戶選擇了啤酒,并且購買數量為15瓶:
④購買完之后進行結賬,本系統(tǒng)提供兩種結賬方式,一種是掃碼支付,一種是投幣支付,假設現在顧客選擇了投幣支付:
⑤在顧客第一次買完啤酒后,原本庫存為30現在減少為15,然后現在庫存還剩15,假使此時又有一個顧客需要購買50瓶啤酒,很明顯庫存不夠,那么此時將給出提示,用戶無法完成購買:
⑥加入用戶在購物時選擇了掃碼支付,那么系統(tǒng)將提示用戶掃屏幕下方的支付碼完成支付:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java8中用foreach循環(huán)獲取對象的index下標詳解
這篇文章主要給大家介紹了關于Java8中用foreach循環(huán)獲取對象的index下標的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04微服務?Spring?Boot?整合?Redis?BitMap?實現?簽到與統(tǒng)計功能
這篇文章主要介紹了微服務?Spring?Boot?整合?Redis?BitMap?實現?簽到與統(tǒng)計功能,文章簡單介紹了Redis BitMap 基本用法結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-01-01淺談JAVA實現選擇排序,插入排序,冒泡排序,以及兩個有序數組的合并
這篇文章主要介紹了JAVA實現選擇排序,插入排序,冒泡排序,以及兩個有序數組的合并,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03SpringBoot整合screw實現數據庫文檔自動生成的示例代碼
這篇文章主要介紹了SpringBoot整合screw實現數據庫文檔自動生成的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09使用RestTemplate訪問https實現SSL請求操作
這篇文章主要介紹了使用RestTemplate訪問https實現SSL請求操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10