自助飲料機實現


一、流程設計

 

二、代碼設計

#coding:utf-8

money = 0
coinChoice = [1,5,10,20,50,100]
print u'請注意只接受1,5,10,20,50,100的面值!'

#drinking chose
drinklist = {'milk':4,'cola':5,'juice':7,'xuebi':6}
drinkNum = 0
for key,value in drinklist.items():
    drinkNum += 1
    print u'飲料編號:%d,飲料名稱:%s,單價:%s元'%(drinkNum,key,value)

def putCoin():
    while True:
        coin = input(u'請輸入投幣金額(按q退出):'.encode('gbk'))
        #print type(coin)  #<type 'int'>
        global money
        if coin == 'q':
            print u'投幣結束,余額%d元'%money
            break
        else:
            if coin not in coinChoice:
                print u'請注意只接受1,5,10,20,50,100的面值!'
                continue
            money += coin
            print u'您本次成功投幣%d元,余額%d元'%(coin,money)
            return money

#buy drinking   
trans = True
while trans:
    if money == 0:
        print u'您的余額為零,請投幣'
        putCoin()
    else:
        drinkCode = input(u'請輸入想買的飲料編號(按q退出):'.encode('gbk'))
        if drinkCode == 'q':
            print u'購買飲料結束,找零%d元'%money
            break
        else:
            if drinkCode in range(1,len(drinklist)+1):
                num = 0
                for k,v in drinklist.items():
                    num += 1
                    if drinkCode == num:
                        print 'drinking name:',k
                        print 'price:',v
                        if money >= v:
                            money -= v
                            #charge
                            if money > 0:
                                print u'您購買的飲料%s花費%s元,按q退出找零%d元,歡迎下次光臨!'%(k,v,money)
                            else:
                                print u'您的余額正好用完,歡迎下次光臨!'
                                trans = False
                        else:
                            print u'抱歉,您的余額不足,請重新開始投幣!'
                            putCoin()
            else:
                print u'您輸入的飲料編號不存在,請重新輸入!'
                continue

 

三、測試用例執行

1.投幣,正常購買,退出找零

2.投幣,未購買飲料,退出找零

3.余額不足,投幣,未購買飲料,退出找零

 

 4.余額不足,投幣,購買飲料,退出找零

5.余額不足,不投幣,重新選擇購買飲料,余額正好用完

6.投幣金額、飲料編號不合法

 

四、其他

顯然,現實中飲料機還要考慮庫存夠不夠,零錢夠不夠等問題,市面上的自助飲料機大都是每件商品都有唯一的id,用戶輸入id購買,基本不存在投幣后庫存不足的情況,所以需要給每件商品貼上唯一的飲料編號;零錢呢,我想1元多多益善就可以了吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM