c++课程设计mfc酒店点菜管理系统设计 [问题点数:100分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:4
Bbs1
本版专家分:4
Bbs1
本版专家分:4
VF酒店点菜管理系统
VFP 简单<em>酒店</em><em>点菜</em><em>管理</em>系统 可时间 查看 <em>点菜</em> 打印 后台<em>管理</em> 等功能
数据库课(酒店管理系统)
数据库课(<em>酒店</em><em>管理</em>系统)
C++课程设计:学生管理系统、学生考勤系统、酒店点菜系统(含源码和文档)
这个文件包括学生<em>管理</em>系统、学生考勤系统、<em>酒店</em><em>点菜</em>系统(含源码和文档),可以参考一下源代码哦
C++ MFC 餐厅点菜管理系统
我们的<em>课程设计</em>,用VC++6.0做的,数据写在本地文件中,可直接运行。包含完整的源码。 功能共分5个模块:菜品<em>管理</em>模块(包含菜品的录入,查询,修改,删除。),会员办理模块(会员可打折),顾客点餐模块(包含菜品选择,修改,删除,计算金额,提交会员信息可打折。),统计模块(根据日,月,季度三个时间来统计营业额。),公告<em>管理</em>模块(可添加,删除,修改公告信息。) 希望对大家有帮助。
C++酒店管理系统课设
简单期末C++<em>课程设计</em>报告加源代码,小白内容,大神请飘过。。。。。。
mfc酒店管理系统(C++编写,程序简单,可编译成功)
功能:入住、退房、查看、增加、删除、插入,简单易懂,编译成功。
c++酒店点菜系统
算机点餐系统。能够完成权限<em>管理</em>、点餐<em>管理</em>、订单<em>管理</em>、结账<em>管理</em>、菜谱评分等功能。欢迎大家一起进行交流
餐厅点菜管理系统-数据库课程设计
环境:java_1.8.0+Eclipse neno+Oracle 12c 多窗口设计,带有.bmp文件 详情可阅读readme.txt 祝大家上九十五
C++小系统——餐馆员工管理系统及餐馆点菜系统(一)
    总算是把这个小系统给写完了,写的时间有点长(主要是中间过程遇到很多杂事,导致思路断断续续的,一直没怎么写)。    这篇博客,我主要来讲,我在写的过程中遇到的错误,处理方法,以及部分细节。    (源码及GitHub地址会在文末给出)    1.如何使用光标移动操作        我就先贴这几段代码作为样例//.h文件 nenumn {n UP = 72,n ...
酒店管理系统 C语言课程设计
大一的时候学C语言做的<em>课程设计</em>,界面良好,使用了文件功能,把整本书学的内容都运用到里面去了。
酒店管理系统c++ 毕业设计
<em>酒店</em><em>管理</em>系统c++ 源码 毕业设计 精美皮肤
C++模拟餐厅管理点菜系统--课程设计
你可以到一个餐馆去仔细研究一下餐馆的业务流程:餐 馆事先准备好自己的招牌菜及一些常规的菜式,有营业场所,服务人员等;顾客 来了以后,服务生先给客人找一张桌子坐下来,然后递上菜谱等待顾客<em>点菜</em>,顾 客可以点一个菜,也可以退菜,完了之后结账走人,这张桌子又可以用来招待下 一批顾客。
点菜系统的设计与实现
[摘 要]随着餐饮业的蓬勃发展,餐饮业务<em>管理</em>也变的非常复杂,因此将整个餐饮业务通过计算机系统进行<em>管理</em>成为餐饮业发展的趋势。建立一个集<em>点菜</em>、餐厅<em>管理</em>于一体的餐厅<em>点菜</em>系统是加速餐饮服务质量和效率的重要途径。目前已有的<em>点菜</em>系统在时效性等方面还不能满足行业需求。本文在分析了系统功能需求和非功能需求的基础上,在windows系统下运用php+mysql+apache平台上设计并实现了一个具有高性能的<em>点菜</em>系统。通过用例等视图分析了系统的设计框架,本系统会通过设计前台和后台对整个<em>点菜</em>系统进行设计实现。使得本<em>点菜</em>系统不仅具有<em>点菜</em>功能,还具有用户<em>管理</em>、查询等辅助餐饮<em>管理</em>功能。最后实验结果表明,该<em>点菜</em>系统的可行性和有效性达到了设计要求。
餐厅管理信息系统课程设计
餐饮<em>管理</em>系统 一、需求分析 随着社会服务行业的发展,餐饮业对自身服务的质量和能力也有了更高的要求。餐饮<em>管理</em>系统正是在这样的情况之下越来越受到重视。餐厅的内部服务项目众多,既需要完成前台的服务工作,还需要完成后台的<em>管理</em>工作,如果没有一套可靠的餐饮<em>管理</em>系统,单凭手工操作,不仅效率低,而且会极大地影响到<em>酒店</em>的服务质量。 设计的目标:实现餐饮<em>管理</em>的科学化、自动化,提高各个模版的办公效率,为高质量的餐饮服务提供保证。 系统功能概述 民以食为天,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。经过多年发展,餐饮<em>管理</em>已经逐渐由定性<em>管理</em>,进入到重视定量<em>管理</em>的科学阶段。众所周知,在定量<em>管理</em>的具体实现方法和手段方面,最有效的工具就是计算机<em>管理</em>。 传统的手工操作<em>管理</em>存在着许多无法避免的问题,例如: 人工计算机账单金额出现差错; 收银工作中跑单、漏单、偷钱现象普遍; 个别服务员作弊、改单、宰客情形时有发生; 客人消费单据难以保存和查询。 如果借助计算机来<em>管理</em>,就可以轻松的解决处理这些问题。一个餐饮<em>管理</em>信息系统应该包括基本的餐厅的服务<em>管理</em>、<em>管理</em>人员信息的维护等,以及与之相应的操作。所以整个餐饮<em>管理</em>信息系统分为两个大部分,即后台的数据<em>管理</em>维护和前台的操作。后台数据库的<em>管理</em>能保证系统各项功能正常运行,前台操作能提供给客户尽可能方便快捷的服务。 功能模块划分 1. 前台操作系统 订餐<em>管理</em>模块:<em>点菜</em>(输入桌台代码和食物代码)、加菜、下单。 结账<em>管理</em>模块:结账(输入桌台代码)、结账方式选择(包括现金结账、信用卡结账、支票结账、签单等)。 交班<em>管理</em>模块:统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作作准备。 2. 后台<em>管理</em>维护系统 用户权限设置:可以查询员工的基本资料(姓名、性别、年龄、出生年月、籍贯、家庭住址等),员工登录名称、密码、员工操作权限等,可以根据需要进行设置。 菜谱设置:新菜单录入(包括菜式名称、代码、类型、价格、成本等)、菜式修改、删除等菜式维护。 付款方式设置:分为人民币付款、信用卡、支票签单等,可以根据需要进行添加和删除。 系统流程分析 系统流程图1所示。当用户进入系统主界面以后,新用户经过注册后才能凭借其用户名和密码登录,老用户可以直接登录。用户登录以后,系统自动判断出其操作权限。操作权限包括普通员工和<em>管理</em>人员。新用户的操作权限默认为是普通员工。普通员工只能进行订餐、结账操作,而<em>管理</em>人员除此之外还可以进行系统设置与营业分析。 • 图1 当有顾客订餐的时候,员工输入桌台号和食物代码即可进行<em>点菜</em>,在结账以前,加菜是允许的。当顾客结账的时候,员工输入桌台号,选择顾客的付款方式,即可完成结账。 在下班时间,员工可以统计当班期间的消费情况。这样,员工注销此次登录,退出系统,一天的工作就到此结束。 <em>管理</em>人员可以随时进行系统设置,包括菜谱设置、用户权限设置、付款方式设置等。 功能模块调用 餐饮<em>管理</em>系统调用了以下功能模块: 用户注册模块、用户登录模块、数据显示模块。 二、概念设计 图2 给出了餐饮<em>管理</em>系统的E-R实体关系图。收银员、餐桌、菜单三者之间的关系是订餐,其中订餐关系包括的属性有:餐桌编号、菜肴编号、菜肴名称、菜肴单价、菜肴数量、菜肴价格、菜肴折扣、是否结账、结账时间。 三、逻辑设计 将E-R关系模型转化为二维表。本系统主要需要6个表,分别为用户信息表(UserInfo)、菜谱信息表(MenuInfo)、订餐信息表(OrderInfo)、桌台信息表(DeskInfo)、付款方式表(PayModeInfo)、当班统计表(CaldayInfo),各个表中字段的类型以及说明如表1-表6所示。 表1 用户信息表 表2 菜谱信息表 表3 订餐信息表 表4 桌台信息表 表5 付款方式表 表6 当班统计表 其中,用户信息表主要存储用户的基本信息,权限项决定了用户的操作权限。菜谱信息表存储食物的基本信息。价格项为结账与结算提供依据。桌台信息表存储各个桌台的消费情况,如消费金额、是否结账等。订餐信息表存储各个桌台的<em>点菜</em>情况。付款方式表存储了基本的付款方式,供结账时选择。当班统计表存储员工当班期间的营业情况。 四、数据库设计 数据库<em>管理</em>系统采用Microsoft SQL Server 2000作为后台数据库。首先,在企业<em>管理</em>器中建立一个名为MenuManageSys的数据库,然后建立以上6个数据库表,并设定主键、长度。这样,数据库的设计已经完成。 五、详细设计 本餐饮<em>管理</em>系统采用Visual C++ + SQL Server来开发。利用ADO技术调用后台数据库,使用了两个ADO智能指针_ConnectionPtr和_RecordsetPtr,其中_ConnectionPtr用来连接后台SQL Server数据库,_RecordsetPtr指针用来对数据库的表中的记录集进行操作。工程使用的是基于对话框的程序,每个对话框为一个类,父类为CDialog,实现的一些功能都封装在类的函数中,体现了面向对象编程语言C++的特性。 导入ADO接口:在工程的stdafx.h文件里直接引入符号#import引入ADO库文件,加入下面一行代码,以使编译器能正确编译: #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF","adoEOF") 用_ConnectionPtr指针连接数据库:在CmenuManageSysApp类的BOOL InitInstance()函数中加入以下代码: m_pConnection.CreateInstance("ADODB.Connection"); try { m_pConnection->ConnectionTimeout = 8; m_pConnection->PutCursorLocation(adUseClient); m_pConnection->Open("driver={SQL Server};Server=172.29.130.47; DATABASE=MenuManageSys;UID=;PWD=","","",adModeUnknown); } catch(_com_error e) { AfxMessageBox("数据库连接失败!"); return FALSE; } 1.设计工程框架 餐饮<em>管理</em>系统的框架是一个对话框类型的操作界面,用户注册、登录后,可对餐饮<em>管理</em>的各个功能模块进行操作。 1.1设置主界面 系统主界面如图3: 图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("请您先登录"); } } (6) 如果用户已经登录,弹出“结账”对话框,否则提示用户先登录,代码如下: void CMenuManageSysDlg::OnPayCheck() { CPayDlg dlg; dlg.DoModal(); } (7) 单击“下班”菜单,判断用户是否登录,代码如下: void CMenuManageSysDlg::OnUpdateChangeDuty(CCmdUI* pCmdUI) { if(theApp.m_Level==0||theApp.m_Level==1) { pCmdUI->Enable(true); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (8) 如果用户已经登录,弹出“交接班”对话框,否则提示用户先登录,代码如下: void CMenuManageSysDlg::OnChangeDuty() { COffdutyDlg dlg; dlg.DoModal(); } (9) 单击“用户权限设置”菜单,判断用户是否登录及其权限,代码如下: 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("请您先登录"); } } (10) 如果权限是<em>管理</em>人员,弹出“权限设置”对话框,如果是普通员工会提示无权进行用户级别设置,代码如下: 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)如果权限是<em>管理</em>人员,弹出“菜谱设置”对话框,如果是普通员工会提示无权进行用户级别设置,代码如下: 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("您无权进行付款方式设置"); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (14)如果权限是<em>管理</em>人员,弹出“设置付款方式”对话框,如果是普通员工会提示无权进行用户级别设置,代码如下: void CMenuManageSysDlg::OnPaymodeSet() { CSetPaymodeDlg dlg; dlg.DoModal(); } (15)单击“注销”菜单,提示用户本次登录已注销,代码如下: void CMenuManageSysDlg::OnLogout() { if(MessageBox("您确定要注销吗","注销询问",MB_OKCANCEL|MB_ICONQUESTION)==IDOK) { theApp.m_Level=-1; AfxMessageBox("本次登录已注销"); } } (16)单击“退出系统”,在确定退出后,关闭系统,代码如下: void CMenuManageSysDlg::OnExitSystem() { if(MessageBox("真的要退出系统吗","退出询问",MB_OKCANCEL|MB_ICONQUESTION)==IDOK) { CDialog::OnOK(); } } 1.2设计注册模块 注册模块如图4: 图4 注册模块 在输入了完整的信息,按下“确定”按钮后,如果没有重复用户,则注册成功,代码如下: void CRegisterDlg::OnRegisterBtn() { // TODO: Add your control notification handler code here UpdateData(TRUE); if(!m_strUserName.IsEmpty()&&!m_strUserNative.IsEmpty() &&!m_strUserAdddress.IsEmpty() &&!m_strUserPwd.IsEmpty()&& !m_strUserPwdAgain.IsEmpty() && !m_strUserNum.IsEmpty() &&m_nUserAge != 0) { if(m_strUserPwd.CompareNoCase(m_strUserPwdAgain) != 0 ) { MessageBox("密码有误,请重新输入密码。","系统注册"); } else { try { m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT*FROMUserInfo",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); } catch(_com_error e) { CString temp; temp.Format("连接数据库错误信息:%s",e.ErrorMessage()); AfxMessageBox(temp); return; } m_pRecordset->AddNew(); m_pRecordset->PutCollect("UserName",_variant_t(m_strUserName)); m_pRecordset->PutCollect("UserPwd",_variant_t(m_strUserPwd)); m_pRecordset->PutCollect("UserNative",_variant_t(m_strUserNative)); m_pRecordset->PutCollect("UserAddress",_variant_t(m_strUserAdddress)); m_pRecordset->PutCollect("UserNum",_variant_t(m_strUserNum)); CString str; if(m_nUserSex==0) { m_pRecordset->PutCollect("UserSex",_variant_t("男")); } else m_pRecordset->PutCollect("UserSex",_variant_t("女")); str.Format("%d",m_nUserAge); m_pRecordset->PutCollect("UserAge",_variant_t(str)); str.Format("%d",0); m_pRecordset->PutCollect("UserLevel",_variant_t(str)); m_pRecordset->Update(); m_pRecordset->Close(); m_pRecordset = NULL; MessageBox("恭喜您注册成功","系统注册"); CDialog::OnOK(); return; } } else { MessageBox("请输入完整注册信息","系统注册"); } } 登录模块如图5: 图5 登录模块 输入完整信息,并单击“确定”按钮后,如果用户名不存在,则重新输入;如果密码错误,则重新输入,在重新输入三次密码后还不正确,则退出登录界面,登录失败。代码如下: void CLoginDlg::OnOK() { UpdateData(TRUE); if(!m_strUserName.IsEmpty() && !m_strPassword.IsEmpty()) { try { CString sql,str; // str.Format("%d",m_nUserNum); sql = "SELECT * FROM UserInfo WHERE UserName='"+m_strUserName+"' and UserNum='"+m_strUserNum+"' and UserPwd = '"+m_strPassword+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); if(m_pRecordset->adoEOF) { m_pRecordset->Close(); sql= "SELECT * FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; try { m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); if(m_pRecordset->adoEOF) { MessageBox("此用户不存在!","登录系统"); } else { if(count>=2) { MessageBox("登录次数过多,系统关闭","系统登录错误",MB_OK|MB_ICONWARNING); CDialog::OnOK(); } else { MessageBox("密码错误!","登录系统"); count++; } return; } } catch(_com_error e)///捕捉异常 { CString temp; temp.Format("连接数据库错误信息:%s",e.ErrorMessage()); AfxMessageBox(temp); return; } } else { theApp.m_Level = m_pRecordset->GetCollect("UserLevel").lVal; theApp.m_name = m_strUserName; MessageBox("登录成功!","登录系统",MB_OKCANCEL|MB_ICONQUESTION); CDialog::OnOK(); return; } } catch(_com_error e)///捕捉异常 { CString temp; temp.Format("连接数据库错误信息:%s",e.ErrorMessage()); AfxMessageBox(temp); return; } m_pRecordset->Close(); m_pRecordset = NULL; } else { MessageBox("请输入用户名和密码","登录系统"); } } 到此,注册模块与登录模块就设计完成。新用户注册以后,凭借其用户名和密码可以登陆,从而对系统进行操作。 3.功能模块设计 根据功能模块划分,可以将餐饮<em>管理</em>系统的功能模块划分为值班员<em>管理</em>模块、菜谱<em>管理</em>模块、用户<em>管理</em>模块、订餐模块、结账模块,下面对工程各个功能进行介绍。 3.1订餐模块设计 订餐模块的功能是员工输入桌台号码和食物代码进行<em>点菜</em>、根据需要加菜、下单。订餐模块如图6所示: 图6 订餐模块 为对话框类添加3个数据集对象: _RecordsetPtr m_pRecordset_Desk; _RecordsetPtr m_pRecordset_Order; _RecordsetPtr m_pRecordset_Menu; 对话框类的各成员函数的代码如下: CDeskDlg::CDeskDlg(CWnd* pParent /*=NULL*/) : CDialog(CDeskDlg::IDD, pParent) { //{{AFX_DATA_INIT(CDeskDlg) m_nOrderDeskNumber = 0; m_nOrderFoodNumber = 0; m_nOrderFoodRebate = 100; m_nOrderFoodAcount = 1; //}}AFX_DATA_INIT } BOOL CDeskDlg::OnInitDialog() //对话框初始化函数 { CDialog::OnInitDialog(); GetDlgItem(IDOK)->EnableWindow(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDeskDlg::OnOrderBtn() //<em>点菜</em>消息按钮 { UpdateData(TRUE); CString str; CString sql; if(m_nOrderDeskNumber == 0) { AfxMessageBox("请输入餐桌编号"); return; } if(m_nOrderFoodNumber != 0 ) { str.Format("%d",m_nOrderFoodNumber); sql = "SELECT * FROM MenuInfo WHERE FoodNum = "+str+" "; m_pRecordset_Menu.CreateInstance("ADODB.Recordset"); m_pRecordset_Menu->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Menu->GetRecordCount()==0) { AfxMessageBox("该菜肴编号不存在,请重新输入编号"); return; } else { int m_nTempPrice; CString m_strTempName; m_nTempPrice = m_pRecordset_Menu->GetCollect("FoodPrice").lVal;//食物价格 m_strTempName = m_pRecordset_Menu->GetCollect("FoodName").bstrVal;//食物名称 m_pRecordset_Menu->Close(); str.Format("%d",m_nOrderDeskNumber);//桌子编号 sql = "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_pRecordset_Order->AddNew(); str.Format("%d",m_nOrderDeskNumber); m_pRecordset_Order->PutCollect("DeskNum" ,_variant_t(str));//餐桌编号 str.Format("%d" , m_nOrderFoodNumber); m_pRecordset_Order->PutCollect("FoodNum" ,_variant_t(str));//食物编号 str.Format("%d",m_nTempPrice); m_pRecordset_Order->PutCollect("FoodSignalPrice" ,_variant_t(str));//食物单价 str.Format("%d",m_nOrderFoodAcount); m_pRecordset_Order->PutCollect("FoodAcount" ,_variant_t(str));//食物数量 m_nTempPrice *=m_nOrderFoodAcount; str.Format("%d",m_nTempPrice); m_pRecordset_Order->PutCollect("FoodPrice" ,_variant_t(str));//食物价格 str.Format("%d",m_nOrderFoodRebate); m_pRecordset_Order->PutCollect("FoodRebate" ,_variant_t(str));//食物折扣 int m_nTempRePrice; m_nTempRePrice = (int)m_nTempPrice*m_nOrderFoodRebate/100; str.Format("%d",m_nTempRePrice); m_pRecordset_Order->PutCollect("FoodRePrice" ,_variant_t(str)); //折后价格(小计) m_pRecordset_Order->PutCollect("FoodName" ,_variant_t(m_strTempName));//食物名称 int m_nTempCheck; m_nTempCheck = 0; str.Format("%d",m_nTempCheck); m_pRecordset_Order->PutCollect("FoodCheck" ,_variant_t(str));//是否结帐 CString paytime; CTime now=CTime::GetCurrentTime(); paytime=now.Format(_T("%Y-%m-%d %H:%M:%S")); m_pRecordset_Order->PutCollect("FoodTime",_variant_t(paytime));//<em>点菜</em>时间 m_pRecordset_Order->Update(); m_pRecordset_Order ->Close(); str.Format("%d",m_nOrderDeskNumber); CString str1; str1.Format("%d" , 0); sql = "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" and FoodCheck = "+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbFood.SetRefDataSource(NULL); m_dbFood.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbFood.SetColumnHeaders(2) ; m_dbFood.Refresh(); GetDlgItem(IDOK)->EnableWindow(TRUE); } } else { AfxMessageBox("请输入菜肴编号"); return; } } void CDeskDlg::OnOK() //下单消息按钮 { CString str,sql,str1; int m_nTempRePrice; m_nTotalPrice = 0; while(!m_pRecordset_Order->adoEOF) { m_nTempRePrice=m_pRecordset_Order->GetCollect("FoodRePrice").lVal; m_nTotalPrice += m_nTempRePrice; m_pRecordset_Order->MoveNext(); } if(m_nTotalPrice>0) { int temp=0; str1.Format("%d",temp); str.Format("%d",m_nOrderDeskNumber); sql = "SELECT * FROM DeskInfo WHERE DeskNum = "+str+" and DeskCheck = "+str1+""; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount()==0) { m_pRecordset_Desk->AddNew(); str.Format("%d",m_nOrderDeskNumber); m_pRecordset_Desk->PutCollect("DeskNum",(_variant_t)str); str.Format("%d",m_nTotalPrice); m_pRecordset_Desk->PutCollect("DeskPrice",(_variant_t)str); temp = 0; str.Format("%d" , temp); m_pRecordset_Desk->PutCollect("DeskCheck",(_variant_t)str); } else { str.Format("%d",m_nTotalPrice); m_pRecordset_Desk->PutCollect("DeskPrice",(_variant_t)str); } m_pRecordset_Desk->Update(); m_pRecordset_Desk->Close(); } CDialog::OnOK(); } void CDeskDlg::OnUpdateOrderDeskNumber() //根据餐桌号自动将原来已点的食物信息绑定到数据列表 { UpdateData(TRUE); CString str,sql; str.Format("%d",m_nOrderDeskNumber); CString str1; int temp=0; str1.Format("%d" , temp); sql = "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" and FoodCheck = "+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbFood.SetRefDataSource(NULL); m_dbFood.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbFood.SetColumnHeaders(2) ; m_dbFood.Refresh(); } 3.2结账模块设计 结账模块的功能是员工输入桌台代码进行结账、选择结账方式(包括现金结账、信用卡结账、支票结账、签单等)、自动找零。结账模块如图7所示: 图7 结账模块 为对话框类添加3个数据集对象,代码如下: _RecordsetPtr m_pRecordset_Paymode; _RecordsetPtr m_pRecordset_Order; _RecordsetPtr m_pRecordset_Desk; 对话框类的各成员函数的代码如下: CPayDlg::CPayDlg(CWnd* pParent /*=NULL*/) : CDialog(CPayDlg::IDD, pParent) { //{{AFX_DATA_INIT(CPayDlg) m_strPaymode = _T(""); m_strPayUserName = _T(""); m_nPayDeskNumber = 0; m_nPayTotalPrice = 0; m_nPayRealPrice = 0; m_nPayRePrice = 0; m_timePay = COleDateTime::GetCurrentTime(); //}}AFX_DATA_INIT } BOOL CPayDlg::OnInitDialog() //对话框初始化函数 { CDialog::OnInitDialog(); m_strPayUserName=theApp.m_name; CString sql; sql="SELECT * FROM PayModeInfo"; m_pRecordset_Paymode.CreateInstance("ADODB.Recordset"); m_pRecordset_Paymode->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Paymode->GetRecordCount()!=0) { while(!m_pRecordset_Paymode->adoEOF) { m_coPaymode.AddString((LPCTSTR)(_bstr_t)m_pRecordset_Paymode->GetCollect("NAME")); m_pRecordset_Paymode->MoveNext(); } m_pRecordset_Paymode->Close(); m_coPaymode.SetCurSel(0); } UpdateData(FALSE); return TRUE; } void CPayDlg::OnUpdatePayDeskNumber() //自动将对应桌号的<em>点菜</em>信息以及消费情况显示在桌面上 { UpdateData(TRUE); CString sql,str,str1; int temp=0; str.Format("%d",m_nPayDeskNumber); str1.Format("%d",temp); sql="SELECT * FROM DeskInfo WHERE DeskNum="+str+" AND DeskCheck="+str1+" "; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount()!=0) { m_nPayTotalPrice=m_pRecordset_Desk->GetCollect("DeskPrice").lVal; } m_pRecordset_Desk->Close(); sql="SELECT * FROM OrderInfo WHERE DeskNum="+str+" AND FoodCheck="+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbPay.SetRefDataSource(NULL); m_dbPay.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbPay.SetColumnHeaders(1); m_dbPay.Refresh(); UpdateData(FALSE); } void CPayDlg::OnUpdatePayRealprice() //根据实收金额自动计算找零金额 { UpdateData(TRUE); m_nPayRePrice=m_nPayRealPrice-m_nPayTotalPrice; UpdateData(FALSE); } void CPayDlg::OnOK() //确定按钮消息函数,将数据写回DESK表和ORDER表,结账完成 { UpdateData(TRUE); if(!m_strPaymode.IsEmpty()&&m_nPayRealPrice!=0) { CString sql,str,str1; int temp=0; str.Format("%d",m_nPayDeskNumber); str1.Format("%d",temp); sql="SELECT * FROM DeskInfo WHERE DeskNum="+str+" AND DeskCheck="+str1+" "; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount!=0) { temp=1; str.Format("%d",temp); m_pRecordset_Desk->PutCollect("DeskCheck",(_variant_t)str); int selmode; selmode=m_coPaymode.GetCurSel(); m_coPaymode.GetLBText(selmode,m_strPaymode); m_pRecordset_Desk->PutCollect("DeskPaymode",_variant_t(m_strPaymode)); CString paytime; CTime now=CTime::GetCurrentTime(); paytime=now.Format(_T("%Y-%m-%d %H:%M:%S")); m_pRecordset_Desk->PutCollect("DeskDateTime",(_variant_t)paytime); m_pRecordset_Desk->PutCollect("DeskName",(_variant_t)m_strPayUserName); } m_pRecordset_Desk->Update(); m_pRecordset_Desk->Close(); str.Format("%d",m_nPayDeskNumber); sql="SELECT * FROM OrderInfo WHERE DeskNum="+str+" AND FoodCheck="+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Order->GetRecordCount()!=0) { temp=1; str.Format("%d",temp); while(!m_pRecordset_Order->adoEOF) { m_pRecordset_Order->PutCollect("FoodCheck",(_variant_t)str); m_pRecordset_Order->Update(); m_pRecordset_Order->MoveNext(); } } m_pRecordset_Order->Close(); str.Format("%d",m_nPayDeskNumber); str+="号桌已结账"; AfxMessageBox(str); CDialog::OnOK(); } else { AfxMessageBox("请输入完整信息"); } } 到此,结账模块已经设计完成。 3.3交接班模块设计 交接班模块的功能是<em>管理</em>员统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作做准备。交接班模块如图8所示: 图8 交接班模块 为对话框类添加两个数据集对象,代码如下: _RecordsetPtr m_pRecordset_Off; _RecordsetPtr m_pRecordset_Desk; 对话框类的各成员函数的代码如下: COffdutyDlg::COffdutyDlg(CWnd* pParent /*=NULL*/) : CDialog(COffdutyDlg::IDD, pParent) { //{{AFX_DATA_INIT(COffdutyDlg) m_strDayName = _T(""); m_nTotalAcount = 0; m_timeDay = 0; //}}AFX_DATA_INIT } BOOL COffdutyDlg::OnInitDialog() //对话框初始化 { CDialog::OnInitDialog(); m_timeDay=CTime::GetCurrentTime(); m_strDayName=theApp.m_name; UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void COffdutyDlg::OnCalDayBtn() //统计按钮,负责当班统计 { CString sql,str; int temp=1; str.Format("%d",temp); sql="SELECT * FROM DeskInfo WHERE DeskCheck="+str+" AND DeskName='"+m_strDayName+"' "; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); int renminbi_jine=0,qita_jine=0,total_jine=0,acount=0; if(m_pRecordset_Desk->GetRecordCount!=0) { while(!m_pRecordset_Desk->adoEOF) { str=m_pRecordset_Desk->GetCollect("DeskPaymode").bstrVal; if(str.CompareNoCase("人民币")==0) { renminbi_jine+=m_pRecordset_Desk->GetCollect("DeskPrice").lVal; } else { qita_jine+=m_pRecordset_Desk->GetCollect("DeskPrice").lVal; } acount++; m_pRecordset_Desk->MoveNext(); } } m_pRecordset_Desk->Close(); total_jine=renminbi_jine+qita_jine; m_pRecordset_Off.CreateInstance("ADODB.Recordset"); m_pRecordset_Off->Open("SELECT * FROM CalDayInfo",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Off->GetRecordCount!=0) { while(!m_pRecordset_Off->adoEOF) { m_pRecordset_Off->Delete(adAffectCurrent); m_pRecordset_Off->Update(); m_pRecordset_Off->MoveNext(); } } m_pRecordset_Off->AddNew(); m_pRecordset_Off->PutCollect("mode",_variant_t("人民币")); str.Format("%d",renminbi_jine); m_pRecordset_Off->PutCollect("money",_variant_t(str)); m_pRecordset_Off->AddNew(); m_pRecordset_Off->PutCollect("mode",_variant_t("其他")); str.Format("%d",qita_jine); m_pRecordset_Off->PutCollect("money",_variant_t(str)); m_pRecordset_Off->AddNew(); m_pRecordset_Off->PutCollect("mode",_variant_t("合计")); str.Format("%d",total_jine); m_pRecordset_Off->PutCollect("money",_variant_t(str)); m_dbTotalDay.SetRefDataSource(NULL); m_dbTotalDay.SetRefDataSource((LPUNKNOWN)m_pRecordset_Off); m_dbTotalDay.SetColumnHeaders(2); m_dbTotalDay.Refresh(); m_pRecordset_Off->Update(); m_nTotalAcount=acount; UpdateData(FALSE); } 3.4用户权限<em>管理</em>模块设计 用户权限模块的功能是方便<em>管理</em>人员查询员工的基本资料,设置员工的操作权限。用户权限设置模块的设计如图9: 图9 权限设置模块 对话框类的各成员函数的代码如下: CLevelDlg::CLevelDlg(CWnd* pParent /*=NULL*/) : CDialog(CLevelDlg::IDD, pParent) { //{{AFX_DATA_INIT(CLevelDlg) m_strUserName = _T(""); m_strUserNum = _T(""); m_strLevelSelect = _T(""); //}}AFX_DATA_INIT } BOOL CLevelDlg::OnInitDialog() { CDialog::OnInitDialog(); m_coLevelSelect.AddString("<em>管理</em>员"); m_coLevelSelect.AddString("用户"); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); UpdateData(FALSE); CString sql; sql="SELECT * FROM UserInfo "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CLevelDlg::OnChange() { GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(TRUE); GetDlgItem(IDC_CONFIRM)->EnableWindow(TRUE); UpdateData(TRUE); CString sql; sql="SELECT UserName,UserNum,UserLevel,UserPwd FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); } void CLevelDlg::OnConfirm() { UpdateData(TRUE); if(!m_strLevelSelect.IsEmpty()) { if(m_strLevelSelect.CompareNoCase("<em>管理</em>员")==0) { CString str,sql; int temp=1; str.Format("%d",temp); sql="SELECT UserName,UserNum,UserLevel,UserPwd FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_pRecordset->PutCollect("UserLevel",_variant_t(str)); m_pRecordset->Update(); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); AfxMessageBox("权限修改成功"); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); } else { CString str,sql; int temp=0; str.Format("%d",temp); sql="SELECT UserName,UserNum,UserLevel,UserPwd FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_pRecordset->PutCollect("UserLevel",_variant_t(str)); m_pRecordset->Update(); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); AfxMessageBox("权限修改成功"); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); } } else { AfxMessageBox("请选择权限"); } } void CLevelDlg::OnShowAll() { CString sql; sql="SELECT * FROM UserInfo "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); } 至此,权限设置模块设计完成。 3.5菜谱<em>管理</em>模块设计 菜谱<em>管理</em>模块的功能是<em>管理</em>人员进行新菜式的录入、菜式修改、删除等菜式维护。菜谱<em>管理</em>模块如图10: 图10 菜单<em>管理</em>模块 对话框类的各成员函数的代码如下: CMenuSetDlg::CMenuSetDlg(CWnd* pParent /*=NULL*/) : CDialog(CMenuSetDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMenuSetDlg) m_nInputNum = 0; m_nCost = 0; m_strName = _T(""); m_nNum = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); //}}AFX_DATA_INIT } BOOL CMenuSetDlg::OnInitDialog() //对话框初始化 { CDialog::OnInitDialog(); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CMenuSetDlg::OnUpdateEditInputNum() { UpdateData(TRUE); if(m_nInputNum!=0) { GetDlgItem(IDC_INQUIRY)->EnableWindow(TRUE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); } } void CMenuSetDlg::OnInquiry() //查询 { UpdateData(TRUE); CString sql,str; str.Format("%d",m_nInputNum); sql="SELECT * FROM MenuInfo WHERE FoodNum="+str+" "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()!=0) { m_nInputNum=0; m_nNum=m_pRecordset->GetCollect("FoodNum").lVal; m_strName=m_pRecordset->GetCollect("FoodName").bstrVal; m_strType=m_pRecordset->GetCollect("FoodType").bstrVal; m_nPrice=m_pRecordset->GetCollect("FoodPrice").lVal; m_nCost=m_pRecordset->GetCollect("FoodCost").lVal; m_strRemark=m_pRecordset->GetCollect("FoodRemark").bstrVal; GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(TRUE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); } else { // m_nInputNum=0; AfxMessageBox("您所查找的菜肴不存在"); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); } UpdateData(FALSE); } void CMenuSetDlg::OnAddNew() //新增 { m_nCost = 0; m_strName = _T(""); m_nNum = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); GetDlgItem(IDC_ADDSAVE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_NUM)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(TRUE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_INPUT_NUM)->EnableWindow(TRUE); UpdateData(FALSE); } void CMenuSetDlg::OnAddSave() //保存所增加项 { UpdateData(TRUE); if(m_nCost!=0 && m_nNum!=0 && m_nPrice!=0 && !m_strName.IsEmpty() && !m_strRemark.IsEmpty() && !m_strType.IsEmpty()) { GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_INPUT_NUM)->EnableWindow(TRUE); CString str,sql; str.Format("%d",m_nNum); sql="SELECT * FROM MenuInfo WHERE FoodNum="+str+""; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()!=0) { AfxMessageBox("菜肴号码已存在"); } else { m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM MenuInfo",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_nNum==0) { AfxMessageBox("菜肴号码不能为0"); return; } else { m_pRecordset->AddNew(); str.Format("%d",m_nNum); m_pRecordset->PutCollect("FoodNum",_variant_t(str)); m_pRecordset->PutCollect("FoodName",_variant_t(m_strName)); m_pRecordset->PutCollect("FoodType",_variant_t(m_strType)); str.Format("%d",m_nPrice); m_pRecordset->PutCollect("FoodPrice",_variant_t(str)); str.Format("%d",m_nCost); m_pRecordset->PutCollect("FoodCost",_variant_t(str)); m_pRecordset->PutCollect("FoodRemark",_variant_t(m_strRemark)); m_pRecordset->Update(); m_pRecordset->Close(); AfxMessageBox("已保存"); m_nCost = 0; m_strName = _T(""); m_nNum = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); UpdateData(FALSE); } } } else AfxMessageBox("请输入完整信息"); } void CMenuSetDlg::OnModify() //修改 { GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(TRUE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(TRUE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); m_nCost = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); UpdateData(FALSE); } void CMenuSetDlg::OnModifysave() //保存修改 { UpdateData(TRUE); if(!m_strType.IsEmpty()&&m_nPrice!=0&&m_nCost!=0&&!m_strRemark.IsEmpty()) { CString str,sql; str.Format("%d",m_nNum); // m_pRecordset->PutCollect("FoodNum",_variant_t(str)); // m_pRecordset->PutCollect("FoodName",_variant_t(m_strName)); m_pRecordset->PutCollect("FoodType",_variant_t(m_strType)); str.Format("%d",m_nPrice); m_pRecordset->PutCollect("FoodPrice",_variant_t(str)); str.Format("%d",m_nCost); m_pRecordset->PutCollect("FoodCost",_variant_t(str)); m_pRecordset->PutCollect("FoodRemark",_variant_t(m_strRemark)); m_pRecordset->Update(); AfxMessageBox("修改成功"); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); } else { AfxMessageBox("请输入完整信息"); } } void CMenuSetDlg::OnDel() { m_pRecordset->Delete(adAffectCurrent); m_pRecordset->Close(); AfxMessageBox("删除成功"); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); } 至此,菜谱<em>管理</em>模块设计完成。 3.6付款方式设置模块设计 付款方式设置模块如图11: 图11 付款方式模块 对话框类的各成员函数的代码如下: CSetPaymodeDlg::CSetPaymodeDlg(CWnd* pParent /*=NULL*/) : CDialog(CSetPaymodeDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSetPaymodeDlg) m_strPaymode = _T(""); //}}AFX_DATA_INIT } BOOL CSetPaymodeDlg::OnInitDialog() //对话框初始化 { CDialog::OnInitDialog(); m_bAdd=FALSE; m_bDel=FALSE; m_sInputPaymode.ShowWindow(SW_HIDE); m_editPaymode.ShowWindow(SW_HIDE); m_btnSure.ShowWindow(SW_HIDE); CString sql; sql="SELECT * FROM PayModeInfo"; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbPaymode.SetRefDataSource(NULL); m_dbPaymode.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbPaymode.SetColumnHeaders(1); m_dbPaymode.Refresh(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CSetPaymodeDlg::OnPaymodeAddBtn() //单击按钮后,开始新增 { m_sInputPaymode.ShowWindow(SW_SHOW); m_editPaymode.ShowWindow(SW_SHOW); m_btnSure.ShowWindow(SW_SHOW); m_bAdd=TRUE; m_bDel=FALSE; } void CSetPaymodeDlg::OnPaymodeDelBtn() //单击按钮后,开始删除 { m_sInputPaymode.ShowWindow(SW_SHOW); m_editPaymode.ShowWindow(SW_SHOW); m_btnSure.ShowWindow(SW_SHOW); m_bAdd=FALSE; m_bDel=TRUE; } void CSetPaymodeDlg::OnOK() //确定添加或者删除 { UpdateData(TRUE); if(!m_strPaymode.IsEmpty()) { if(m_bAdd==TRUE) { CString str; BOOL flag=0; m_pRecordset->MoveFirst(); while(!m_pRecordset->adoEOF) { str=m_pRecordset->GetCollect("NAME").bstrVal; if(str.CompareNoCase(m_strPaymode)==0) { MessageBox("您输入的付款方式已存在","输入错误",MB_OK|MB_ICONWARNING); flag=1; break; } else m_pRecordset->MoveNext(); } /* CString sql; sql="SELECT * FROM PayModeInfo WHERE NAME='"+m_strPaymode+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()==0) { MessageBox("您输入的付款方式已存在","输入错误",MB_OK|MB_ICONWARNING); flag=1; } */ if(flag==0) { m_pRecordset->MoveLast(); m_pRecordset->AddNew(); m_pRecordset->PutCollect("NAME",_variant_t(m_strPaymode)); m_pRecordset->Update(); m_dbPaymode.SetRefDataSource(NULL); m_dbPaymode.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbPaymode.SetColumnHeaders(1); m_dbPaymode.Refresh(); m_bAdd=FALSE; } } if(m_bDel==TRUE) { BOOL flag=0; UpdateData(TRUE); CString str; int newid; /* m_pRecordset->MoveFirst(); while(!m_pRecordset->adoEOF) { str=m_pRecordset->GetCollect("NAME").bstrVal; if(str.CompareNoCase(m_strPaymode)==0) { flag=1; m_pRecordset->Delete(adAffectCurrent); m_pRecordset->Update(); break; } else m_pRecordset->MoveNext(); } */ CString sql; sql="SELECT * FROM PayModeInfo WHERE NAME='"+m_strPaymode+"'"; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()!=0) { flag=1; m_pRecordset->Delete(adAffectCurrent); m_pRecordset->Update(); m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM PayModeInfo",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbPaymode.SetRefDataSource(NULL); m_dbPaymode.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbPaymode.SetColumnHeaders(1); m_dbPaymode.Refresh(); m_bDel=FALSE; } if(flag==0) { MessageBox("您输入的付款方式不存在,请查询后确认","输入错误",MB_OK|MB_ICONWARNING); } m_dbPaymode.Refresh(); m_bDel=FALSE; } m_editPaymode.SetWindowText(""); m_sInputPaymode.ShowWindow(SW_HIDE); m_editPaymode.ShowWindow(SW_HIDE); m_btnSure.ShowWindow(SW_HIDE); } else { AfxMessageBox("请输入付款方式"); } } 至此,付款方式设置模块设计完成。 六、系统演示 <em>系统设计</em>并编写完成后,编译运行程序,初始界面如图12所示: 图12 1. 系统登录 单击“登录”菜单,弹出登录界面,在登陆界面输入框中分别输入用户编号、用户名和密码,如图13所示。 如果用户名和密码都正确,那么就可以登陆系统,系统提示如图14所示。 图13 图14 如果用户名不存在或密码输入不正确,系统提示如图15和图16所示,将无法进入系统。 图15 图16 如果未登录就进行其他操作,系统提示如图17所示。只有登录后才能操作其他功能。单击“注册”菜单,弹出注册对话框如图18所示。 按要求填写完注册信息,如果注册名未被注册,并且前后两次输入的密码一致,那么系统给出如图19所示提示。 如果前后两次输入密码不一致,系统给出如图20所示提示,此时注册不成功。 图19 图20 2.订餐操作 系统登录后,单击“订餐”菜单,弹出“餐桌信息”对话框,如图21所示。 餐桌第一次订餐时,输入餐桌编号、食物编号、数量以及折扣,单击“<em>点菜</em>”按钮,在右侧<em>点菜</em>信息栏中列举了该餐桌所点的菜肴,如图22所示。 图21 图22 如果餐桌已经订过餐,但是还没有结账,则在餐桌编号输入框输入餐桌号,在<em>点菜</em>信息栏中显示该桌已点的菜。 单击“下单”按钮,即可把<em>点菜</em>信息记录下来。 3.结账操作 单击“结账”菜单,弹出“结账单”对话框。输入桌台号,自动显示对应的<em>点菜</em>信息以及消费金额。选取付款方式和实收金额后,界面会自动显示找零金额,结果如图23所示。 图23 4.用户权限设置 单击“<em>管理</em>”|“用户权限设置”,弹出“权限设置”对话框,如图24所示,所有用户的信息都显示在数据列表中。 输入要查询的用户编号和名称,单击“更改”,该用户的信息就显示在列表中,结果如图25所示。 图24 图25 选择权限,单击确定后,如图26所示,用户权限已被修改。 图26 单击“显示全部”,结果如图27所示。 图27 5.菜谱<em>管理</em> 单击“<em>管理</em>”|“菜谱设置”菜单,弹出“菜谱设置”对话框,如图28所示。 图28 在“菜谱设置”对话框中可以对菜谱进行查找、添加、删除、修改等操作。 6.付款方式设置 单击“<em>管理</em>”|“付款方式设置”菜单,弹出“付款方式”对话框,如图29所示。 单击“新增”或“删除”按钮,显示新增付款方式文本框和“确定”按钮,如图30所示。 图29 图30 在文本框中输入要增加/删除的付款方式,并单击“确定”按钮,将新增或删除所选择的付款方式。 7.注销用户 单击“注销”菜单,弹出“注销询问”对话框如图31所示。选择“确定”,注销成功,如图32所示。 图31 图32 8.系统退出 单击“退出系统”菜单,弹出“退出询问”对话框如图33所示。选择“确定”,则系统退出。 图33 至此,系统的全部功能已经演示完毕。 七、结束语 经过两个多星期的时间,终于完成了本系统的设计。虽然本系统有一些漏洞和不完善的地方,但是本系统结合餐饮<em>管理</em>的实际情况,基于数据库设计通用的模块,对餐饮<em>管理</em>的前台和后台操作进行功能模块的设计,实现了餐饮<em>管理</em>的基本功能。 在设计的过程中,遇到了很多的技术上的问题。例如,第一次接触ADO数据库访问技术,对用ADO来连接数据库不是很了解,出现了很多的问题,设计受到了很大的阻碍。经过向专业指导老师请教和参阅了有关书籍后,终于把一些问题解决了。在本次设计中,我懂得了“书到用时方恨少”的道理,发现了自己在专业方面还有很多要提高的地方,在今后的学习中,我一定努力进步! 参考文献: [1] 萨师煊,王珊.数据库系统概论[M]第3版.北京:高等教育出版社,2000 [2] 侯其锋,李晓华,李莎.Visual C++数据库通用模块开发与系统移植.北京:清华大学出版社,2007 致 谢 在这次<em>课程设计</em>中,戴小鹏老师给了我很大的帮助。他对我的精心指导和关心,使我在设计的过程中受到了很大的启发。特别是他的那份耐心和责任心,使我在今后的学习和工作中受益匪浅。在此,特向戴小鹏老师表示衷心的感谢!
餐饮业管理系统(基于C++的)
题目:餐饮业<em>管理</em>系统(基于C++的)rn rn问题描述:rn建立一个餐饮业<em>管理</em>系统,可以处理以下对象:rn(1)餐馆基本信息rn(2)顾客信息rn(3)菜品信息rn(4)服务员信息rn rn设计一个餐饮业<em>管理</em>系统,使之能提供以下基本功能:rn(1)查询餐馆的总信息。rn(2)查询服务员的信息。rn(3)查询顾客的信息。rn(4)查询菜品信息rn(5)增加顾客(顾客桌号、排队号、所<em>点菜</em>(若干))rn
值得学的C++餐厅餐饮管理点菜系统!
一个大学餐厅的<em>管理</em>系统,采用ACCESS作为数据库,VC++6.0源码开发,支持桌号<em>管理</em>,点击桌号可查看菜谱菜价等。系统分四大模块:前台销售、统计报表、基础资料、系统维护,每个模块下面又分了若干小功能模块。运行时如果你没有VC++开发环境的话,可能需要手动下载几个DLL文件:MFC42D.DLL、MFCD42D.DLL、<em>mfc</em>o42d.dll等。nnnnnn项目源码展示:nnnnnn效果展示:...
MFC餐饮管理系统
用MFC做的一个餐饮<em>管理</em>系统,里面包含了多个界面,且功能全面,用到的数据库技术是ADO,使用者不需要修改设置,便能运行。MFC作为底层开发,在网上所能找到的资源数也不多,但愿我这个代码能帮助到大家。
酒店客房管理系统数据库课程设计
<em>酒店</em>客房<em>管理</em>系统数据库<em>课程设计</em>论文,需求分析,概念设计,逻辑设计,物理设计,数据库的实施和测试
项目实战篇-餐馆管理系统—MFC,PHP,MySql:5.菜单管理模块
前段时间遇到了问题导致更新不下去了,现在已经解决,继续更新。为了提供编译速度,自己也将一些宏定义、包含文件还有常用函数搬家到 stdafx.h 中。
JSP酒店管理系统课程设计yuan源代码
完整的jsp<em>酒店</em><em>管理</em>系统 这里提供全部的代码,采用MVC。包括数据库建立代码文档 ,用mysql链接数据库,更加方便
Java酒店管理系统课程设计2016
Java<em>酒店</em><em>管理</em>系统<em>课程设计</em>,采用Java+Eclipse+MySQL进行开发,分为了<em>管理</em>员和普通用户,普通用户需要注册,<em>管理</em>员是内置的admin账号 完成时间20160706 提示: 1、项目里面的hotelSystem_20160706\src\hadwin\mainMethodEntrance.java是整个项目的入口 2、由于连注册的时候需要用到数据库hotelSystem_20160706\src\db\Jdbc.java是关于数据的连接部分,在这里可以修改为自己的数据库名和user和password 3、建议只在MySQL中(其他数据库连接时需要做相应的修改),创建一个hotelsystem数据库(表什么的都不用建立),然后在2中修改成你自己的数据库账号和密码,然后直接用<em>管理</em>员账户admin(账户密码都是),进入后点击菜单上面的系统<em>管理</em>->数据回滚—>然后选中hotelSystem_20160706\hotelsystem.sql这个是我用的数据备份里面初始化了一些数据和表结构,这样子就可以很简单的恢复了项目的数据库数据和结构 4、数据库这块正确了,就是正确的打开该项目的方式。如果3的方式不会的话,也可以将hotelSystem_20160706\hotelsystem.sql代码语句在MySQL里面执行一遍就行了 5、由于个人水平,代码肯定还有一些不完善的地方需要完善,见谅 20160706 Runs Wang
酒店管理系统设计说明书
详细的<em>酒店</em><em>管理</em><em>系统设计</em>说明书文档,可以作为<em>课程设计</em>的参考。
酒店点餐系统
jsp+servlet+c3p0+dbutils+ajax制作的一个<em>点菜</em>系统,分为前端和后台,带数据库,还有每一天的详细word文档,一共拆分为四天的内容,里面有jar包和制作过程,另外专门有完成代码。数据库在day01文件夹里面
数据库课程设计(饭店点菜系统)
本系统的目标是为用户提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映饭店的工作情况、经营情况、从而提高饭店的服务质量,获得更的好经济效益。其具体目标包括: 1)快速完成顾客的<em>点菜</em> 2)准确地记录顾客的每笔消费记录 3)实时、快速、准确地提供最新的菜单 4)方便查询顾客消费的情况 5)方便<em>管理</em>职工信息 工程+文档,一条龙服务!!
C++课程设计-酒店管理系统
C++<em>课程设计</em>-<em>酒店</em><em>管理</em>系统 vc6 3000行代码,请只做学习之用,尊重版权。
餐饮管理系统(数据库课程设计
一、需求分析 随着社会服务行业的发展,餐饮业对自身服务的质量和能力也有了更高的要求。餐饮<em>管理</em>系统正是在这样的情况之下越来越受到重视。餐厅的内部服务项目众多,既需要完成前台的服务工作,还需要完成后台的<em>管理</em>工作,如果没有一套可靠的餐饮<em>管理</em>系统,单凭手工操作,不仅效率低,而且会极大地影响到<em>酒店</em>的服务质量。 设计的目标:实现餐饮<em>管理</em>的科学化、自动化,提高各个模版的办公效率,为高质量的餐饮服务提供保证。 系统功能概述 民以食为天,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。经过多年发展,餐饮<em>管理</em>已经逐渐由定性<em>管理</em>,进入到重视定量<em>管理</em>的科学阶段。众所周知,在定量<em>管理</em>的具体实现方法和手段方面,最有效的工具就是计算机<em>管理</em>。 传统的手工操作<em>管理</em>存在着许多无法避免的问题,例如: 人工计算机账单金额出现差错; 收银工作中跑单、漏单、偷钱现象普遍; 个别服务员作弊、改单、宰客情形时有发生; 客人消费单据难以保存和查询。 如果借助计算机来<em>管理</em>,就可以轻松的解决处理这些问题。一个餐饮<em>管理</em>信息系统应该包括基本的餐厅的服务<em>管理</em>、<em>管理</em>人员信息的维护等,以及与之相应的操作。所以整个餐饮<em>管理</em>信息系统分为两个大部分,即后台的数据<em>管理</em>维护和前台的操作。后台数据库的<em>管理</em>能保证系统各项功能正常运行,前台操作能提供给客户尽可能方便快捷的服务。 功能模块划分 1. 前台操作系统 订餐<em>管理</em>模块:<em>点菜</em>(输入桌台代码和食物代码)、加菜、下单。 结账<em>管理</em>模块:结账(输入桌台代码)、结账方式选择(包括现金结账、信用卡结账、支票结账、签单等)。 交班<em>管理</em>模块:统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作作准备。 2. 后台<em>管理</em>维护系统 用户权限设置:可以查询员工的基本资料(姓名、性别、年龄、出生年月、籍贯、家庭住址等),员工登录名称、密码、员工操作权限等,可以根据需要进行设置。 菜谱设置:新菜单录入(包括菜式名称、代码、类型、价格、成本等)、菜式修改、删除等菜式维护。 付款方式设置:分为人民币付款、信用卡、支票签单等,可以根据需要进行添加和删除。 系统流程分析 系统流程图1所示。当用户进入系统主界面以后,新用户经过注册后才能凭借其用户名和密码登录,老用户可以直接登录。用户登录以后,系统自动判断出其操作权限。操作权限包括普通员工和<em>管理</em>人员。新用户的操作权限默认为是普通员工。普通员工只能进行订餐、结账操作,而<em>管理</em>人员除此之外还可以进行系统设置与营业分析。
数据库课程设计 ——酒店管理系统
一、 需求分析n1.软件需求n(1)<em>酒店</em><em>管理</em>系统用于满足<em>酒店</em>工作人员和<em>管理</em>人员的需求。n(2)<em>酒店</em><em>管理</em>人员和工作人员可以为<em>酒店</em>房间加入入住和退房记录,并生成相应的报表用于查阅,确认和保存,<em>酒店</em>工作人员可以浏览、查询、统计、添加<em>酒店</em>房间的入住离开信息。<em>管理</em>员可以查询房间信息、查询员工信息、更改房间信息、更改员工信息等。n(3) 客户可以申请入住<em>酒店</em>,<em>酒店</em>工作人员需要对客户的姓名、性别、身份证号、房间...
餐馆点菜系统c语言的源代码
餐馆<em>点菜</em>系统c语言的源代码,一些封装的函数,对链表的操作,还有文件的存取。
C语言餐馆点餐系统
自己C语言课设做的,初学的可以参考下,虽然不是很好,毕竟验收过了
c语言课程设计-旅馆管理系统 基于链表
自己写的一个基础的<em>管理</em>系统,使用链表实现,能实现登入、建立链表、插入信息、查询信息、信息排序、信息删减、保存链表至本地和从本地数据中创建链表等功能 n n首先是链表的建立和节点插入,我是首先建立链表(第一次使用软件),之后的信息添加则通过添加节点实现nnstruct save *creat()//建立链表函数 n{ nn struct save *p1,*p2,*head;nn i...
使用C语言实现点菜系统
//rnrn//  main.crnrn//  <em>点菜</em>系统rnrn// 实现一个<em>点菜</em>系统,要求运行时随机输出一个菜名,但是文本文件中的菜名数量用参数写入,方便后续可以添加菜单,暂时想到的是使用fgets()来遍历这个文本文件,然后加入计数器,返回菜单的总个数,再使用一个随机数,打印出这个菜单名rnrn//  Created by 钱卫 on 15/10/25.rnrn//  Copyright ©
酒店客房管理系统(数据库课程设计
SQL Server数据库<em>课程设计</em>--<em>酒店</em>客房<em>管理</em>系统 有代码有文档 适合初学者
酒店管理系统源码(ASP C# .NET C 毕业设计)
<em>酒店</em><em>管理</em>系统源码(ASP C# .NET C 毕业设计) 可直接运行。做毕业设计、<em>课程设计</em>或者想研究下技术的可以下载学习。需要更多资源的可以关注我。
面向对象程序课程设计-【酒店客房预订系统】
 nn nn 面向对象程序<em>课程设计</em>nn任务书nn nn【题目】<em>酒店</em>客房预订系统nn nn【目的】nn通过设计一个小型的快捷式<em>酒店</em>客房预订系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。nn nn【要求】nn1、每个学生必须独立完成;nn2、<em>课程设计</em>时间为1周;nn3、设计语言采用C++;nn4、学生有事离校必须请假。<em>课程设计</em>期间...
Android项目源码酒店点餐系统包括客户端服务端数据库
Android项目源码<em>酒店</em>点餐系统包括客户端服务端数据库
基于C++大型酒店综合业务管理系统的设计
经济的快速发展,人们的生活水平和消费意识的提高,促进了旅游业的发展。<em>酒店</em>行业将面临着机遇和挑战。面对快速发展的信息产业带来的影响。将电脑技术和电脑服务引入<em>酒店</em><em>管理</em>成为一种必然的趋势。众多<em>酒店</em>企业中,中小型<em>酒店</em>企业由于他们的先天条件的不足,使他们不能投入大量的资金进行这项必须的改革。因此开发一套简单、实用的中小型<em>酒店</em>客房<em>管理</em>信息系统是十分有必要的
酒店管理系统C++代码
自己用C++编写的<em>酒店</em><em>管理</em>系统,对于新手的学习具有很大的帮助
C语言实现酒店管理系统
这是自己做的一个项目,用C语言和c++ Qt实现了<em>酒店</em>的<em>管理</em><em>点菜</em>,删菜,查询菜单,等一系列功能,数据库用的是sqlite,在mini2440上测试通过
基于SSH的酒店餐饮点菜管理系统
基于SSH的<em>酒店</em>餐饮<em>点菜</em><em>管理</em>系统
C++课程设计——酒店客房预订系统
当初自己做的C++的<em>课程设计</em>资源文件包含完整c++项目源代码和可执行文件,界面是用MFC。
C++ 课程设计学生成绩管理系统源代码
用c++实现学生成绩<em>管理</em>系统,要求用类实现并且可实现增删改查及成绩排名。rn#includerntypedef class rn{  rnpublic: rnint cls; char nam[10];  char num[10];  int c;  int english;  int computer;  int math; int s;rn}Student;  rnStudent stud1[
酒店订餐管理系统软件设计报告
数据库<em>课程设计</em>报告,Java结合SQLserver编写的<em>酒店</em>订餐<em>管理</em>系统,报告文档包含代码
c++实现餐厅点餐功能
还没来得及学习太多,保存着,等慢慢补充吧。#include "iostream"n#include "stdlib.h"n#include "iomanip"nusing namespace std;nconst int NUM = 3;nclass Guest;nclass Foodn{nprivate:n int Fnum; //菜编号n char Fname
点餐系统---------软件工程课程设计
项目名称 餐厅点餐系统3.0 版本类型 java web版 使用开发工具 myeclipse或者eclipse,Tomcat7.0,mysql 使用框架 Spring+SpringMVC+mybatis+ajax+javascript+jQuery
酒店管理系统毕业设计源码
很经典的<em>酒店</em><em>管理</em>系统毕业设计源码
一个用java做的酒店点菜管理系统
这是一个用纯java做的<em>酒店</em><em>点菜</em>的<em>管理</em>系统,自带数据库,简单调试即可,swing做的界面。
课程设计————学生信息管理系统(包含历代思路和代码)
<em>课程设计</em>————学生<em>管理</em>系统(包含历代思路和代码)rnrnrnrn一.前言rnrn学生信息<em>管理</em>系统是我第一个独立完成的比较长的代码,也算是花费了一些心血,这个系统是我一点点把它从几百行的代码逐渐优化到上千行,功能从简单到复杂。在这里我把我的思路分享给大家,希望能给大家带来一些帮助。 rnrn相比较上一篇博客(学生<em>管理</em>系统)而言,这一篇,主要讲的是我逐步优化的思路和过程。以及在那篇博客后,继续进行的优化。
点菜系统(课程设计
#include&lt;iostream&gt;n#include&lt;iomanip&gt;//sn#include&lt;fstream&gt;//wn#include&lt;string&gt;nusing namespace std;nclass cmenun{nint num;nstring name;nfloat price;nstring kind;nint sort;...
MFC课程设计 学生信息管理系统(C++)
(一). 实现简单地使用用户名和密码来进入登陆界面,以加强DOS运行窗口的可视化效果。如果输入的用户名和密码有一项为空或者是输入的用户名和密码是错误的,则不能进入系统。 (二). 实现任意添加学生的信息,包括添加学生的个人学号,姓名,性别,专业,年级出生日期。输入不允许为空,并且有提示功能,如果输入的时候有一项为空则提示输入相关的信息。 (三). 实现删除学生的信息,包括删除学生的个人学号,姓名,性别,专业,年出生日期。根据编号进行用户权限检查,在数据库中进行查找相符和的记录,如果编号在数据库中不存在相应记录,则提示不能删除,否则可以删除该记录。输入不允许为空,并且有提示功能,如果输入的时候为空则提示输入相关的信息。 (四). 实现编辑学生的信息,包括编辑学生的个人学号,姓名,性别,专业,年级,出生日期。输入不允许为空,并且有提示功能,如果输入的时候有一项为空则提示输入相关的信息。 (五). 实现查询学生的信息,包括编辑查询学生的个学号,姓名,性别,专业,年级,出生日期。输入不允许为空,并且有提示功能,如果输入的时候为空则提示输入相关的信息。 (六). 实现保存学生的信息,包括保存学生的个人学号,姓名,性别,专业,年级,出生日期。
学生学籍管理系统_C++_MFC可视化_数据库课程设计_完整课程设计报告
可视化MFC做的学生学籍<em>管理</em>系统,是数据库的<em>课程设计</em>,有数据库的表操作,附带<em>课程设计</em>报告
餐馆点菜系统
Think: n文件的输入输出那一块儿 还是不怎么会~~ 好像只成功输入输出了 user.dat那一份~~ 用了好久好久的时间写的程序~~, 感觉和上一篇blog的思路基本相同就是 各种调用函数。。。系统模块: n程序架构: n模块汇总:以台桌模块为例: n整体框架如下:#includen#includen#includen#includ
中小型酒店管理系统的设计与实现源代码
中小型<em>酒店</em><em>管理</em>系统的设计与实现源代码,B/S,Struts2框架,MySQL
MFC课程设计 --学生成绩管理系统
MFC<em>课程设计</em> --学生成绩<em>管理</em>系统 和原博文https://blog.csdn.net/qq_40160605/article/details/81227484内容一致,只是在博客中排版不方面,所以上传了一份原本交作业的work文档以供学习参考。
餐馆点餐管理系统-数据库课程设计-MySQL
本资源为本人手打,使用Java和MySQL创作,内含餐馆点餐<em>管理</em>系统代码+mysql导出文件。
宾馆客房管理信息系统(C#课程设计含数据库)
房间增加、删除、暂停使用等<em>管理</em>;订房、住店信息登记、结账与退房;会员卡积分和折扣<em>管理</em>;营收统计分析
c++课程设计宾馆客房管理系统
通过对c++课程的学习,我了解到了其面向对象的高级特性,我决定使用它实现一个宾馆客房<em>管理</em>系统,模拟一个实际宾馆客房系统的运行。
简易客房管理系统(C++)
//客房信息:等级类型(经济、标间、豪华、单人间、双人间、三人间)、剩余客房数量n//员工信息:楼层<em>管理</em>员、客房领班、客房经理等n//功能:n//1)登记客人入住登记:房号、客人姓名、入住时间、入住期限、入住押金、每日租金、客房等级、单/双/三人间)n//2) 给定员工姓名,显示本员工所<em>管理</em>的楼层客房信息(经济、标间、豪华、单/双/三人间的入住情况(包括空闲/已入住/入住客人姓名)n//3) 给定...
C语言课程设计 酒店房间登记与计费管理系统
内容包括:标准<em>课程设计</em>文档(设计要求 程序总体设计 源代码 数据结构设计描述 心得体会 程序流程图)
基于access的点菜系统
可以直接用的,基于access的<em>点菜</em>系统,功能强大的很那
java点餐系统 基于WEB的餐馆点菜系统的设计和实现
我答辩用的东西,要是有需要的,联系我 基于WEB的餐馆<em>点菜</em>系统的设计和实现
超市管理系统设计PPT
超市<em>管理</em>系统数据库方面,里面含有需求分析,概要设计,逻辑设计,ER图等
MFC课程设计(图书管理系统)实验报告(内带截图+完整代码)
MFC<em>课程设计</em>(图书<em>管理</em>系统)实验报告内容是按<em>课程设计</em>流程编写,有实验分析与设计,需求分析,实验结构分析,实验分析,实验步骤,相关截图,实验运行结果及截图,实验总结,主要算法与程序清单。 MFC<em>课程设计</em>(图书<em>管理</em>系统)实验报告意在为大家提供学习,参考。 也可用于<em>课程设计</em>作业提交。 本文档为本人原创。
酒店点菜管理系统设计文档
<em>酒店</em><em>点菜</em><em>管理</em>系统软件工程设计文档,绝对原创,绝对认真,当时得了95分呢~~包括概要设计和详细设计,什么界面啦、流程图啦之类的都有~~
java Swing酒店管理系统源码附数据库设计及中文注释
一个自己做的小型<em>酒店</em><em>管理</em>系统,主要功能都有,简单实用~
酒店管理系统源码完整版C++
C++开发的<em>酒店</em><em>管理</em>系统,采用MS SQL2000作为数据库,压缩包内有数据库脚本文件。本源码开源,可以任意修改。系统功能你可以根据需要不断的丰富完善。是学习和开发的好资料,希望对学习VC的朋友有所帮助!!!!!!!!
库存管理系统课程设计报告书
<em>课程设计</em>必用啊,库存<em>管理</em>提供入库业务(包括采购入库、其他入库)、出库业务(包括销售出库、其他出库)、仓库调拨、库存盘点、调价等强大功能,对仓存业务的物流和成本进行精确和及时的信息<em>管理</em>,并将相应信息自动流转给业务、销售、财务等相关部门,协助企业生产和销售活动的顺利进行。
酒店点餐系统1.0版(MFC程序)
本程序使用MFC制作完成,包含详细的文档和使用说明,涉及数据库操作,数据库图片的读取和显示,CSocket通信及通信协议,以及常用的控件操作。相关项目总结博客地址:http://blog.csdn.net/flytreeleft/archive/2010/05/15/5595004.aspx。
python3实现点餐系统
本文实例为大家分享了python3实现点餐系统的具体代码,供大家参考,具体内容如下nn题目:nn 某餐厅外卖每天更新菜品,但是搭配价格是不变的,具体如下:nn"今天菜单如下","1 宫保鸡丁","2 青椒鸡米粒" ,"3 白萝卜焖肉", "4 蒜薹腊肉", "5 豆腐包肉 ",nn"6 鲤鱼跃龙门", "7 凉拌莲藕", "8 红烧南瓜", "9 大白菜", "10...
酒店管理系统JAVA源代码
<em>酒店</em><em>管理</em>系统使用说明书 主要功能 本系统中包含如下6大功能模块: q 前台服务:该模块主要包括开台<em>点菜</em>、维护菜品、签单、结账等功能,其中维护菜品功能包括添加和取消菜品,能够取消菜品的前提条件是尚未签单,即处于开单状态,结账时则要求所有商品都要签单,否则不允许结账。 q 后台<em>管理</em>:该模块主要包括台号<em>管理</em>、菜系<em>管理</em>和菜品<em>管理</em>功能,其中菜系用来对菜品进行分类。 q 销售统计:该模块用来分段统计营业额,可以按日、月和年进行统计,其中日统计是按消费单和销售的商品统计销售额,月统计是按日期和每日的销售额统计销售额,年统计是按日期和月份统计销售额。 q 系统安全:该模块主要包括交接班、锁定系统和修改密码功能
基于SSM的客房预订系统的设计与实现
项目描述:该项目采用SSH作为开发框架,实现了<em>酒店</em>客房预订的<em>管理</em>功能。 在系统中,<em>管理</em>员可以实现<em>酒店</em>客房<em>管理</em>,对客房信息进行增删改查; 实现了住宿<em>管理</em>功能,旅客可以对客房进行预订并进行入住登记; 实现了财务<em>管理</em>的功能,统计<em>酒店</em>的营业额收入;旅客<em>管理</em>可以实现 对散客和旅游团信息的增删改查。下载地址:http://www.hrxxkj.com/webpage/91161180nnn...
C#基于.net三层架构的酒店管理系统的设计与实现
本系统主要由用户模块,<em>管理</em>员<em>管理</em>模块,两个模块构成。根据<em>酒店</em><em>管理</em>系统设定为两类用户:用户、<em>管理</em>员。其主要功能包括:(1)用户模块:添加预定、查看评论(添加)(2)<em>管理</em>员模块:查看预定(查询、修改、删除)、查看房间(查询、修改、删除)、添加/修改房间、查看房间类型(查询、修改、删除)、添加/修改房间类型、查看房间状态(查询、修改、删除)、入住/退房、查看入住记录、评论<em>管理</em>、修改密码、登录等。
Android应用源码无线点餐项目毕业设计全套
源码简介: 本套源码是一套毕业大学生设计的关于安卓网上订餐的项目,整个项目包括安卓端源码,J2EE的服务端、数据库以及44页的毕业论文等全部资料。登录使用的是web的数据库登录成功后会把用户数据存储在本地的SQLite数据库中,<em>点菜</em>界面调用的是web端数据。点完菜可以直接下单买单。总体来说项目的实用性不太大,但是应付毕设足矣。全部资料都打包了,需要的朋友可以在文章下面下载源码。 涉及模块&技术 j2ee 注册登录 网络模块 ...
Java web 课程设计(宿舍管理系统)
对于学校而言,学生<em>管理</em>系统是不可或缺的一部分。目前仍然存在有学校在宿舍<em>管理</em>系统方面手工记录数据的阶段,手工记录对于数据规模较小的学校来说勉强接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录相当繁琐和困难。而且在查询某条记录的时候,由于数据量庞大,只能依靠人工一条一条去查,效率极低。采用计算机来<em>管理</em>宿舍和学生信息,大大提高了查询速度,节约了人力物力,达到了预期的要求。 sql脚本我会后续上传,需要的可在我的博客下载,有疑问欢迎留言
酒店餐饮管理系统-java课程实践
本系统应用SQL server 2008,myeclipse开发 文件内容包括源代码、数据库文件、数据库描述、报告
酒店管理系统源码,课程设计
<em>酒店</em><em>管理</em>系统的完整代码。涉及到大量的java基础知识.特别适合java<em>课程设计</em>结课作业。
酒店餐饮管理系统中的点菜管理子系统的实现
<em>酒店</em>餐饮<em>管理</em>系统中的<em>点菜</em><em>管理</em>子系统的实现
C语言:点餐系统
#includen#includen#includen#includenusing namespace std;nclass shiwun{npublic:n string mingzi;n int price;n shiwu(){}n shiwu(string n,int p):mingzi(n),pr
酒店管理系统课程设计报告
用java编写的<em>酒店</em><em>管理</em>系统,格式要求很规范,是对付学校<em>课程设计</em>的最好帮手。用java编写的<em>酒店</em><em>管理</em>系统,格式要求很规范,是对付学校<em>课程设计</em>的最好帮手
实验室设备管理系统(课程设计)源码
本系统功能主要分为用户登录、系统<em>管理</em>、设备<em>管理</em>、用户操作四个部分。对于支持该系统的数据库,建立了2张表,分别是登录表和设备表。这对每一项功能,都有必要的驱动信息和功能上的约束。以设备<em>管理</em>功能为例,设备<em>管理</em>分为四部分:添加设备,删除设备,浏览设备,查询设备。添加设备时应该能对一些有限制的信息做好正确的检查,录入的设备信息应包括设备编号、设备名称、购进时间、国别、供应商、价格、存放地点保管人、借用人,并且在信息输入时应及时对信息的合法性进行检查;删除设备可以根据输入设备的名称进行删除;查询设备主要是对具有相关特征的设备信息进行查找;浏览设备是按照<em>管理</em>员的要求将用户所需的数据抽取出来自动生成报表,该项功能应该能够合理的抽取所需的信息集合,全面合理提供用户所需的数据。 主要的模块: 用户登录模块 系统<em>管理</em>模块 设备<em>管理</em>模块 用户操作模块 数据库连接部分全部写在了代码中,调试时注意修改源码。直接双击 “实验室设备<em>管理</em>系统.csproj”即可将项目文件导入,用VS2008或更高版本调试。
基于java酒店管理系统源码Java源码
基于java<em>酒店</em><em>管理</em>系统源码Java源码
Android 点餐系统体系结构设计 UML
本文档描述Android 点餐系统的设计过程, 此文档的编写目的是为了让设计以及运行人员能通过该文档以明确的软件构造体系设计方案规划来实现软件开发的要求,方于客户、软件设计人员、软件开发人员和整合测试人员了解体系结构具体设计方案,为其制作功能实现提供构造体系提供一定方便的直接性结构说明。 本说明书的预期读者为中间用户(指软件的<em>管理</em>人员、设计人员、开发人员、测试人员、维护人员)。
研究生初试录取系统 c 课程设计报告
研究生初试录取系统 c <em>课程设计</em>报告
餐厅点餐系统C++课程设计
软件工程<em>课程设计</em>——餐厅点餐系统!软件工程<em>课程设计</em>——餐厅点餐系统!软件工程<em>课程设计</em>——餐厅点餐系统!
MFC课程设计 学生成绩管理系统
C++<em>课程设计</em>,开发平台VS2017,利用MFC实现学生成绩<em>管理</em>系统,有导入文件,查询学生信息,计算绩点并排序,修改学生成绩等功能
java swing餐厅点餐系统的设计与实现及源码之Java图形界面餐厅点餐系统的实现
今天给大家介绍一下如何采用mvc的模式设计实现餐厅点餐系统,数据库采用的是mysql,下面先给大家看一下运行结果,源码下载地址会在最下方附上,登陆界面:(首先以<em>管理</em>员方式登录,查看下<em>管理</em>员的操作)然后看看<em>管理</em>员<em>管理</em>菜品,订单等相关功能:然后看看以用户角色登录:下面我们来介绍下代码实现方式:代码由dao、model、view三部分构成,在这里我们每一部分只介绍部分,代码太多了,不全部介绍,感兴趣的在...
MFC课程设计VC++超市管理系统
适用于计算机专业、软件专业学生,对初次接触MFC编程的同学有很多帮助。
基于jsp酒店管理系统设计(含源文件)
获取项目源文件,联系Q:1225467431,可指导毕设,课设n摘要n在积极建立科学<em>管理</em>机制的今天,仅仅靠原始的手工<em>管理</em>或简单的单机<em>管理</em>,<em>管理</em>部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。<em>管理</em>者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的<em>管理</em>思想就成为了一个可望而不可及的目标。<em>酒店</em>餐饮<em>管理</em>急需一...
c++面向对象课程设计报告_(学生成绩管理系统
c++面向对象<em>课程设计</em>报告_(学生成绩<em>管理</em>系统c++面向对象<em>课程设计</em>报告_(学生成绩<em>管理</em>系统c++面向对象<em>课程设计</em>报告_(学生成绩<em>管理</em>系统
基于web点餐系统的设计与实现
Web Programming Lab 04是基于web点餐系统的设计与实现
毕设的酒店管理系统论文翻译文献综述
毕业设计<em>酒店</em><em>管理</em>系统论文,英文翻译,文献综述
学生成绩管理系统——课程设计报告
学期末<em>课程设计</em>的作业,利用链表和文件的操作。日后再完善一些功能介绍。nnn/*************************************n*******程序名称:学生成绩<em>管理</em>系统 n*******作 者:n*******开发环境:Dev-C++5.11 n*******创建日期:2018.06.28n*******完成日期:2018.07.02 n***************...
基于Java的酒店管理系统的设计与实现
基于Java的<em>酒店</em><em>管理</em>系统的设计与实现,包含数据库,源代码,毕业设计论文与答辩PPT
【181205】简易的VC++宾馆管理系统Access版源代码
源码下载简介nn简易的VC++宾馆<em>管理</em>系统Access版中,源代码目录内的文件:n  HotelManageSys——宾馆<em>管理</em>系统程序;n  宾馆<em>管理</em>系统——宾馆<em>管理</em>系统安装程序;n  disk1——为宾馆<em>管理</em>系统安装文件;n  本系统几大功能模块:客户标准的维护重、客户信息<em>管理</em>、订房信息<em>管理</em>、结算信息<em>管理</em>等。nn源码下载地址:点击下载nn备用下载地址:点击下载nn...
基于PHP的酒店管理系统的设计与开发
适合写毕业论文设计参考,此论文达到良好以上水平,有完整的任务书,开题报告,中文摘要,目录,正文,源码,数据库文件,安装使用说明等。
银行储蓄管理系统 课程设计
项目要求:nnnnnnnn嗯。。。先说一下大体的思路吧,因为该银行储蓄系统要对已注册的用户进行数据保存,所以要用到文件的内容,当然如果每次用到文件的中的信息的时候都得读文件然后再关闭文件是不是很麻烦的(反正本小博主是见识到了有多麻烦了),而且对已经保存的信息存在很大的不安全性。。所以我们可以把文件内容读出来,放到一个数组中,读完时候关闭文件,只对数组进行更改操作,更改完事之后,再打开文件,将含有...
c语言函数速查手册pdf下载
C语言 函数 大全 pdf 速查 手册 C语言 函数 大全 pdf 速查 手册 相关下载链接:[url=//download.csdn.net/download/cpfeng0124/2008058?utm_source=bbsseo]//download.csdn.net/download/cpfeng0124/2008058?utm_source=bbsseo[/url]
外置USB有线网卡 jp108 no:030818 驱动 for xp下载
费了很多工夫才“碰”到的!! 无意中看到一个老外发的贴子,才找到该驱动!! 刚刚用过,XP已能正确识别该网卡,可以在“网上邻居”中找到自己的电脑; (突然感觉英语很有用,建议朋友们抽空多学学英语~~) 相关下载链接:[url=//download.csdn.net/download/fy0536/2177350?utm_source=bbsseo]//download.csdn.net/download/fy0536/2177350?utm_source=bbsseo[/url]
EXCEL实战技巧精粹.haozip04.zip下载
EXCEL实战技巧精粹.haozip04.zip 老师才给的 相关下载链接:[url=//download.csdn.net/download/xiaodoujiao1/2894759?utm_source=bbsseo]//download.csdn.net/download/xiaodoujiao1/2894759?utm_source=bbsseo[/url]
文章热词 运营管理视频教程 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 酒店数据库课程设计 物联网系统设计课程设计
我们是很有底线的