湖南农业大学 课程设计论文
表4 桌台信息表
表5 付款方式表
表6 当班统计表
其中,用户信息表主要存储用户的基本信息,权限项决定了用户的操作权限。菜谱信息表存储食物的基本信息。价格项为结账与结算提供依据。桌台信息表存储各个桌台的消费情况,如消费金额、是否结账等。订餐信息表存储各个桌台的点菜情况。付款方式表存储了基本的付款方式,供结账时选择。当班统计表存储员工当班期间的营业情况。
四、数据库设计
数据库管理系统采用Microsoft SQL Server 2000作为后台数据库。首先,在企业管理器中建立一个名为MenuManageSys的数据库,然后建立以上6个数据库表,并设定主键、长度。这样,数据库的设计已经完成。
五、详细设计
本餐饮管理系统采用Visual C++ + SQL Server来开发。利用ADO技术调用后台数
- 6 -
湖南农业大学 课程设计论文
据库,使用了两个ADO智能指针_ConnectionPtr和_RecordsetPtr,其中_ConnectionPtr用来连接后台SQL Server数据库,_RecordsetPtr指针用来对数据库的表中的记录集进行操作。工程使用的是基于对话框的程序,每个对话框为一个类,父类为CDialog,实现的一些功能都封装在类的函数中,体现了面向对象编程语言C++的特性。
导入ADO接口:在工程的stdafx.h文件里直接引入符号#import引入ADO库文件,加入下面一行代码,以使编译器能正确编译:
#import \rename (\
用_ConnectionPtr指针连接数据库:在CmenuManageSysApp类的BOOL InitInstance()函数中加入以下代码:
m_pConnection.CreateInstance(\ try {
m_pConnection->ConnectionTimeout = 8;
m_pConnection->PutCursorLocation(adUseClient);
m_pConnection->Open(\Server};Server=172.29.130.47; DATABASE=MenuManageSys;UID=;PWD=\ }
catch(_com_error e) {
AfxMessageBox(\数据库连接失败!\ return FALSE; }
1.设计工程框架
餐饮管理系统的框架是一个对话框类型的操作界面,用户注册、登录后,可对餐饮管理的各个功能模块进行操作。 1.1设置主界面
系统主界面如图3:
- 7 -
湖南农业大学 课程设计论文
图3
每个事件的对应代码如下:
(1) 单击“注册”菜单,弹出“注册”对话框,代码如下:
void CMenuManageSysDlg::OnRegister() {
CRegisterDlg dlg(this); dlg.DoModal(); }
(2) 单击“登录”菜单,弹出“登录”对话框,代码如下:
void CMenuManageSysDlg::OnLogin() {
CLoginDlg dlg(this); dlg.DoModal(); }
(3) 单击“订餐”菜单,判断用户是否登录,代码如下:
void CMenuManageSysDlg::OnUpdateOrderSystem(CCmdUI* pCmdUI) {
if(theApp.m_Level==0||theApp.m_Level==1) { pCmdUI->Enable(true); } else { pCmdUI->Enable(false); AfxMessageBox(\请您先登录\ } }
(4) 如果用户已经登录,弹出“餐桌信息”对话框,否则提示用户登录,代码如下:
void CMenuManageSysDlg::OnOrderSystem() {
CDeskDlg dlg; dlg.DoModal(); }
(5) 单击“结账”菜单,判断用户是否登录,代码如下:
void CMenuManageSysDlg::OnUpdatePayCheck(CCmdUI* pCmdUI) {
if(theApp.m_Level==0||theApp.m_Level==1) { pCmdUI->Enable(true); } else { pCmdUI->Enable(false); AfxMessageBox(\请您先登录\
- 8 -
湖南农业大学 课程设计论文
(6)
(7)
(8)
(9)
} }
如果用户已经登录,弹出“结账”对话框,否则提示用户先登录,代码如下: void CMenuManageSysDlg::OnPayCheck() {
CPayDlg dlg; dlg.DoModal(); }
单击“下班”菜单,判断用户是否登录,代码如下:
void CMenuManageSysDlg::OnUpdateChangeDuty(CCmdUI* pCmdUI) {
if(theApp.m_Level==0||theApp.m_Level==1) { pCmdUI->Enable(true); } else { pCmdUI->Enable(false); AfxMessageBox(\请您先登录\ } }
如果用户已经登录,弹出“交接班”对话框,否则提示用户先登录,代码如下: void CMenuManageSysDlg::OnChangeDuty() {
COffdutyDlg dlg; dlg.DoModal(); }
单击“用户权限设置”菜单,判断用户是否登录及其权限,代码如下: void CMenuManageSysDlg::OnUpdateSetLevel(CCmdUI* pCmdUI) {
if(theApp.m_Level==1) { pCmdUI->Enable(true); }
else if(theApp.m_Level==0) { pCmdUI->Enable(false); AfxMessageBox(\您无权进行用户级别设置\ } else { pCmdUI->Enable(false); AfxMessageBox(\请您先登录\ }
- 9 -
湖南农业大学 课程设计论文
}
(10) 如果权限是管理人员,弹出“权限设置”对话框,如果是普通员工会提示无权进行
用户级别设置,代码如下:
void CMenuManageSysDlg::OnSetLevel() {
CLevelDlg dlg; dlg.DoModal(); }
(11) 单击“菜谱设置”菜单,判断用户是否登录及其权限,代码如下:
void CMenuManageSysDlg::OnUpdateSetMenu(CCmdUI* pCmdUI) {
if(theApp.m_Level==1) { pCmdUI->Enable(true); }
else if(theApp.m_Level==0) { pCmdUI->Enable(false); AfxMessageBox(\您无权进行菜谱设置\ } else { pCmdUI->Enable(false); AfxMessageBox(\请您先登录\ } }
(12)如果权限是管理人员,弹出“菜谱设置”对话框,如果是普通员工会提示无权进行用户级别设置,代码如下:
void CMenuManageSysDlg::OnSetMenu() {
CMenuSetDlg dlg; dlg.DoModal(); }
(13)单击“付款方式设置”菜单,判断用户是否登录及其权限,代码如下:
void CMenuManageSysDlg::OnUpdatePaymodeSet(CCmdUI* pCmdUI) {
if(theApp.m_Level==1) { pCmdUI->Enable(true); }
else if(theApp.m_Level==0) { pCmdUI->Enable(false); AfxMessageBox(\您无权进行付款方式设置\
- 10 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库餐饮管理系统(2)在线全文阅读。
相关推荐: