有一个ATM取款系统,现对于取款功能进行了如何需求变更:碑只能取面额是100元(如取500,输出5张100元),现在功能修改为,可以取面额是10元、50元和100元的,其余功能不变,用户界面也没有任何变化,取款原则为“最优吐钞法”,有大额先吐大额,请根据需求变更进行案例设计。
参考测试用例 大额优先:刚好整百的金额,吐出N张100元的
刚好为50元,吐出1张50元
刚好是50以内的整10元,吐出N张10元
取款金额是N百超过50元,吐出N张100元,1张50元,(M-5)张10元。例如380元,会吐出3张100元,1张50元,8-5张10元
如果是几十元,同时超过50元。那么会吐出1张50元,M-5张10元
取款金额是N百几十元,不超过50的,那么会吐出N张100元,M张10元
没有大额了:如果没有50元了,那么会吐出N张100元,M张10元
如果没有100元,有50元,那会出吐出2N张50元,十位部分。如果十位部分不足50元,则会吐出M张10元。如果超过50元,则会吐出2N+1张50元,M-5张10元
如果100元和50元的都没有了,那么会吐出全额的10元
如果100元的不够用,会优先吐出全部的100元,再用50元进行折算
如果100元和50元都不够用了,会优先吐出全部的100元和50元,最后用10元的填补
无效场景:钱不够了,无论是哪一种不够,这时候会报错说取款机余额不足
用户输入金额不正确,即有个数,那么也会报错用户输入不正确
用户未输入,提示报错