制作一个早餐店点餐系统:
需要包含的系统:
- 设计入口程序
- 设计费用计算函数
- 设计点餐模板
- 设计打印报表模块
- 设计导出报表模块
- 退出程序
系统分析
与其他点餐系统类似,该点餐系统应该具备 客户点餐、费用计算、生成报表、导出报表 等功能。
饮料价格:
- 豆浆 : 3/杯
- 果汁 : 4.5/杯
- 牛奶 : 4/杯
主食价格:
- 馒头 : 1/个
- 包子 : 2.5/个
- 鸡蛋 : 2/个
- 油条 : 1.5/根
设计入口程序
# 1. 入口程序
import time
while(True):
print("\n-----------欢迎使用点餐系统----------------")
print("本软件提供如下功能: \n1. 点餐 \n2. 打印报表 \n3.存储报表 \n4.退出系统")
choice = int(input("请输入数字选择一项功能:"))
if choice == 1:
orderMenu() # 点餐
#print("点餐")
elif choice == 2:
printReport(OrderList) # 打印报表
#print("打印报表")
elif choice == 3:
exportReport(OrderList) # 存储报表
#print("存储报表")
elif choice == 4:
exit(0) #退出
else:
print("请输入正确的序号(1~4)")
设计费用计算函数
def getCharge(drinkNo, foodNo):
drinkCharge = 0.0 # 饮料价格
foodCharge = 0.0 # 主食价格
if drinkNo == 1: # 豆浆
drinkCharge = 3.0
elif drinkNo == 2: # 果汁
drinkCharge = 4.5
elif drinkNo == 3: # 牛奶
drinkCharge = 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 drinkCharge + foodCharge
设计点餐模板
DrinkMenu = {1:"豆浆", 2:"果汁", 3:"牛奶"}
FoodMenu = {1:"馒头", 2:"包子", 3:"鸡蛋", 4:"油条"}
OrderList = [] #点餐列表
def orderMenu():
# 点餐板块
print("\n----------欢迎点餐--------")
print("\n我们提供的饮品:")
for drink in DrinkMenu:
print(str(drink) + ":" + DrinkMenu[drink])
drinkNo = int(input("请输入序号选择您需要的饮品(1~3):"))
print(drinkNo)
while drinkNo > 3:
drinkNo = int(input("输入错误! 请输入序号选择您需要的饮品(1~3):"))
print("你选择了: "+ DrinkMenu[drinkNo] + "\n")
print("我们提供的食物:")
for food in FoodMenu:
print(str(food) + ":" + FoodMenu[food])
foodNo = int(input("请输入序号选择您需要的食物(1~4):"))
while foodNo > 4:
foodNo = int(input("输入错误! 请输入序号选择您需要的食物(1~4):"))
print("你选择了: " + FoodMenu[foodNo] + "\n")
# 计算 主食 + 饮品 价格
totalPrice = getCharge(drinkNo, foodNo)
print("将马上为你奉上%s 和 %s, 共消费%.2f 元。 " %(DrinkMenu[drinkNo], FoodMenu[foodNo], totalPrice))
#日期时间
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----------------统计报表------------------")
print("点餐日期 \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("-----成功导出报表------")
存储报表运行结果:
退出系统运行结果:
完整代码:
def getCharge(drinkNo, foodNo):
drinkCharge = 0.0 # 饮料价格
foodCharge = 0.0 # 主食价格
if drinkNo == 1: # 豆浆
drinkCharge = 3.0
elif drinkNo == 2: # 果汁
drinkCharge = 4.5
elif drinkNo == 3: # 牛奶
drinkCharge = 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 drinkCharge + foodCharge
import time
DrinkMenu = {1:"豆浆", 2:"果汁", 3:"牛奶"}
FoodMenu = {1:"馒头", 2:"包子", 3:"鸡蛋", 4:"油条"}
OrderList = [] #点餐列表
def orderMenu():
# 点餐板块
print("\n----------欢迎点餐--------")
print("\n我们提供的饮品:")
for drink in DrinkMenu:
print(str(drink) + ":" + DrinkMenu[drink])
drinkNo = int(input("请输入序号选择您需要的饮品(1~3):"))
print(drinkNo)
while drinkNo > 3:
drinkNo = int(input("输入错误! 请输入序号选择您需要的饮品(1~3):"))
print("你选择了: "+ DrinkMenu[drinkNo] + "\n")
print("我们提供的食物:")
for food in FoodMenu:
print(str(food) + ":" + FoodMenu[food])
foodNo = int(input("请输入序号选择您需要的食物(1~4):"))
while foodNo > 4:
foodNo = int(input("输入错误! 请输入序号选择您需要的食物(1~4):"))
print("你选择了: " + FoodMenu[foodNo] + "\n")
# 计算 主食 + 饮品 价格
totalPrice = getCharge(drinkNo, foodNo)
print("将马上为你奉上%s 和 %s, 共消费%.2f 元。 " %(DrinkMenu[drinkNo], FoodMenu[foodNo], totalPrice))
#日期时间
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----------------统计报表------------------")
print("点餐日期 \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("本软件提供如下功能: \n1. 点餐 \n2. 打印报表 \n3.存储报表 \n4.退出系统")
choice = int(input("请输入数字选择一项功能:"))
if choice == 1:
orderMenu() # 点餐
#print("点餐")
elif choice == 2:
printReport(OrderList) # 打印报表
#print("打印报表")
elif choice == 3:
exportReport(OrderList) # 存储报表
#print("存储报表")
elif choice == 4:
exit(0) #退出
else:
print("请输入正确的序号(1~4)")