基于c的餐饮管理系统的设计与实现内容摘要:

统 普通用户 餐厅经理 前台管理 后台管理 开台点菜 加菜减菜 顾客结账 管理用户 管理收入 管理数据库 管理菜式 注册新用户 修改用户权限 删除用户 查询今日收入 查询月收入 数据库备份 数据库还原 增加菜式 修改菜式 删除菜式 徐州工程学院毕业设计 (论文 ) 7 不同而已。 每个模块的功能都是按照在调研中搜集的资料进行编排制作的。 依据上述模块的分析,系统中功能分别为: 开台点菜、加菜减菜、顾客结账、管理用户、管理收入、管理数据库、管理菜式。 各功能模块的具体功能如下: 此模块用于管理为顾客服务的模块,具体如下: ① 开台点菜模块 开台模块用于管理餐厅所拥有餐桌的状态,同时顾客可以选择 “空闲 ”的餐桌开台;开台后进入点菜模块,点菜模块用于管理顾客的点菜信息,可以对已点菜式进行增加和删除操作。 ② 加菜减菜模块 此模块用于顾客点菜成功后,继续点菜,也管理顾客的点菜信息,选择需要服务的餐桌,可以对已点菜式进行增加和删除操作。 ③ 顾客结账模块 此模块管理顾客的结账信息,选择对应餐桌,可显示该餐桌点菜的详细清单。 该模块还具有计算功能,能够快速计算出对应餐桌顾客实际消费金额,同时,当输入顾客实付现金,可以迅速计算出找零金额。 此模块只有餐厅经理可以操作,包括以下模块: ① 管理用户模块 此模块管理餐厅工作人员,具体又包括以下三个小模块: 注册新用户 ——餐厅经理通过此模块可以注册新用户,新用户信息写入数据库,包括用户名和密码,其中新注册用户,必须是系统中没有的,注册时必须进行密码确认。 同时,新注册用户的权限默认为普通用户。 修改用户权限 ——餐厅经理通过此模块可以对餐厅中工作人员的权限进行修改,修改后的数据写入数据库,对特定用户 “SJZHOU”不可修改其权限。 删除用户 ——餐厅经理 通过此模块可以删除餐厅中的工作人员,对应用户信息同时从数据库中删除。 特定用户 “SJZHOU”不可删除。 ② 管理收入模块 此模块用于查询餐厅收入信息,可以即时有效地反映餐厅的收入状况,包括两个模块,分别为查询今日收入模块和查询月收入模块。 ③ 管理数据库模块 此模块用于对餐厅中数据库进行备份和还原,保障了餐厅信息的安全性。 包括两个模块,分别为数据库备份模块和数据库还原模块。 ④ 管理菜式模块 徐州工程学院毕业设计 (论文 ) 8 图 32 系统前台 ER图 此模块管理餐厅中的菜式信息,在此 模块中,餐厅经理可以对餐厅的菜式进行一些列的操作,包括增加菜式、修改菜式、删除菜式等。 在此模块中对修改餐厅的菜式信息,能够及时地反馈到前台的菜式信息上,使顾客可以享用到最新的菜式。 各个模块分别管理不同的事务,如此才能有条不紊地管理整个餐厅,提高餐厅的工作效率等。 系统数据库设计 每个企业都需要建立的数据库,本系统也需要建立自己的数据库。 数据库是餐饮管理系统中极为重要的组成部分,也是前台应用程序工作的基础。 数据库创建与开发的优劣直接影响到整个系统的质量和效率。 数据库设计是建立数据库及其应用系统的 技术,是信息系统开发和建设中的核心技术。 具体的说,数据库设计是一个给定的应用环境,构造最优的用户的应用需求。 数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构数据设计和行为处理设计密切结合起来。 [17] 根据系统的需求分析,设计出本系统的数据库,将其命名为 MYSYS,系统前台 ER图见图 32,后台见图 33。 用户 用户名 密码 权限 开台 点菜 结账 餐桌 菜式 账单 桌号 状态 菜名 菜价 桌号 菜名 数量 价格 徐州工程学院毕业设计 (论文 ) 9 图 33 系统后台 ER图 其中需要设计 一系列的表。 表设计见表 31。 表 31 表设计 表名 功能说明 CAISHI 存放餐厅中所有的菜式的信息 KAITAI 存放餐厅中所有的餐桌的状态 LOGIN 存放餐厅中工作人员的信息 SHOURU 存放每天的收入信息 ZHAGNDAN 存放未结账的单笔账单信息 ① 登录模块中,用户登录时需要从数据库中读取信息,包括用户名和密码,以及判断用户权限。 设计出表 LOGIN,见表 32。 表 32 LOGIN 字段名称 数据类型 说明 ID 自动编号 主键 UANME 文本 登录者用户名 UPASSWORD 文本 登陆者密码 POWER 数字 登录者权限 ② 开台模块中,需要初始化餐桌状态,选择 “空闲 ”餐桌给需要服务的顾客,设计表用户 用户名 密码 权限 管理 收入 菜式 用户 日收入 日期 菜名 菜价 用户名 密码 权限 徐州工程学院毕业设计 (论文 ) 10 KAITAI, 包括餐桌的桌号和状态,见表 33。 表 33 KAITAI 字段名称 数据类型 说明 ID 自动编号 主键 ZHUOHAO 数字 餐厅里餐桌的桌号 IFUSED 数字 对应餐桌是否正在使用,用 1 和 0分别表示使用 “有人 ”和 “空闲 ” ③ 点菜模块和加菜减菜模块中 ,需要向数据库中写入顾客点菜信息,其中包括顾客开台桌号,顾客所点的菜式的菜名、数量和价格,从而设计出表 ZHANGDAN,见表 34。 表 34 ZHANGDAN 字段名称 数据类型 说明 ID 自动编号 主键 ZHUOHAO 数字 桌号 CNAME 文本 该桌客人点菜的菜名 SHULIANG 数字 点菜的数量 JIAGE 数字 该道菜的消费 结账时,通过在该表中对桌号查询,选择出需要结账的桌号,则在结账模块的对话框中的列表框中,会将该桌的点菜详细清单列出,同时计算出该桌客人的实际消费金额。 ④ 餐厅的中的所有菜式信息都存放在表 CAISHI 中,见表 35。 该表中需要存放菜式的菜名以及菜价。 表 35 CAISHI 字段名称 数据类型 说明 ID 自动编号 主键 CNAME 文本 系统中菜谱中菜式对应名称 CPRICE 数字 对应菜式的价格 ⑤ 结账成功后,会删除该桌的点菜信息,同时,将该笔收入加入到数据库中,因此需设计表 SHOURU,保存日期及当日收入,见表 36。 每次有新收入时,若数据库中没有当天收入,则新建日期,保存收入;若数据 库中已有当天收入,则在该记录中改变收入值。 表 36 SHOURU 字段名称 数据类型 说明 ID 自动编号 主键 RSHOURU 数字 每日收入 RIQI 文本 日期 连接数据库 本系统中使用的是 Microsoft Office Assess数据库,从而在 VS中连接数据库时,需要访问一个由 Microsoft’s Jet数据库管理系统生成的数据库,也即 Microsoft Access应用程序生成徐州工程学院毕业设计 (论文 ) 11 的数据库。 其方法是,使用 MFC的 CdaoDatabase和 CdaoRecordSet类打开数据库 并访问其记录。 这两个类的许多功能与 MFC访问 ODBC数据库的类是一样,但是他们有较高的性能和灵活性。 [19] ADO 是目前在 Windows 环境中比较流行的客户端数据库编程技术。 ADO 是建立在OLE DB 底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。 而且按微软公司的意图, OLE DB 和 ADO 将逐步取代 ODBC 和 DAO。 ADO实际上就是由一组 Automation 对象构成的组件,因此可以象使用其它任何 Automation 对象一样使用 ADO。 ADO 中最重要的对象有三个: Connection、 Command 和 Recordset,它们分别表示连接对象、命令对象和记录集对象。 使用 ADO 编程时可以采用使用预处理指令 import, 但要注意不能放在 文件的开头,而应该放在所有 include 指令的后面。 否则在编译时会出错。 程序在编译过程中, VC++会读出 中的类型库信息,自动产生两个该类型库的头文件和实现文件 和 (在 Debug 或 Release目录下)。 在这两个文件里定义了 ADO 的所有对象和方法,以及一些枚举型的常量等。 我们的程序只要直接调用这些方法就行了,与使用 MFC 中的 COleDispatchDriver 类调用Automation 对象十分类似。 实现步骤如下: ① 保证以下语句包含文件在。 import c:\program files\mon files\system\ado\ no_namespace rename(EOF,adoEOF) ② 在 文件中通过以下语句连接数据库。 hr=m_pConOpen(Provider=。 Data Source=, ,adModeUnknown)。 ③ 然后就可以在 VS 中通过 SQL 语句来对数据库进行操作。 徐州工程学院毕业设计 (论文 ) 12 图 41 主界面(未登录) 4 系统详细设计 主界面设计 Header File: Implementation File: Dialog: IDD_MY_SYSTEM_DIALOG 本系统的主界面结构为上下结构,见图 41。 上面部分显示了该系统的前台模块及其功能,此功能的实现代码在函数 BOOL CMysystemDlg::OnInitDialog()中。 [5] 为了界面美观,使用带图案的按钮,通过代码在其中加入 6 个 button, 其实现步骤如下: ① 加载 6幅 32*32的图标 ② 在图标下面设置显示信息 通过以下三句,实现未 登录情况下,只有 “用户登录 ” 、 “关于系统 ” 和 “退出系统 ”三个模块可用,其他模块不可用。 ().EnableButton(IDB_KAITAI, false)。 徐州工程学院毕业设计 (论文 ) 13 图 42 主界面(普通用户登录) ().EnableButton(IDB_JIAJIAN, false)。 ().EnableButton(IDB_JIEZHANG, false)。 下面部分在未登录情况下显示背景图片,在该对 话框中放置一个 Picture Control,首先设置该 控件 的 Type 属 性为 Bitmap ,然 后设置 其 Image 属性为 Bitmap 中的IDB_BITMAP_BACKGROUND。 用 户 登 录 后 , 根 据 用 户 权 限 显 示 不 同 界 面 , 此 功 能 在 函 数 void CMysystemDlg::OnBUTTONlogin()中实现。 [1] 对数据库中的 LOGIN 表查询,判断登录权限,相关语句如下 [18]: CString Sql = select * from LOGIN where UNAME=39。 ++39。 m_pRs = Execute((_bstr_t)Sql, NULL, adCmdText)。 CString Str = (_bstr_t)m_pRsGetCollect(POWER)。 int radio = atoi(Str)。 当用户权限为普通用户时,依然显示该背景图片,但不可用的几个功能模块变成可用,而 “用户登录 ”模块变为不可用,见图 42。 当用户权限为餐厅经理时,上面部分的功能模块与普通用户登录一样有变化,同时下面部分加载 Tab Control,见图 43。 其中加载了 4 个对话框,分别为管理用户、管理收入、徐州工程学院毕业设计 (论文 ) 14 图 43 主界面(餐厅经理登录) 管理数据库和管理菜式,其实现代码如下: (amp。 m_pageyonghu)。 (amp。 m_pageshouru)。 (amp。 m_pageshujuku)。 (amp。 m_pagecaishi)。 登录界面设计 Header File: Implementation File: Dialog: IDD_LOGIN 通过对数据库的查询,读取数据库中的所有用户名,使其列在 Combo Box 中,用户登录时可以选择自己的用户名;设计一个 Edit Control 作为密码输入框,将其 Password 属性设为 True。 [15]。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。