ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:656.09KB ,
资源ID:12902492      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12902492.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++课外实践模板.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++课外实践模板.docx

1、c+课外实践模板 数据结构课外实践报告项 目 名 称: 餐饮管理 所 在 班 级: 软件工程一班 小 组 成 员: 王敬云 120904046 朱奇亮 120904031 聂梦妍 120904041 张红飞 120904049 秦渝涛 120904042 任 课 教 师: 熊晶 起 止 时 间: 项目基本信息项目名称餐饮管理系统项目简介根据餐饮行业的特点,该系统以餐饮业务为基础,突出前台管理,从专业角度出发,提供科学有效的管理模式。点菜收银管理可实现点菜、结账、清台。进货管理可记录商品入库情况。点菜收银、营业分析、库房管理的有机结合,可为酒店经营方向提供依据,为酒店餐馆的发展提供重要保证。小组

2、成员王敬云 朱奇亮 聂梦妍 张红飞 秦渝涛任务分工王敬云:登录人员权限设置,新人员的注册,主界面设置;朱奇亮:结账界面,进货信息界面的设置;聂梦妍:登录,开台,商品信息界面的设置;张红飞:数据库备份,数据库还原的实现;秦渝涛:点菜,加减菜,菜式信息界面的设置;课外实践评定成绩记录指导教师意见系统完成情况:优 良 中 差报告完成情况:优 良 中 差答辩评定成绩团队整体成绩:成员成绩王敬云120904046朱奇亮120904031聂梦妍120904041张红飞120904049秦渝涛120904042综 合 成 绩一、 问题描述及分析问题描述传统的酒店行业使用手工记账和核算,这是极易出现问题的,比

3、如: (1)速度慢且容易出错 (2)不容易查询客户的消费信息。 (3)收银过程中容易出现账单丢失的情况。 (4)做销售数据统计分析既费时又费力,还容易出现偏差。而目前餐饮行业竞争愈发激烈,只有解决上述问题才能在竞争中求得生存。因此本系统将实现点餐、管理、销售统计一体化的工作,帮助餐饮管理者快速、有效地分析数据和进行酒店管理。需求分析从分析饭店店的基本情况入手,根据餐饮行业的特点和实际情况,进行系统的可行性分析,来了解企业的管理特点和存在的问题,酒店管理系统应以餐饮业务为基础,在此基础上,进行详细分析,得出系统功能结构图。本系统主要是用于后台管理,重视营业数据分析等功能,从专业角度出发,努力为餐

4、饮管理者提供科学有效地管理模式和数据分析功能。像餐台数据包括餐台编号、状态(有人/空闲); 菜品信息有名称,价格等。二、 功能模块及数据结构描述本系统有三种操作权限,其中,营业员只可以执行开台、点菜、买单及查询日收入操作;领班可以执行开台、点菜、买单、进货、添加新员工、日收入及月收入查询等操作;经理具有最高权限,除了领班及营业员的操作权限外,还可以设置员工权限、添加商品信息及菜式信息、备份与恢复数据库及初始化数据等操作。 本系统主要涉及餐厅的日常运营,包括餐台的安排、点菜、结算、员工管理、销售统计等功能。 后台服务:实现对餐厅顾客开台、点菜/加菜、预订、签单、结账(打折)功能。需要实现预订与开

5、台的冲突处理等。 后台管理:餐台号管理、菜系管理、菜品管理、登录人员权限管理。需要保证对于以上各种信息的管理能够同步反应到前台服务界面,防止出现加错菜品到餐台等情况。 销售统计:统计某一时间段的营业额。三、 主要算法流程描述及部分核心算法系统整体框架核心算法(1)注册void CZhucedlg:OnButtonOk() UpdateData();/更新,获取编辑框中的数据 if(m_Name.IsEmpty()|m_Pwd.IsEmpty()|m_Pwd1.IsEmpty()/判断用户名和密码是否为空 AfxMessageBox(用户名密码不能为空); return; if(m_Pwd!=m

6、_Pwd1)/判断两次输入的密码是否一直 AfxMessageBox(密码不一致); return; m_pRs=theApp.m_pCon-Execute(_bstr_t)(select * from Login where Uname=+m_Name+),NULL,adCmdText); if(m_pRs-adoEOF)/从数据库中获取和当前注册的用户名相同的记录 theApp.m_pCon-Execute(_bstr_t)(insert into Login(Uname,Upasswd,power)values(+m_Name+, +m_Pwd+,2),NULL,adCmdText);/

7、如果记录为空,说明输入的用户名合法,把该用户名密码插入到数据库中 AfxMessageBox(注册成功); CDialog:OnOK();/注册成功,将注册窗口关闭 else AfxMessageBox(用户名已存在); return; (2)登录void CLogindlg:OnOK() UpdateData(); if(!m_Uname.IsEmpty()|!m_Upasswd.IsEmpty() CString sql=SELECT * FROM Login WHERE Uname=+m_Uname+ and Upasswd=+m_Upasswd+; try m_pRs.CreateIn

8、stance(ADODB.Recordset); m_pRs-Open(_variant_t)sql,theApp.m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); if(m_pRs-adoEOF) AfxMessageBox(用户名或密码错误!); m_Uname=; m_Upasswd=; i+; UpdateData(false); if(i=3) OnCancel(); else theApp.name=m_Uname; theApp.pwd=m_Upasswd; CDialog:OnOK(); re

