java實(shí)現(xiàn)飲料自助售貨機(jī)
本文實(shí)例為大家分享了java實(shí)現(xiàn)飲料自助售貨機(jī)的具體代碼,供大家參考,具體內(nèi)容如下
①用戶類(lèi)
import java.util.Scanner; //用戶類(lèi) public class User? { ? ? public static void main(String[] args)//主函數(shù) ? ? { ? ? ? ? Scanner sc = new Scanner(System.in); ? ? ? ? shopping shopping = new shopping();//創(chuàng)建對(duì)象 ? ? ? ?? ? ? ? ? System.out.println("歡迎使用XX大學(xué)飲料自動(dòng)販賣(mài)機(jī)");//系統(tǒng)提示語(yǔ) ? ? ? ? System.out.println("是否進(jìn)行購(gòu)物:1、是\t2、否");//系統(tǒng)提示語(yǔ) ? ? ? ?? ? ? ? ? int select = sc.nextInt();//保存客戶輸入的數(shù)字 ? ? ? ? if (select == 1)//如果客戶輸入的是“1”也就是需要進(jìn)行購(gòu)物 ? ? ? ? { ? ? ? ? ? ? shopping.show();//打印商品列表 ? ? ? ? ? ? System.out.println("請(qǐng)選擇相應(yīng)編號(hào)!");//提示用于選擇商品 ? ? ? ? ? ? int choose = sc.nextInt();//保存客戶輸入的商品編號(hào) ? ? ? ? ? ?? ? ? ? ? ? ? //邊界限定 ? ? ? ? ? ? while (choose > 5 || choose <= 0) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? System.out.println("沒(méi)有此商品,請(qǐng)重新選擇!");//提示用戶輸入的編碼沒(méi)有對(duì)應(yīng)的商品 ? ? ? ? ? ? ? ? choose = sc.nextInt();//再次保存客戶輸入的編號(hào) ? ? ? ? ? ? } ? ? ? ? ? ?? ? ? ? ? ? ? if(choose == 5)//如果是“5”退出購(gòu)物 ? ? ? ? ? ? { ? ? ? ? ? ? ? ? System.out.println("歡迎您下次光臨!"); ? ? ? ? ? ? ? ? return ; ? ? ? ? ? ? } ? ? ? ? ? ?? ? ? ? ? ? ? System.out.println("請(qǐng)輸入購(gòu)買(mǎi)數(shù)量!");//提示用戶輸入需要購(gòu)買(mǎi)的數(shù)量 ? ? ? ? ? ? int num = sc.nextInt();//保存用戶需要購(gòu)買(mǎi)的數(shù)量 ? ? ? ? ? ?? ? ? ? ? ? ? while (true) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? shopping.shop(choose,num);//調(diào)用購(gòu)買(mǎi)函數(shù) ? ? ? ? ? ? ? ? System.out.println(); ? ? ? ? ? ? ? ? shopping.show();//顯示購(gòu)買(mǎi)后的商品列表 ? ? ? ? ? ? ? ? System.out.println("如繼續(xù)購(gòu)物,請(qǐng)?jiān)俅芜x擇相應(yīng)編號(hào)!"); ? ? ? ? ? ? ? ? choose = sc.nextInt();//保存用戶輸入的商品編號(hào) ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? //邊界限定 ? ? ? ? ? ? ? ? while (choose > 5 || choose <= 0) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? System.out.println("沒(méi)有此商品,請(qǐng)重新選擇!"); ? ? ? ? ? ? ? ? ? ? choose = sc.nextInt(); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if(choose == 5) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? System.out.println("歡迎您下次光臨!"); ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? System.out.println("請(qǐng)輸入購(gòu)買(mǎi)數(shù)量");//提示語(yǔ) ? ? ? ? ? ? ? ? num = sc.nextInt();//保存客戶購(gòu)買(mǎi)數(shù)量 ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? else//選擇“2”不進(jìn)行購(gòu)物 ? ? ? ? { ? ? ? ? ? ? System.out.println("歡迎下次光臨!"); ? ? ? ? } ? ? } }
②購(gòu)買(mǎi)類(lèi)
//購(gòu)買(mǎi)類(lèi) ?class shopping? ?{ ?? ?//創(chuàng)建商品 ? ? goods beer = new goods("啤酒",3,30); ? ? goods juice = new goods("匯源橙汁",3,20); ? ? goods water = new goods("農(nóng)夫山泉",2,30); ? ? goods coffee = new goods("雀巢咖啡",5,20); ? ? //顯示函數(shù) ? ? public void show() ? ? { ? ? ? ? System.out.println("現(xiàn)還有以下商品供您選擇:"); ? ? ? ? System.out.println("1、"+beer.goodsname+"\t價(jià)格:"+beer.price+"\t剩余:"+beer.number); ? ? ? ? System.out.println("2、"+juice.goodsname+"\t價(jià)格:"+juice.price+"\t剩余:"+juice.number); ? ? ? ? System.out.println("3、"+water.goodsname+"\t價(jià)格:"+water.price+"\t剩余:"+water.number); ? ? ? ? System.out.println("4、"+coffee.goodsname+"\t價(jià)格:"+coffee.price+"\t剩余:"+coffee.number); ? ? ? ? System.out.println("5、退出購(gòu)物"); ? ? } ? ? //購(gòu)買(mǎi)函數(shù) ? ? public void shop(int choose,int num) ? ? { ? ? ? ? ? ? switch (choose) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? case 1://如果選擇的是商品“1” ? ? ? ? ? ? ? ? ? ? if(beer.number == 0)//如果當(dāng)前的庫(kù)存為0 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("商品已售完,等待補(bǔ)貨!");//提示用戶商品已售完 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else if(num>beer.number)//如果用戶需要購(gòu)買(mǎi)的數(shù)量大于庫(kù)存的數(shù)量 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("您需要購(gòu)買(mǎi)的商品庫(kù)存不足,請(qǐng)重新選擇!");//提示用戶當(dāng)前商品庫(kù)存不足 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? beer.number = beer.number - num;//更改庫(kù)存數(shù)量=購(gòu)買(mǎi)前的庫(kù)存數(shù)量-用戶購(gòu)買(mǎi)的數(shù)量 ? ? ? ? ? ? ? ? ? ? ? ? success();//提示用戶購(gòu)買(mǎi)成功 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 2://如果選擇的是商品“2” ? ? ? ? ? ? ? ? ? ? if(juice.number == 0)//如果當(dāng)前的庫(kù)存為0 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("商品已售完,等待補(bǔ)貨!");//提示用戶商品已售完 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else if (num>juice.number)//如果用戶需要購(gòu)買(mǎi)的數(shù)量大于庫(kù)存的數(shù)量 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("您需要購(gòu)買(mǎi)的商品庫(kù)存不足,請(qǐng)重新選擇!");//提示用戶當(dāng)前商品庫(kù)存不足 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ?? ?juice.number = juice.number - num;//更改庫(kù)存數(shù)量=購(gòu)買(mǎi)前的庫(kù)存數(shù)量-用戶購(gòu)買(mǎi)的數(shù)量 ? ? ? ? ? ? ? ? ? ? ? ? success();//提示用戶購(gòu)買(mǎi)成功 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 3://如果選擇的是商品“3” ? ? ? ? ? ? ? ? ? ? if(water.number == 0)//如果當(dāng)前的庫(kù)存為0 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("商品已售完,等待補(bǔ)貨!");//提示用戶商品已售完 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else if (num>water.number)//如果用戶需要購(gòu)買(mǎi)的數(shù)量大于庫(kù)存的數(shù)量 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("您需要購(gòu)買(mǎi)的商品庫(kù)存不足,請(qǐng)重新選擇!");//提示用戶當(dāng)前商品庫(kù)存不足 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ?? ?water.number = water.number - num;//更改庫(kù)存數(shù)量=購(gòu)買(mǎi)前的庫(kù)存數(shù)量-用戶購(gòu)買(mǎi)的數(shù)量 ? ? ? ? ? ? ? ? ? ? ? ? success();//提示用戶購(gòu)買(mǎi)成功 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 4://如果選擇的是商品“4” ? ? ? ? ? ? ? ? ? ? if(coffee.number == 0)//如果當(dāng)前的庫(kù)存為0 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("商品已售完,等待補(bǔ)貨!");//提示用戶商品已售完 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else if (num>coffee.number)//如果用戶需要購(gòu)買(mǎi)的數(shù)量大于庫(kù)存的數(shù)量 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("您需要購(gòu)買(mǎi)的商品庫(kù)存不足,請(qǐng)重新選擇!");//提示用戶當(dāng)前商品庫(kù)存不足 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ?? ?coffee.number = coffee.number - num;//更改庫(kù)存數(shù)量=購(gòu)買(mǎi)前的庫(kù)存數(shù)量-用戶購(gòu)買(mǎi)的數(shù)量 ? ? ? ? ? ? ? ? ? ? ? ? success();//提示用戶購(gòu)買(mǎi)成功 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 5://如果輸入的是“5” ? ? ? ? ? ? ? ? ? ? System.out.println("歡迎您下次光臨!");//提示語(yǔ) ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? default://其他 ? ? ? ? ? ? ? ? ? ? System.out.println("沒(méi)有此商品,請(qǐng)重新選擇");//提示語(yǔ) ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? } ? ? //如果購(gòu)買(mǎi)成功打印函數(shù)內(nèi)容 ? ? public void success() ? ? { ? ? ? ? System.out.println("請(qǐng)選擇你的支付方式"); ? ? System.out.println("1、掃碼支付\t2、投幣支付");//系統(tǒng)提示語(yǔ) ? ? Scanner sc = new Scanner(System.in); int select = sc.nextInt(); if(select == 1) { System.out.println("請(qǐng)掃屏幕下方的二維碼進(jìn)行支付"); ? ? ? ? ?? ??? ?System.out.println("購(gòu)買(mǎi)成功!"); }else if(select==2){ ?? ?System.out.println("請(qǐng)投入硬幣"); } ? ? ? ? else { System.out.println("歡迎您下次光臨!"); } ? ? } }
③商品類(lèi)
//商品類(lèi) ?class goods ?{ ? ? String goodsname; ? //商品名稱(chēng) ? ? double price; ? ? ? //商品價(jià)格 ? ? int number; ? ? ? ? //商品剩余數(shù)量 ? ? //默認(rèn)初始化商品函數(shù) ? ? public goods()? ? ? { ? ? } ? ?? ? ? //初始化商品函數(shù) ? ? public goods(String goodsname, double price, int number) ? ? { ? ? ?? ?this.goodsname = goodsname; ? ? ?? ?this.price = price; ? ? ?? ?this.number = number; ? ? } ?}
功能測(cè)試
測(cè)試可以從以下方面進(jìn)行:
①顧客開(kāi)始使用飲料自助售貨機(jī),進(jìn)入系統(tǒng)主界面:用戶可以根據(jù)界面提示選擇是否開(kāi)始購(gòu)物:
②當(dāng)顧客選擇不購(gòu)物,那么即將退出系統(tǒng):
③若顧客選擇了購(gòu)物,那么將進(jìn)入購(gòu)物界面,系統(tǒng)將展示所有的商品信息,以供選擇。在商品信息中,根據(jù)商品編號(hào),可以選擇自己想要的商品,假設(shè)此時(shí)用戶選擇了啤酒,并且購(gòu)買(mǎi)數(shù)量為15瓶:
④購(gòu)買(mǎi)完之后進(jìn)行結(jié)賬,本系統(tǒng)提供兩種結(jié)賬方式,一種是掃碼支付,一種是投幣支付,假設(shè)現(xiàn)在顧客選擇了投幣支付:
⑤在顧客第一次買(mǎi)完啤酒后,原本庫(kù)存為30現(xiàn)在減少為15,然后現(xiàn)在庫(kù)存還剩15,假使此時(shí)又有一個(gè)顧客需要購(gòu)買(mǎi)50瓶啤酒,很明顯庫(kù)存不夠,那么此時(shí)將給出提示,用戶無(wú)法完成購(gòu)買(mǎi):
⑥加入用戶在購(gòu)物時(shí)選擇了掃碼支付,那么系統(tǒng)將提示用戶掃屏幕下方的支付碼完成支付:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java8中用foreach循環(huán)獲取對(duì)象的index下標(biāo)詳解
這篇文章主要給大家介紹了關(guān)于Java8中用foreach循環(huán)獲取對(duì)象的index下標(biāo)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能
這篇文章主要介紹了微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能,文章簡(jiǎn)單介紹了Redis BitMap 基本用法結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01淺談JAVA實(shí)現(xiàn)選擇排序,插入排序,冒泡排序,以及兩個(gè)有序數(shù)組的合并
這篇文章主要介紹了JAVA實(shí)現(xiàn)選擇排序,插入排序,冒泡排序,以及兩個(gè)有序數(shù)組的合并,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03關(guān)于Java數(shù)組查詢的相關(guān)問(wèn)題及實(shí)例
這篇文章主要介紹了關(guān)于Java數(shù)組查詢的相關(guān)問(wèn)題及實(shí)例,需要的朋友可以參考下。2017-08-08SpringBoot整合screw實(shí)現(xiàn)數(shù)據(jù)庫(kù)文檔自動(dòng)生成的示例代碼
這篇文章主要介紹了SpringBoot整合screw實(shí)現(xiàn)數(shù)據(jù)庫(kù)文檔自動(dòng)生成的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09使用RestTemplate訪問(wèn)https實(shí)現(xiàn)SSL請(qǐng)求操作
這篇文章主要介紹了使用RestTemplate訪問(wèn)https實(shí)現(xiàn)SSL請(qǐng)求操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10