点餐系统课程设计

1. 引言

随着互联网的发展,传统餐饮行业正在逐步向数字化和智能化转型。为了优化点餐流程,提高用户体验,本文设计并实现了一套点餐系统。该系统采用MySQL作为数据库,使用Python语言连接数据库,借助Tkinter库进行可视化界面的设计。本文将详细介绍系统的设计思路、数据库结构、代码实现以及系统功能。

2. 系统功能

系统主要实现以下功能:

  1. 菜单展示:展示可供选择的菜品及其价格。
  2. 点餐操作:用户可以选择菜品并进行数量输入,系统能够生成订单。
  3. 订单管理:查看当前订单、修改订单、删除订单等功能。
  4. 数据库管理:利用MySQL存储菜品信息和订单信息。

3. 数据库设计

在系统中,我们设计了两张表:menuorders

CREATE TABLE menu (
    id INT AUTO_INCREMENT PRIMARY KEY,
    dish_name VARCHAR(255) NOT NULL,
    price DECIMAL(10, 2) NOT NULL
);

CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    dish_name VARCHAR(255) NOT NULL,
    quantity INT NOT NULL,
    total_price DECIMAL(10, 2) NOT NULL
);

4. Python代码实现

下面是Python代码示例,展示了如何连接MySQL数据库,获取菜单并展示在图形界面。

import mysql.connector
from tkinter import *
from tkinter import messagebox

# 连接MySQL数据库
def connect_db():
    try:
        conn = mysql.connector.connect(
            host='localhost',
            user='root',
            password='yourpassword',
            database='restaurant'
        )
        return conn
    except mysql.connector.Error as err:
        messagebox.showerror("数据库连接错误", str(err))
        return None

# 获取菜单
def fetch_menu():
    conn = connect_db()
    cursor = conn.cursor()
    cursor.execute("SELECT dish_name, price FROM menu")
    rows = cursor.fetchall()
    conn.close()
    return rows

# 提交订单
def submit_order():
    conn = connect_db()
    if conn is None:
        return
    cursor = conn.cursor()
    total_price = float(price_var.get()) * int(quantity_var.get())
    cursor.execute("INSERT INTO orders (dish_name, quantity, total_price) VALUES (%s, %s, %s)",
                   (selected_dish.get(), quantity_var.get(), total_price))
    conn.commit()
    conn.close()
    messagebox.showinfo("成功", "订单提交成功!")

# 创建GUI
root = Tk()
root.title("点餐系统")

menu_items = fetch_menu()
selected_dish = StringVar()
quantity_var = StringVar()
price_var = StringVar(value='0')

Label(root, text="请选择菜品:").grid(row=0, column=0)

# 创建下拉菜单
menu_dropdown = OptionMenu(root, selected_dish, *[f"{item[0]} - ¥{item[1]}" for item in menu_items], command=lambda _: price_var.set(item[1]))
menu_dropdown.grid(row=0, column=1)

Label(root, text="数量:").grid(row=1, column=0)
Entry(root, textvariable=quantity_var).grid(row=1, column=1)

Button(root, text="提交订单", command=submit_order).grid(row=2, columnspan=2)

root.mainloop()

5. 简要说明

上述代码首先连接到MySQL数据库,获取菜单信息,并在图形界面中显示。用户可以选择菜品并输入数量,点击“提交订单”按钮后,订单信息将被保存到orders表中。

6. 总结

通过此次课程设计,我们实现了一个基本的点餐系统,展示了Python与MySQL数据库的连接和操作。此系统不仅可以满足基本的点餐需求,还有助于餐饮行业的数字化转型。未来,可在此基础上增加更多功能,如用户身份管理、支付接口等,力求提升系统的实用性和扩展性。

以上是点餐系统的设计与实现,希望对大家的学习和实践有所帮助!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部