同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零。 2.基本套餐结算和找零。 3.使用优惠劵购买餐品结算和找零。 4.可在一定时间段参与店内活动(自行设计或参考官网信息)。 5.模拟打印小票的功能(写到文件中)。 用时2周。 基本要求: 1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。 2.实现功能测试代码,确保程序的健壮性。 3.画出使用的设计模式图。
import time meau1 = [ ('香辣鸡腿汉堡',10), ('超级至尊牛肉堡',13), ('全虾堡',12), ('奥尔良烤鸡腿堡',11), ('无敌大鸡排',12), ('可乐',8), ('雪碧',8), ('薯条',8), ('鸡翅',9), ('鸡腿',9), ] meau2 = [ ('香辣鸡腿汉堡+可乐+薯条',21), ('奥尔良烤鸡腿堡+2杯雪碧+无敌大鸡排+薯条',39), ('薯条+鸡翅+可乐',19), ('全虾堡+鸡腿+雪碧',22), ('全虾堡+奥尔良烤鸡腿堡+超级至尊牛肉堡+薯条+鸡翅+3杯可乐',59), ] meau = [] shopping_car = [] total_money = 0 flag = False data = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()) data1 = time.localtime() week = time.strftime('%A',data1) while not flag: choice1 = input('请选择单点还是套餐(单点选择1,套餐选择2)[返回:q]') if choice1.isdigit(): choice1 = int(choice1) if choice1 == 1: meau = meau1 elif choice1 == 2: meau = meau2 else: print('输入错误') continue elif choice1 == 'q': break else: print('输入错误') continue for i ,v in enumerate(meau,1): print(i,'',v) while not flag: choice2 = input('请输入您要购买的食品的编号:[返回 :q][选择完成:p]') if choice2.isdigit(): choice2 = int(choice2) if choice2>0 and choice2<=len(meau): p_item = meau[choice2-1] total_money+= p_item[1] shopping_car.append(p_item) continue else: print('输入错误') elif choice2 == 'p': f = open('receipt', 'w',encoding='utf8') print('您本次购买花费%s元:' % total_money) for i,(v,m) in enumerate(shopping_car,1): print(i,'',v,'',m) l = str('----'.join([str(i),v,str(m)+'元'])) f.write(l.center(50,' ')+'\n') f.write('您本次购买消费合计金额%s元'.center(50,'-') % total_money+'\n') if week == 'Monday' or 'Thursday': if total_money>=50: total_money = total_money - 10 print('您今天可享受本店满50减10的活动,所以您需要支付%s'%total_money) f.write('您今天享受了本店满50减10的活动'.center(50,'*')+'\n') while not flag: give_money = int(input('请输入您要支付的金额:')) back_money = give_money-total_money if back_money>=0: b = str(' '.join(['收您%s元'%give_money,'找您%s元'%back_money])) print(b.center(50,'-')) f.write(b.center(50,'-')+'\n') f.write(str(data).center(50,'-')) f.close() flag = True else: print('请输入足够的金额') continue break elif choice2 == 'q': break else: print('输入错误')