《武汉工程大学学报》  2014年06期 50-53   出版日期:2014-06-30   ISSN:1674-2869   CN:42-1779/TQ
无线点菜系统的设计


0引言在餐饮业中点菜作为客人吃饭的必备程序,在传统的餐饮业中都采用手写菜单、人工统计的方式来进行服务和管理,但是这种方式已经不能满足现代都市人的生活节奏.无线点菜系统是利用无线技术对餐饮服务进行信息化改造,它的使用首先能够加快点菜速度,提高工作效率,减少人力资源的投入;其次,无线点菜系统作为一种新兴产品,给人们一种高贵的感觉,提高了餐馆的品味;第三,使用无线点菜系统有助于营造一个安静、舒适的就餐环境[1].以下主要从系统的工作流程、系统的功能模块和系统的设计实现三个方面来介绍无线点菜系统.1系统的工作流程无线点菜系统包括手持终端点菜服务和后台管理服务两个子系统.如图1显示了无线点菜系统手持终端点菜服务子系统的工作流程.图1工作流程图Fig.1Work flow chart顾客可以通过普通顾客和会员顾客两种身份登录手持终端点菜系统,利用点菜宝选桌点菜,菜单数据会通过主控计算机实时传递到厨房并打印显示.传菜部根据菜单给相应桌号的顾客上菜.个人就餐结束后,吧台打印出账单,顾客根据自己所属的类型(普通顾客和会员顾客)结账.2系统功能模块介绍无线点菜系统功能模块图如图2所示,手持终端子系统包含了登录模块、开台模块、点菜模块三个基本模块.手持终端子系统登录身份设定为普通顾客和会员顾客,普通顾客可以办理手续注册为会员顾客,后台管理系统会管理每一位会员顾客的注册资料、消费情况等信息.开台功能模块会实时显示当前餐厅未被占用的餐桌编号,同时还提供了换桌、拼桌等功能[2].点菜模块是手持终端子系统的重要功能模块,该模块将餐馆的食物分为主食、热菜、凉菜、酒水、糕点五大类.店家可以为每一道菜添加详细的介绍,通过高清液晶屏幕为顾客展示菜品.顾客可以使用电子图文菜谱查看菜品信息,能够更加直观的了解到菜的品质.退菜加菜功能和自动计算菜单总价功能使餐饮服务更加人性化.后台管理子系统包括了会员管理、菜单管理、收银管理等七个功能子模块.会员管理模块对店内登记的会员资料进行管理,同时统计会员顾客的菜单信息和消费习惯.顾客来自天南地北,会有自己的一些特殊的口味,如偏辣、偏甜等,点菜时候会员顾客可以注明口味特点,以后该顾客消费时在菜单上提示该顾客的口味特点,这些微不足道的一些改进可能会为经营者带来意想不到的利益.菜单管理模块对菜品信息进行管理,经营者定时对菜品信息进行更新,并对会员顾客给予一定的折扣优惠,以更好的满足顾客的需求.收银管理功能模块提高了收银员的工作效率,他们面对的账单不会再出现凌乱不堪,甚至算错帐的情况,这样就可以避免与客人的一些不必要的纠纷,维护了餐馆的形象[3].财务管理和库存管理功能模块使经营者对本店的财务信息和库存信息一目了然,保证了餐馆的良性经营,提升了餐馆的竞争力.系统设置包括的权限设置和系统参数设置,系统强大的权限认证体系,保证了整个系统的安全.图2系统功能模块图Fig.2Functional module diagram of the system第6期蔡琼,等:无线点菜系统的设计武汉工程大学学报第36卷3系统总体设计无线点菜系统综合运用了无线局域网技术、数据库技术、软件开发技术、嵌入式技术.手持移动终端采用YLSBC2440开发板,基于Fedora开发环境下采用Qt(一种应用程序开发框架)技术开发.在手持移动终端上面使用点菜软件,通过WiFi无线局域网与系统服务器通信.无线点菜系统的软件部分采用C/S软件体系结构.C/S体系结构也称为客户/服务器体系结构,客户端和服务器端分别在不同的计算机上,客户端程序的任务是将用户的要求给服务器端程序,等待并接受服务器端返回的结果;服务器端的任务是接受并处理客户端程序发出的服务请求,并返回给客户端程序.C/S软件体系结构具有响应速度快,安全性高的优点,特别适合开发小范围局域网内使用的软件. 无线点菜系统软件部分分为系统服务器软件和手持终端点菜软件,这两部分的软件均采用Qt开发,点菜系统服务器端需要对许多系统数据进行处理,而系统采用的数据库管理系统是SQLite(一款小型数据库) , SQLite3是SQLite数据库的一个重要版本.点菜系统服务器端选用的操作系统是microsoft公司开发的window XP系统,手持终端选用操作系统是Linux操作系统的Fedora版本,Fedora是一个知名的Linux操作系统的发行版,得到了Fedora社区、红帽公司的赞助[4].是一款开源的面向日常运用的快速、稳健、强大的操作系统.而Qt优良的跨平台特性,使其可以在不同的操作系统上很好的开发软件.无线点菜系统的硬件组成主要有:手持点菜终端、交换机、无线路由器、系统服务器、打印机、等,系统组网拓扑图如图3所示.图3系统拓扑图Fig.3Topology of the system4系统实现中的关键技术4.1系统中的权限设计无线点菜系统由于系统功能模块较多,而且针对系统不同的用户授予的功能权限也不同,因此有效管理用户权限的访问控制问题,对系统的设计至关重要.无线点菜系统采用基于角色的访问控制技术,它的基本思想就是系统的各种访问权限不用直接分配给用户,而是首先将系统的权限根据系统的功能分类整理成多个角色或者权限组,然后授予这些角色相应的系统操作.把系统用户分配到这些角色中,这样系统用户就继承了该角色的访问控制权限.同时系统可以根据需要对角色用户进行添加或对某个角色的访问控制权限进行修改[5].使用点菜系统的人员大致可以分为顾客和餐馆服务管理人员两大类.对这两大类的权限可以细分为普通顾客、会员顾客、服务员、收银员、财务人员、库存管理人员、经理、系统管理员这些角色.这些角色分别获得系统中的相应的访问权限.如收银员有菜单功能中的查看权限、收费找零权限、折扣权限.服务员有菜单功能中的增删改查权限、开台撤台权限、催菜退菜权限.这种权限控制技术使得无线点菜系统权限管理更加方便、灵活. 4.2数据库的设计无线点菜系统使用SQLite3数据库创建了用户信息表、菜品信息表、顾客消费信息表、库存信息表、收银信息表.用户信息表存放了使用该系统的用户信息,如用户姓名、性别、用户标号、用户类型、用户状态.对于不同权限身份的用户使用一个标识符来区分.用户信息表的表结构如表1所示.表1用户信息表Table 1User Information table字段中文名字段名类型长度用户名USERNAMEC20密码PASSWORDC20用户编号USERNUMN5性别GENDERC1电话TELEPHONEN11用户类型FLAGC1顾客消费信息表是一张临时表,用于临时存储顾客的消费信息,如消费时间、顾客类别、消费金额等信息.顾客消费信息表的表结构如表2所示.表2消费信息表Table 2Consumer information table字段中文名字段名类型长度顾客姓名CNAMEC20顾客类型CTYPEC1顾客人数CNUMN3餐桌号TABLENUMN3账单号BILLNUMC10消费金额CMONEYN5消费时间CDATEDATE折扣DISCOUNTFLOAT2菜品信息表存放菜单信息,如菜品编号、菜品所属类别、菜品名称、单价、菜品介绍、图片等信息.菜品信息表的表结构如表3所示.表3菜品信息表Table 3Dishes information table字段中文名字段名类型长度菜品编号DISHNUMC8菜品名称DISHNAMEC20单价PRICEN3菜品介绍DISHDESC50图片IAMGEURLC20库存信息表和收银信息表分别存储了餐馆库存信息和收银信息.4.3系统的网络通信系统的网络通信主要包括系统服务器端和系统手持终端的网络通信程序实现,系统服务器端主要负责接收手持终端的各种数据,并解析和处理这些数据,手持终端客户端主要负责把客户点单数据以及服务器请求数据发送到系统服务器,并且接收服务器发送的数据.系统中服务器端和手持客户终端之间使用WiFi通信,是WLAN(无线局域网)的一个标准,是如今广泛使用的一种无线通信技术,能够将个人PC、智能手机、平板电脑等终端以无线方式连接[6].具有传输速度快、传输距离远的优点.随着对WiFi技术的改进,如今Wi-Fi技术传输的无线通信质量有了很大的提高,已经能够很好的满足系统网络通信的需求.而且与其他无线技术如蓝牙技术、ZigBee等相比, WiFi技术的信号发射功率要远远低于其他无线通信技术,所以使用WiFi技术也是最安全健康的.在实现系统网络通信之前,需要构建无线局域网,如今创建WiFi网络较常用的方式有使用Window 7系统创建和使用无线路由器搭建,使用无线路由器创建WiFi网络稳定性优于使用Window 7方式创建,无线点菜系统使用无线路由器搭建WiFi网络,手持终端上的无线网卡就可以通过WiFi网络与服务器端进行通信[7].在Qt中有QTcpSocket类来实现Tcp传输协议,来创建系统服务器端和客户端的应用程序.对于系统服务器端的通信模块的实现流程如图4所示.图4服务器端通信实现流程Fig.4Implementation of communication on the server 手持终端客户端的通信模块的实现流程如图5所示.图5客户端通信实现流程Fig.5Implementation of communication on the client5结语无线点菜系统实现了对菜单菜品信息的数字化管理,同时餐馆管理者也可以及时的了解餐馆经营数据,无线点菜系统所带来的经营效率的提高超过其投资成本,对于餐饮企业的信息化,是不错的选择.随着无线点菜系统不断完善,将会拥有更为广泛的市场前景.致谢感谢在实验设计和论文撰写过程中,对论文提供帮助的教研室各位同事,同时感谢武汉工程大学计算机学院给予的帮助和支持.