9、turn; catch(_com_error e) CString temp; temp.Format(连接数据库错误信息:%s,e.ErrorMessage(); AfxMessageBox(temp); return; else AfxMessageBox(用户名密码不能为空); (3)开台void CKaitaidlg:OnButtonOk() UpdateData();/从编辑框中获取已经选择的桌号 if(m_ZhuoHao.IsEmpty() AfxMessageBox(桌号不能为空);/判断桌号是否为空 else CString Str=select * from TableUSE

10、 where TableUSEID=1;/在数据库中找到已经有人的桌号 m_pRs=theApp.m_pCon-Execute(_bstr_t)Str,NULL,adCmdText);/m_rPs指向在数据库中获取的记录 while(!m_pRs-adoEOF) Value=(char*)(_bstr_t)m_pRs-GetCollect(桌号); if(m_ZhuoHao=Value)/将已开台的桌号和输入的桌号做比较,如果相同,说明已经有人 AfxMessageBox(有人了); m_ZhuoHao=;/将编辑框置空 UpdateData(false);/数据更新,将编辑框置空的操作获取到

11、编辑框中 return; m_pRs-MoveNext(); m_pRs=NULL; CString Str1=select * from TableUSE where 桌号=+m_ZhuoHao+;/从数据库中获取桌号为m_ZhuoHao的桌 m_pRs=theApp.m_pCon-Execute(_bstr_t)Str1,NULL,adCmdText); if(m_pRs-adoEOF)/如果获取的记录为空,说明输入错误 AfxMessageBox(没有这种桌子); m_ZhuoHao=; UpdateData(false); return; m_pRs=NULL; CDiancaidlg

12、 dlg;/开台成功之后登录到主界面 dlg.m_ZhuoHao = m_ZhuoHao; dlg.DoModal();/以模态的方式登录 CDialog:OnOK();/登录到主界面之后关闭登录界面 (4)加菜后账单void CJiacaidlg:OnButtonOK() UpdateData(); CString Sql; CString zhuohao; if(m_ZhuohaoCombo.GetCurSel()=-1)/若下拉列表控件中没有选择数据则提示选择 AfxMessageBox(请选择要加菜的桌号); return; m_ZhuohaoCombo.GetLBText(m_Zhu

13、ohaoCombo.GetCurSel(),zhuohao);/获取下拉列表控件中所选择的信息 int i = m_CaidanCheck.GetItemCount();/获取点菜列表项中的总数 if(i=0)/如果项数为0,提示请点菜 AfxMessageBox(请点菜); return; CString Sql1,Str,Str1,Value,TotleValue; Sql1=delete from paybill where 桌号=+zhuohao+;/从数据库账单中删除此餐桌号原本的账单信息 theApp.m_pCon-Execute(_bstr_t)Sql1,NULL,adCmdTe

14、xt); double Totle=0;/定义变量记录总消费 /循环计算账单总消费 for(int n=0;nExecute(_bstr_t)Sql1,NULL,adCmdText); Value=(char*)(_bstr_t)m_pRs-GetCollect(菜价); Totle=atof(Value)*atof(Str1);/将菜价与消费数量从字符串类型转换为浮点类型,再相乘 TotleValue=(char*)(_bstr_t)Totle;/将总消费转化成Cstring类型 /将菜单信息添加到数据库中 Sql1=insert into paybill(桌号,菜名,数量,消费) valu

15、es(+zhuohao+,+Str+,+Str1+,+TotleValue+); theApp.m_pCon-Execute(_bstr_t)Sql1,NULL,adCmdText); AfxMessageBox(操作成功); CDialog:OnOK(); (5)结账void CJiezhangdlg:OnChangeEDITshishou() double zhaoling; CString ShiShou,YingShou; m_ShiShou.GetWindowText(ShiShou); m_YingShou.GetWindowText(YingShou);/获取编辑框中的信息 zh

16、aoling = atof(ShiShou) - atof(YingShou);/转换类型,并计算找零 CString str; str.Format(%0.2f,zhaoling);/设置输出格式 m_ZhaoLing.SetWindowText(str);/获取找零金额四、 系统使用说明操作注意事项(1)经理权限的帐号是mrkj,密码是111领班权限的帐号是cab,密码是123领班权限的帐号是wmz,密码是wmz营业员权限的帐号是abc,密码是123(2)实例可执行文件位置:餐饮管理系统Debug餐饮管理.exe操作流程本系统有三种操作权限,其中,营业员只可以执行开台、点菜、买单及查询日收

