做一个用于粥铺的点餐系统
任务分析
对于粥铺而言,供应的食物可以分为两大类,即饮品和主食。
饮品:豆浆3.0元 果汁4.5元 牛奶4.0元
主食:馒头1.1元 包子2.5元 鸡蛋2.0元 油条1.5元
该点餐系统应该具备客户点餐,费用预算,生成报表,导出报表等功能。
任务实施
设计入口程序
- 显示软件功能,以便用户选择
- 循环执行,以保证软件持续运行
while(True):
print("\n--------欢迎使用点餐系统------")
print("本软件提供如下功能:\n 1.点餐\n 2.打印报表 \n 3.导出报表\n4. 退出系统")
choice = int(input("请输入数字选择一项功能:"))
if choice == 1:
orderMenu() # 点餐
elif choice == 2:
printReport(OrderList) # 打印报表
elif choice == 3:
exportReport(OrderList) # 导出报表
elif choice == 4:
exit(0) # 退出
else:
print("请输入正确的序号1-4")
运行结果如图:
设计费用计算函数
根据用户选择的饮料和主食,费用预算模块计算餐食的总费用
def getcharge(drinkNo,foodNo):
drinlCharge = 0.0 #饮料价格
foodCharge = 0.0 #主食价格
if drinkNo ==1: #豆浆
drinlCharge =3.0
elif drinkNo ==2: #果汁
drinlCharge = 4.5
elif drinkNo == 3: #牛奶
drinlCharge = 4.0
if foodNo ==1: #馒头
foodCharge = 1.0
elif foodNo ==2: #包子
foodCharge = 2.5
elif foodNo ==3: #鸡蛋
foodCharge = 2.0
elif foodNo ==4: #油条
foodCharge = 1.5
return drinlCharge + foodCharge
设计点餐程序
- 实现客户点餐,点餐提示的功能
- 获取当前的日期和时间
print("我们提供的饮品有:")
for drink in DrinkMenu:
print(str(drink) + ":" + DrinkMenu[drink])
drinkNo = int(input("请输入序号(1-3)选择您需要的饮品:"))
print(drinkNo)
while drinkNo > 3:
drinkNo = int(input("输入错误,请输入正确的序号!"))
print("您选择了:" + DrinkMenu[drinkNo] + "\n")
print("我们提供的食物有:")
for food in FoodMenu:
print(str(food) + ":" + FoodMenu[food])
foodNo = int(input("请输入序号(1-3)选择您需要的食物:"))
print(foodNo)
while foodNo > 4:
foodNo = int(input("输入错误,请输入正确的序号!"))
print("您选择了:" + FoodMenu[food] + "\n")
# 计算主食+饮品价格
totalPrice = getcharge(drinkNo,foodNo)
print("将马上为您上餐 %s 和 %s,此次您共消费 %.2f 元" % (DrinkMenu[drinkNo] , FoodMenu[foodNo] , totalPrice))
#日期时间
import time
OrderDate = time.strftime('%Y-%m-%d',time.localtime(time.time())) #日期
OrderTime = time.strftime('%H:%M:%S', time.localtime(time.time())) # 时间
OrderList.append([OrderDate,OrderTime,DrinkMenu[drinkNo],FoodMenu[foodNo],totalPrice])
运行结果如图:
设计打印报表模块
打印输出所有的点餐信息,包含点餐日期,点餐时间,饮料品种,主食品种和预订价格
def printReport(OrderList):
totalPrice = 0
print("\n-------统计报表-------\n")
print("点餐日期 \t 点餐时间 \t 饮料 \t 主食 \t 花费(元)")
for order in OrderList:
totalPrice += order[4]
print( order[0] + "\t" + order[1] + "\t%s\t%s\t%.2f" %(order[2],order[3],order[4]))
print("\n累计收入%.2f元" % totalPrice)
运行结果如图:
设计导出报表模块
def exportReport(OrderList):
dataFile = open("AllReport.txt","w",encoding="utf-8")
for order in OrderList:
dataFile.write( order[0] + "," + order[1] + "%s,%s,%.2f元\n" %(order[2],order[3],order[4]))
dataFile.close()
print("---- 成功导出报表 ----")
运行结果如图:
退出程序
exit(0)
运行结果如图:
完整代码
def getcharge(drinkNo,foodNo):
drinlCharge = 0.0 #饮料价格
foodCharge = 0.0 #主食价格
if drinkNo ==1: #豆浆
drinlCharge =3.0
elif drinkNo ==2: #果汁
drinlCharge = 4.5
elif drinkNo == 3: #牛奶
drinlCharge = 4.0
if foodNo ==1: #馒头
foodCharge = 1.0
elif foodNo ==2: #包子
foodCharge = 2.5
elif foodNo ==3: #鸡蛋
foodCharge = 2.0
elif foodNo ==4: #油条
foodCharge = 1.5
return drinlCharge + foodCharge
DrinkMenu = {1:"豆浆", 2:"果汁",3:"牛奶"}
FoodMenu = {1:"馒头", 2:"包子",3:"鸡蛋",4:"油条"}
OrderList = [] #点餐列表
def orderMenu():
# 点餐模块
print("我们提供的饮品有:")
for drink in DrinkMenu:
print(str(drink) + ":" + DrinkMenu[drink])
drinkNo = int(input("请输入序号(1-3)选择您需要的饮品:"))
print(drinkNo)
while drinkNo > 3:
drinkNo = int(input("输入错误,请输入正确的序号!"))
print("您选择了:" + DrinkMenu[drinkNo] + "\n")
print("我们提供的食物有:")
for food in FoodMenu:
print(str(food) + ":" + FoodMenu[food])
foodNo = int(input("请输入序号(1-3)选择您需要的食物:"))
print(foodNo)
while foodNo > 4:
foodNo = int(input("输入错误,请输入正确的序号!"))
print("您选择了:" + FoodMenu[food] + "\n")
# 计算主食+饮品价格
totalPrice = getcharge(drinkNo,foodNo)
print("将马上为您上餐 %s 和 %s,此次您共消费 %.2f 元" % (DrinkMenu[drinkNo] , FoodMenu[foodNo] , totalPrice))
#日期时间
import time
OrderDate = time.strftime('%Y-%m-%d',time.localtime(time.time())) #日期
OrderTime = time.strftime('%H:%M:%S', time.localtime(time.time())) # 时间
OrderList.append([OrderDate,OrderTime,DrinkMenu[drinkNo],FoodMenu[foodNo],totalPrice])
def printReport(OrderList):
# 打印报表
totalPrice = 0
print("\n-------统计报表-------\n")
print("点餐日期 \t 点餐时间 \t 饮料 \t 主食 \t 花费(元)")
for order in OrderList:
totalPrice += order[4]
print( order[0] + "\t" + order[1] + "\t%s\t%s\t%.2f" %(order[2],order[3],order[4]))
print("\n累计收入%.2f元" % totalPrice)
def exportReport(OrderList):
# 导出报表
dataFile = open("AllReport.txt","w",encoding="utf-8")
for order in OrderList:
dataFile.write( order[0] + "," + order[1] + "%s,%s,%.2f元\n" %(order[2],order[3],order[4]))
dataFile.close()
print("---- 成功导出报表 ----")
# 1. 入口程序
while(True):
print("\n--------欢迎使用点餐系统------")
print("本软件提供如下功能:\n 1.点餐\n 2.打印报表 \n 3.储存报表\n4. 退出系统")
choice = int(input("请输入数字选择一项功能:"))
if choice == 1:
orderMenu() # 点餐
elif choice == 2:
printReport(OrderList) # 打印报表
elif choice == 3:
exportReport(OrderList) # 存储报表
elif choice == 4:
exit(0) # 退出
else:
print("请输入正确的序号1-4")