java實(shí)現(xiàn)飲料自助售貨機(jī)
本文實(shí)例為大家分享了java實(shí)現(xiàn)飲料自助售貨機(jī)的具體代碼,供大家參考,具體內(nèi)容如下
①用戶類
import java.util.Scanner;
//用戶類
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)販賣機(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)類
//購(gòu)買(mǎ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("歡迎您下次光臨!");
}
? ? }
}③商品類
//商品類
?class goods
?{
? ? String goodsname; ? //商品名稱
? ? 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)文章
Java類的定義以及執(zhí)行順序?qū)W習(xí)教程
這篇文章主要介紹了Java類的定義以及執(zhí)行順序?qū)W習(xí)教程,包括對(duì)象的創(chuàng)建等面向?qū)ο缶幊痰幕A(chǔ)知識(shí),需要的朋友可以參考下2015-09-09
Java調(diào)用外接設(shè)備詳解(制卡機(jī))
這篇文章主要為大家詳細(xì)介紹了Java調(diào)用外接設(shè)備的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Security中的WebSecurityConfigurerAdapter詳解
這篇文章主要介紹了Security中的WebSecurityConfigurerAdapter詳解,今天我們要進(jìn)一步的的學(xué)習(xí)如何自定義配置Spring?Security,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
Java微信公眾平臺(tái)開(kāi)發(fā)(8) 多媒體消息回復(fù)
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺(tái)開(kāi)發(fā)第八步,微信多媒體消息回復(fù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
IntelliJ IDEA設(shè)置代碼的快捷編輯模板Live Templates
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA設(shè)置代碼的快捷編輯模板Live Templates,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10
Java實(shí)戰(zhàn)之電影在線觀看系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java實(shí)現(xiàn)電影在線觀看系統(tǒng),文中用到的技術(shù)有:JSP、Spring、SpringMVC、MyBatis等,感興趣的可以了解一下2022-04-04
教你使用java將excel數(shù)據(jù)導(dǎo)入MySQL
今天教大家如何使用Java將excel數(shù)據(jù)導(dǎo)入MySQL,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴呢很有幫助,需要的朋友可以參考下2021-05-05
Maven工程引入依賴失敗Dependencies全部飄紅問(wèn)題
這篇文章主要介紹了Maven工程引入依賴失敗Dependencies全部飄紅問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