17、入操作;领班可以执行开台、点菜、买单、进货、添加新员工、日收入及月收入查询等操作;经理具有最高权限,除了领班及营业员的操作权限外,还可以设置员工权限、添加商品信息及菜式信息、备份与恢复数据库及初始化数据等操作。在使用本系统时,单击“登录”按钮,在登录页面中输入相应的用户名和密码即可进入相应权限的操作页面。本系统主页面如图1.1所示。图1.1 餐饮管理系统主界面下面简单介绍本系统的操作流程,首先以管理员身份登录,对系统中的基本信息进行设置,操作步骤如下:(1)通过“管理”/“后台管理”/“商品信息”菜单命令,添加商品信息。(2)通过“管理”/“后台管理”/“进货”命令,执行进货操作。(3)通过“

18、管理”/“后台管理”/“菜式信息”命令,添加菜式。(4)通过“财政收支”/“进货查询”命令,可查询某日的进货信息。基本信息设置完成后,饭店就可以正常营业了,操作方法如下:(1)单击“开台”按钮,进入“开台”模块,在该模块中双击状态为空闲的桌号,如图1.2所示。图1.2 选择桌号(2)单击“就要这桌”按钮,进入“点菜”窗口,在该窗口中选择菜单名,然后单击按钮,添加点菜数量,如图1.3所示。图1.3 “点菜”窗口(3)单击“确定”按钮,完成点菜操作。(4)单击“加减菜”按钮,可以为每桌加菜或退菜。(5)单击“顾客买单”按钮,进入“结帐”窗口,在该窗口中选择要结帐的桌号,然后输入实收金额,如图1.4

19、所示。图1.4 “结帐”窗口(6)单击“结帐”按钮,完成结帐操作。五、 问题及解决办法1. 人员权限设置问题解决方法:在数据库中设置power权限,power为2,为营业员权限,是最低权限;power为1,为领班权限 ,除营业员权限之外还增加了部分权限;power为0,为经理权限,是最高权限,可以进行所有操作。2. 用户注册与数据库的连接解决方法:如果用户名没有被占用,而且两次密码输入相同,通过SQL/语句写入数据库。3. 结账算法中找零的触发事件解决方法:分别获取实收,应收编辑框的数据,相减,获得找零编辑框的数据,但要注意数据类型的转换,主要代码如下:m_ShiShou.GetWindowT

20、ext(ShiShou);m_YingShou.GetWindowText(YingShou);/获取编辑框中的信息 zhaoling = atof(ShiShou) - atof(YingShou);/转换类型,并计算找零 CString str; str.Format(%0.2f,zhaoling);/设置输出格式 m_ZhaoLing.SetWindowText(str);/获取找零金额4. 数据库备份的实现解决方法:/用CopyFile(buf,strpath,false)语句,使当前buf路径下的文件拷贝到strpath中,实现数据库备份。如果为TRUE,则新路径中已经存在该文件了,

21、就覆盖。这个函数使整个数据库都备份,仍有局限性。5. 加减菜式后账单的结算解决方法:一个餐台作了加减菜式的操作后,在数据库中要删除该餐台的所有账单信息,从数据库的菜式信息表中获取所有的菜式总数,菜价,及每份菜式数量,进行计算后的新账单写入数据库的账单中,计算过程中要注意数据类型的转化。6. 菜式信息更改功能的实现解决方法:先将要修改的菜式信息在数据库中作修改,再在菜式信息界面的列表中将原有的信息全部删除,再从数据库中读取所有的菜式信息到菜式信息界面的列表中,并且同时将编辑框中原有的输入数据情空。7. 未输入用户名密码时,提示“用户名密码不允许为空”当关闭提示后,正确输入后显示时,依然显示同样的

22、提示。此问题为没有添加更新数据语句,需添加UpdateData语句。8. 在程序运行时,系统经常提示以下错误,通常为上一次的运行窗口没有关闭9. 当系统编译时出现以下问题时,可能是在添加控件的过程中不够慎重,添加之后又删除了,但是系统已经生成了此控件的一些默认代码,但是编译时却找不到此控件而造成的,所以添加控件要慎重考虑。结论:设计系统过程中添加控件要慎重,控件一旦添加,vc系统将自动生成系统默认的代码,致使一些在不谨慎情况下添加的不需要的控件在被删除之后影响整个系统的运行。六、 课外实践总结这学期的课外实践已经基本上完成,在这次课外实践中,感觉很有收获,虽然上课很认真的听讲,实验课感觉挺简单的,但真正到实践的时候,还是困难重重。首先,让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识;其次,在系统解读过程中,遇到了很多问题,通过查阅相关资料,上网查询以及跟同学共同讨论的方法,解决了大部分问题。但因为时间问题,系统中仍然有一些不明白的问题没有解决,需要提高和完善。通过本次课外实践,让我们更清楚的了解了每一个人本身的弱点,明白了团体力量的强大,同时锻炼了我们思考问题的能力,有助于进一步提高我们的编程能力。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1