Python 点餐系统

70 阅读4分钟

制作一个早餐店点餐系统:

需要包含的系统:

  1. 设计入口程序
  2. 设计费用计算函数
  3. 设计点餐模板
  4. 设计打印报表模块
  5. 设计导出报表模块
  6. 退出程序

系统分析

与其他点餐系统类似,该点餐系统应该具备 客户点餐、费用计算、生成报表、导出报表 等功能。

饮料价格:

  1. 豆浆 : 3/杯
  2. 果汁 : 4.5/杯
  3. 牛奶 : 4/杯

主食价格:

  1. 馒头 : 1/个
  2. 包子 : 2.5/个
  3. 鸡蛋 : 2/个
  4. 油条 : 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])

点餐 费用计算运行结果:

屏幕截图 2025-10-15 100550.png

设计打印报表模块

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)
    

打印报表运行结果:

屏幕截图 2025-10-15 100236.png

设计导出报表模块

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("-----成功导出报表------")

存储报表运行结果:

屏幕截图 2025-10-15 100253.png

退出系统运行结果:

屏幕截图 2025-10-15 100305.png

完整代码:

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)")