最近无聊做了一个简易版本的点餐系统,简单记录一下。吐槽一下最近的心情,最近心情较差,应该近期会去南昌玩吧,懂南昌的朋友可以评论区推荐下游玩攻略,非常感谢!
(1)相关配置信息:
1.整体GUI使用的是最简单的Tkinter库
2.使用pymysql连接后台的mysql数据库restaurant
3.只用了两张表(menu和orders)进行相关操作
(2)展示
1.后台表格结构及数据:
【1】表格结构
【2】预存进去的表格数据
2.系统功能展示(视频):
(1)登录界面(简单版,这里只做演示,没增加图片那些的美化)
(2)可以进行下单,下单了可以催单,也可以退单(这里我后面还打算调整一下,增加一些提示信息之类的),可以查看历史记录、该菜的价格(如果我后期优化想加上菜品的图片那些)~
(3)主要功能函数介绍(具体代码f系更新~)
1. 数据库连接配置
connect_db()
:创建并返回一个到名为restaurant
的数据库的连接。
2. 菜单获取与选择
get_menu()
:从数据库获取菜单列表并返回。on_menu_select(event)
:当用户从下拉菜单选择菜品时,更新一个变量以存储选中菜品的ID。
3. 订单处理
validate_quantity()
:验证用户输入的数量是否有效。check_item_exists(item_id)
:检查数据库中是否存在指定ID的菜品。add_order()
:添加一个新的订单到数据库,并提供用户反馈。
4. 订单历史与状态更新
show_history()
:显示所有订单的历史记录。clear_history()
:清除所有订单历史记录。select_order_status(order_id)
:允许用户选择并更新特定订单的状态。update_order_status(order_id, new_status)
:更新订单状态的通用函数。
5. 特殊订单操作
urge_order()
:允许用户选择并更新订单状态为“urged”(催单)。cancel_order()
:允许用户退单并从数据库中删除订单记录。
6. 菜品价格查询
show_price()
:显示选中菜品的单价。
7. 用户界面与登录
- 创建登录窗口和主窗口,使用
Tkinter
和ttk
组件。 create_login_window(root)
:创建并显示登录窗口。check_login(root)
:验证用户登录信息,并在成功时显示主窗口。
8. 用户界面组件
- 使用
ttk.Combobox
、ttk.Label
、ttk.Entry
和ttk.Button
等组件构建用户界面。 - 通过
pack
和grid
方法布局组件。
9. 错误处理与用户反馈
- 使用
messagebox.showerror()
和messagebox.showinfo()
提供错误信息和操作反馈。
10. 事件绑定
- 使用事件绑定,
bind('<<ComboboxSelected>>', on_menu_select)
,响应用户操作。