我们实习的内容,设计一个自动售货机的控制器,实现以下功能:
a. 机器只接受1元硬币和5元纸币;
b. 机器共提供4种货物,价格分别为2元、2元、3元、3元;
c. 顾客先选择需要的一种或者多种货物,再确认所选货物后,进入投币状态。当顾客选择的货物卖光时,本实验中,只需在顾客确认货物之时,提示顾客货物卖光,并返回初始状态即可。(每种货物数量初始值为63。顾客确认货物时,需提供确认选择和重新选择两个选项。)
d. 若等待60s,顾客不投币,则返回初始状态;顾客投币后,系统自动计算所投钱币。若投币够,则出货找零。若自客户确认货物之后60s,投币不够,则退币并返回初始状态。(本实验中,退币过程只需将记录顾客投入钱币清零即可)。主要是运用有限状态机的方法。
状态 | S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 | S8 |
状态描述 | 初始化状态 | 选择货物 | 确认选择 | 判断是否卖光 | 是否在60s内投币 | 投币金额是否足够 | 是否需要找零 | 找零 | 出货 |
自动售货机代码: