餐饮管理餐饮管理系统设计_第1页
餐饮管理餐饮管理系统设计_第2页
餐饮管理餐饮管理系统设计_第3页
餐饮管理餐饮管理系统设计_第4页
餐饮管理餐饮管理系统设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

餐饮管理餐饮管理系统设计课程设计报告课程名称:PowerBuilder10.5程序设计基础设计题目:酒店餐饮管理系统专业:信息与计算科学班级:姓名:XXXX学号:XXXXXXXX指导教师:XXXXXX学院数理系XXXX年XX月课程设计题目(问题)描述酒店管理系统。取消、查询及在收费时的立账,打折设定的等方面的功能。本组成员情况姓名学号承担的任务成绩杜雅笛2012314201调试郭晓丽2012314206试莫鹏飞2012314220资料查询、登陆界面、代码编写及系统的调试教师评语签名:注:本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要把报告写详细,能说明本组设计的成果和特色,能够反应小组中每个人的工作。报告中应该叙述设计中的每个模块。设计报告将是评定每个人成绩的一个重要组成部分。一、本组设计的功能描述(含所有实现的模块的功能)登录界面的功能:在登陆界面正确输入用户名与口令就可以登陆主界面,如用户名与口令不匹配则有提醒,点开免费注册界面,可以录入新的管理人员的信息,退出注册界面输入刚注册的用户名和口令就可登陆主界面。系统主界面的功能:●系统维护:☆值班员信息维护:实现对值班员的添加、删除功能☆菜谱信息维护:实现对已有菜单的查询、添加和删除☆修改口令:实现对用户口令的更改。●订单管理:☆订餐:实现对订餐信息的添加☆订餐修改:实现对已经订餐的信息的修改☆订餐取消:实现对已经订餐的信息的取消☆订餐查询:实现对订餐订单按桌号、菜谱号、菜名的查询●收费管理:☆折扣设定:实现了对用餐人员的折扣设定☆客户信息:显示客户信息●打印:☆打印客户消费账单二、本组设计的主要特色主要特色有如下:1、登陆界面可以注册新用户2、在登陆主界面是弹出交班管理制度的界面3、可对值班人员、菜谱信息进行添加,删除4、可对订餐情况进行添加、删除、查询等功能5、对客户的费用进行打折,打印客户消费单三、系统分析与设计2.1数据库的设计与连接(1SQLSEVER2005建物理数据库XSCJPowerBuilderODBC义DBProfile,连接数据库。根据功能需求,在数据库中先创建5个表列名数据类型可否为空说明DC_DESKChar(20)Notnull桌号(主键)CP_NOChar(10)Notnull菜谱号CP_NAMEChar(20)null菜名DC_NUMBERChar(3)null数量DC_DATEdatetimeNull订餐日期表1订餐信息表DC列名数据类型可否为空说明CP_NOCHAR(10)NOTNULL菜谱号(主键)CP_NAMECHAR(20)NULL菜名CP_KINDCHAR(20)NULL种类CP_PRICENUMBER(10)NULL价格CP_DETAILCHAR(50)NULL备注表2菜谱信息表CP列名数据类型可否为空说明KH_NOCHAR(20)NOTNULL客户号(主键)DC_DESKCHAR(20)NULL桌号JS_DZCHAR(3)NULL打折情况TOTALCHAR(5)NULL总计JS_DATEDATETIMENULL日期表3结算信息表JS列名数据类型可否为空说明KH_NOCHAR(10)NOTNULL客户号(主键)KH_NAMECHAR(20)NULL姓名KH_SEXCHAR(2)NULL性别KH_AGECHAR(3)NULL年龄KH_JOBCHAR(20)NULL职务KH_TELCHAR(20)NULL联系电话KH_COMPANYCHAR(20)NULL工作电话表4荣誉客户信息表KH列名数据类型可否为空说明ZBY_NAMECHAR(20)NOTNULL值班员名(主键)ZBY_PAWDCHAR(10)NUTNULL口令表5值班员表ZBY实体和实体之间的关系E-R图系统详细设计(1)单击菜单“File|New”,选择应用程序对象模板画板,单击“OK”按钮在出现的对话框中完成应用程序对象名、库文件名的设置.(2)单击“Finish”按钮,进入应用程序对象设计画面。1、在应用程序对象的Open事件中输入如下的程序代码//ProfilejiudianSQLCA.DBMS="ODBC"SQLCA.AutoCommit=FalseSQLCA.DBParm="ConnectString='DSN=jiudian;UID=;PWD='"connect;open(w_open)sleep(1)close(w_open)open(w_login)该语句就是打开w_open2、登录窗口的设计。登录窗口如图(1)在W_login窗口的Open事件中输入如下的程序代码Environmentl_envintl_ScrWidth,l_ScrHeightsetRedraw(false)GetEnvironment(l_env)//取得屏幕的高度和宽度l_ScrWidth=PixelsToUnits(l_env.ScreenWidth,XpixelsToUnits!)l_ScrHeight=PixelsToUnits(l_env.ScreenHeight,YpixelsToUnits!)Move((l_scrwidth-this.width)/2,(l_scrheight-this.height)/2)//移动窗口到屏幕中间setredraw(true)//打开窗口刷新(2)按钮控件cb_1(确定)的Click事件中的程序代码如下:stringl_id,l_passwardstringl_passward0intil_id=trim(sle_1.text)l_passward=trim(sle_2.text)ifl_id=""thenmessagebox("提示","请输入用户名!")returnendifsle_1.setfocus()ifl_passward=""thenmessagebox("提示","请输入密码!")returnendifsle_2.setfocus()selectcount(*)into:ifromzbywherertrim(zby_name)=:l_idusingsqlca;ifi<1thenmessagebox("提示","该用户不存在!")sle_1.text=""sle_2.text=""sle_1.setfocus()returnendifselectzby_pawdinto:l_passward0fromzbywherertrim(zby_name)=:l_idusingsqlca;iftrim(l_passward0)=l_passwardthenopen(w_main)close(parent)integerli_FileNumstringls_Emp_Inputlongll_FLengthll_FLength=FileLength("D:\MicrosoftSQLServer\1.txt")li_FileNum=FileOpen("D:\MicrosoftSQLServer\1.txt",StreamMode!,read!,shared!)IFll_FLength<32767THENFileRead(li_FileNum,ls_Emp_Input)filewrite(li_FileNum,ls_Emp_Input)messagebox("",ls_Emp_Input,None!)returnENDIF//显示交班管理制度elsemessagebox("警告","密码错误,请重新输入法!")sle_2.text=""sle_2.setfocus()endif(3)按钮控件cb_2(取消)的Click事件中的程序代码如下:Halt用于终止应用程序的执行.(4)按钮控件cb_3(免费注册)的Click事件中的程序代码如下:open(w_zhuche)用来打开注册窗口.交班管理制度显示的制作。(5)在该系统文件目录下新建一个”1.txt”在里面输入相应的内容。在登录窗口的cb_1(确定)下的代码integerli_FileNumstringls_Emp_Inputlongll_FLengthll_FLength=FileLength("D:\MicrosoftSQLServer\1.txt")li_FileNum=FileOpen("D:\MicrosoftSQLServer\1.txt",StreamMode!,read!,shared!)IFll_FLength<32767THENFileRead(li_FileNum,ls_Emp_Input)filewrite(li_FileNum,ls_Emp_Input)messagebox("",ls_Emp_Input,None!)returnENDIF这段代码就是在进入系统时显示该信息,如下图,3.注册窗口的设计(1)在”检测用户名”按扭控件的click事件中输入如下代码:stringl_userl_user=sle_1.textifl_user=""thenmessagebox("警告","请输入用户名!",Exclamation!)sle_1.setfocus()return1endifintiselectcount(*)into:ifromZBYwhereZBY_NAME=:l_user;ifi>0thenmessagebox("警告","用户名已存在,请重试!",Exclamation!)sle_1.text=""sle_1.setfocus()returnelsemessagebox("","恭喜你,该用户名可以使用!")returnendif(2)在”提交”按扭控件的click事件中输入如下代码:stringl_userl_user=sle_1.textifsle_1.text=""thenmessagebox("提示","请输入用户名!")return1endifstringaa,bbaa=sle_2.textbb=sle_3.textifaa=""thenmessagebox("提示","密码不能为空!")return1endififaa<>bbthenmessagebox("提示","输入的密码不一致~n~r请重新输入!")sle_2.text=""sle_3.text=""sle_2.setfocus()returnendifinsertINTOzby(zby_name,zby_pawd)VALUES(:l_user,:aa)usingsqlca;ifsqlca.sqlcode=0thenmessagebox("提示","注册成功,请牢记~r~n用户名"+sle_1.text+"~r~n密码"+sle_2.text)close(parent)elsemessagebox("提示","注册失败!")returnendif(3)在”取消”按扭控件的click事件中输入如下代码:close(parent)4.主菜单的设计(1Click事件程序代码:halt其功能是关闭主窗口w_main,退出应用程序。(2Click事件程序代码:open(w_zby)(3Click事件程序代码:open(w_choose_receive)(4)“系统维护”菜单下“修改口令”子菜单的Click事件程序代码:open(w_changekl)(5Click事件程序代码:open(w_dc)(6Click事件程序代码:open(w_ujttyyytt)(7)“订餐管理”菜单下“订餐取消”子菜单的Click事件程序代码:open(w_dc_qc)(8)“订餐管理”菜单下“订餐查询”子菜单的Click事件程序代码:open(w_dc_search)(9)“收款管理”菜单的“折扣设定”子菜单的Click事件程序代码:open(w_zksd)(10)“收款管理”菜单下的“客户信息”子菜单的CLICK事件程序代码:open(w_kh)(11)“打印”菜单的“打印帐单”子菜单的Click事件程序代码:open(w_print)(12)“帮助”菜单的”版本信息”子菜单的Click事件程序代码:open(w_help)(13)w_main为mdihelp!。Title为酒店餐饮管理系统1.0。另外在窗口上布置一个图片控件,按扭的click事件中有句open(main)的代码,即为打开此窗口。5.值班员信息维护窗口w_zby的设计zby在编辑状态下如下图,该数据窗口对象所链接的数据库表格为ZBY,其数据源表示如下:SELECT"zby"."zby_name","zby"."zby_pawd"FROM"zby"(1)open事件代码:dw_1.settransobject(sqlca)dw_1.retrieve()(2)窗口的closequery事件代码:inti_countlongbbi_count=dw_1.modifiedcount()+dw_1.deletedcount()ifi_count>0thenbb=messagebox("提示","是否保存未保存的数据",question!,yesnocancel!,1)choosecasebbcase1ifdw_1.update()=1thencommitusingsqlca;return0elserollbackusingsqlca;messagebox("提示","数据保存失败!")endifcase2return0case3return1endchooseendif(3)增加按钮代码:dw_1.scrolltorow(dw_1.insertrow(0))dw_1.setcolumn(0)dw_1.setfocus()(4)删除按钮代码:longnetnet=messagebox("","你确定要删除吗",question!,yesno!,1)//提示是否要删除choosecasenetcase1dw_1.deleterow(dw_1.getrow())//删除当前行case2return1endchoose(5)保存按钮代码:inti_counti_count=dw_1.modifiedcount()+dw_1.deletedcount()//判断改变和删除的数目。ifi_count>0thenifdw_1.update()=1thencommitusingsqlca;messagebox("提示","已成功保存"+string(i_count)+"纪录")elserollbackusingsqlca;messagebox("提示","保存失败")endifendif6.菜谱信息维护窗口w_choose_receive设计ddlb_1、ddlb_2属性相同,其Items属性页如下图所示。ddlb_3、ddlb_4属性也相同,其Items属性页如下图所示。ddlb_5的Items属性页如下图所示其他的控件如窗口上所示。所链接的数据窗口对象在编辑状态下,如图下所示该数据窗口对象所链接的数据库表格为CP,其数据源表示如下:SELECT"cp"."cp_no","cp"."cp_name","cp"."cp_kind","cp"."cp_price","cp"."cp_detail"FROM"cp"(1)Open事件:dw_1.settransobject(sqlca)ddlb_1.text="菜谱号"ddlb_4.text="="ddlb_5.text="and"(2)查询代码intistringlookforcondition//定义参数:查询条件综合结果stringlookforitem1,lookforitem2,lookforitem3//定义参数:要查询的列stringlookforwhat1,lookforwhat2,lookforwhat3//定义参数:要查询的内容stringlookforhow1,lookforhow2,lookforhow3//定义参数:查询的符号stringlookforoperator1,lookforoperator2//定义参数:不同查询条件组合操作符号lookforhow1=ddlb_3.textlookforhow2=ddlb_4.textifddlb_5.text="与"thenlookforoperator1="and"elseifddlb_5.text="或"thenlookforoperator1="or"elseifddlb_5.text="非"thenlookforoperator1="not"endififddlb_1.text="菜谱号"thenlookforitem1="cp_no"lookforwhat1="'"+sle_1.text+"'"elseifddlb_1.text="菜名"thenlookforitem1="cp_name"lookforwhat1="'"+sle_1.text+"'"elseifddlb_1.text="种类"thenlookforitem1="cp_kind"lookforwhat1="'"+sle_1.text+"'"elseifddlb_1.text="价格"thenlookforitem1="cp_price"lookforwhat1=sle_1.textelseifddlb_1.text="备注"thenlookforitem1="cp_detail"lookforwhat1="'"+sle_1.text+"'"endififddlb_2.text="菜谱号"thenlookforitem2="cp_no"lookforwhat2="'"+sle_2.text+"'"elseifddlb_2.text="菜名"thenlookforitem2="cp_name"lookforwhat1="'"+sle_2.text+"'"elseifddlb_2.text="种类"thenlookforitem2="cp_kind"lookforwhat2="'"+sle_2.text+"'"elseifddlb_2.text="价格"thenlookforitem2="cp_price"lookforwhat2="'"+sle_2.text+"'"elseifddlb_2.text="备注"thenlookforitem2="cp_detail"lookforwhat2="'"+sle_2.text+"'"endififddlb_2.text=""orddlb_4.text=""thenlookforcondition=lookforitem1+lookforhow1+lookforwhat1elselookforcondition=lookforitem1+lookforhow1+lookforwhat1+""+lookforoperator1+""+lookforitem2+lookforhow2+lookforwhat2endifdw_1.setfilter(lookforcondition)filter(dw_1)i=dw_1.retrieve()ifi<1thenmessagebox("提示","没有相关记录!",Exclamation!)sle_1.text=""sle_2.text=""returnendif(3)增加代码:dw_1.scrolltorow(dw_1.insertrow(0))dw_1.setcolumn(0)dw_1.setfocus()(4“删除按钮控件的Click”按钮相同.(5)“保存”按钮控件的Click事件将用于保存用户所做的修改,程序代码与上述“保存”按钮相同.(6)“退出”按钮控件的Click事件将用于退出该程序窗口。7.修改口令w_changek设计(1)修改按钮代码:stringcorrect_pswd,ls_user,ls_pswdls_user=trim(sle_1.text)ls_pswd=trim(sle_2.text)ifls_user=""thenmessagebox("","用户名不能为空!")returnendififls_pswd=""thenmessagebox("","请输入原口令!")returnendififsle_4.text<>sle_3.textthenmessagebox("警告","两次输入的口令不一致,请重新输入")sle_3.text=""sle_4.text=""sle_3.setfocus()elseselectrtrim(zby_pawd)into:correct_pswdfromzbywherertrim(zby_name)=:ls_user;ifcorrect_pswd<>ls_pswdthenmessagebox("警告","原口令不正确!")elseupdatezbysetzby_pawd=:sle_3.textwherertrim(zby_name)=:ls_user;commitusingsqlca;close(parent)messagebox("注意","你的口令已经修改,请牢记!")endifendif(2)“取消”按扭用来退出该窗口。8、订餐w_dc窗口设计所链接的的数据窗口对象在编辑状态如图该数据窗口对象所链接的数据库表格为DC,其数据源表示如下:SELECT"dc"."dc_desk","dc"."cp_no","dc"."cp_name","dc"."dc_num","dc"."dc_data"FROM"dc"(1)open事件intg_rownumberg_rownumber=dw_1.insertrow(0)dw_1.settransobject(sqlca)dw_1.setfocus()dateg_dc_dateg_dc_date=today()//在数据窗口的日期这列显示当前日期dw_1.scrolltorow(g_rownumber)dw_1.setcolumn(0)(2)下一道菜intg_rownumberg_rownumber=dw_1.insertrow(0)dateg_dc_dateg_dc_date=today()dw_1.setfocus()dw_1.scrolltorow(g_rownumber)dw_1.setcolumn(1)(3)“删除按钮控件的Click”按钮控件相同.(4)“保存按钮控件的Click事件将用于保存用户所做的修改,程序代码与上述的“保存”按钮相同。(5)“退出”按钮控件的Click事件将关闭该窗口。9、订餐修改窗口w_ujttyyytt设计Ddlb_1和ddlb_2两个控件的属性一样,其item属性如下图,所链接的数据窗口对象dc(1)open事件//设置事务对象dw_1.settransobject(sqlca)ddlb_1.text="="ddlb_2.text="="(2)显示订单intistringlookforconditionstringlookforitem1,lookforitem2stringlookforwhat1,lookforwhat2stringlookforhow1,lookforhow2lookforhow1=ddlb_1.textlookforhow2=ddlb_2.textlookforitem1="dc_desk"lookforwhat1="'"+sle_1.text+"'"lookforitem2="dc_date"lookforwhat2="datetime('"+sle_2.text+"00:00:00')"ifsle_2.text=""thenlookforcondition=lookforitem1+lookforhow1+lookforwhat1elselookforcondition=lookforitem2+lookforhow2+lookforwhat2//lookforitem1+lookforhow1+lookforwhat1+""+"and"+""+endifdw_1.setfilter(lookforcondition)filter(dw_1)i=dw_1.retrieve()ifi<1thenmessagebox("提示","没有相关记录!",Exclamation!)returnendif(3)增加intg_rownumberg_rownumber=dw_1.insertrow(0)dateg_dc_dateg_dc_date=today()//为数据窗口的日期列显示当前日期dw_1.setfocus()dw_1.scrolltorow(g_rownumber)dw_1.setcolumn(1)(4)“删除按钮控件的Click“删除”按钮控件相同.(5)“保存按钮控件的Click所述的“保存”按钮控件相同.(6)“退出”按钮控件的Click事件将用于退出该程序窗口。10、订餐取消w_dc_qc设计,控件如图所示,所连接的数据窗口为dc.ddlb_1与ddlb_2的属性相同.ddlb_1的item属性图a,ddlb_2的item属性图b图a图b(1)open:dw_1.settransobject(sqlca)(2)确定intiifddlb_1.text=""thenmessagebox("","请选择要退餐的桌号!")returnendifstringl_dc_deskl_dc_desk="dc_desk='"+ddlb_1.text+"'"dw_1.setfilter(l_dc_desk)filter(dw_1)i=dw_1.retrieve()ifi<1thenmessagebox("","此桌无消费记录!")ddlb_1.text=""elsemessagebox("","请选择要退定的菜!")returnendif(3)退订的菜doublel_dc_num1,l_dc_num2stringl_cp_namel_dc_num1=double(ddlb_2.text)l_cp_name=dw_1.getitemstring(dw_1.getrow(),"cp_name")l_dc_num2=Long(dw_1.getitemstring(dw_1.getrow(),"dc_number"))intretret=messagebox("","你确定要退定"+string(l_dc_num1)+"一份"+l_cp_name,question!,yesnocancel!,2)choosecaseretcase1ifddlb_2.text="all"thendw_1.deleterow(0)ifdw_1.update()=1thenmessagebox("","退定成功!")close(parent)elsemessagebox("","退定失败,请重试!")returnendifelseifl_dc_num1>l_dc_num2thenmessagebox("警告","退定出错,请查看数量!")return1endifUPDATEdcSETdc_number=:l_dc_num2-:l_dc_num1;ifdw_1.update()=1thenmessagebox("","退定成功!")close(parent)returnendifreturnendifcase2return0case3return1endchoose11、订餐查询w_dc_search设计控件如上图所示.其中有一个选项卡,卡上有三页,三页的数据窗口控件所连接的数据窗口都是dc,界面如下图,该数据窗口对象所链接的数据库表格为CP和DC(1)open:tab_1.tabpage_1.dw_1.settransobject(sqlca)tab_1.tabpage_2.dw_2.settransobject(sqlca)tab_1.tabpage_3.dw_3.settransobject(sqlca)(2)按桌号查询intistringl_desk,conditionl_desk=sle_1.textifl_desk=""thenmessagebox("提示","请输入要查询的桌号!")returnendifcondition="dc_desk='"+sle_1.text+"'"dw_1.setfilter(condition)filter(dw_1)i=dw_1.retrieve()ifi<1thenmessagebox("","无相关记录,请重新输入!")sle_1.text=""sle_1.setfocus()returnendif(3)按菜谱号查询:intistringl_cp_no,conditionl_cp_no=sle_2.textifl_cp_no=""thenmessagebox("提示","请输入要查询的菜谱号!")returnendifcondition="cp_no='"+sle_2.text+"'"dw_2.setfilter(condition)filter(dw_2)i=dw_2.retrieve()ifi<1thenmessagebox("","无相关记录,请重新输入!")sle_2.text=""sle_2.setfocus()returnendif(4)按菜名查询intistringl_cp_name,conditionl_cp_name=sle_3.textifl_cp_name=""thenmessagebox("提示","请输入要查询的菜名!")returnendifcondition="cp_namelike'%"+sle_3.text+"%'"dw_3.setfilter(condition)dw_3.filter()i=dw_3.retrieve()ifi<1thenmessagebox("","无相关记录,请重新输入!")sle_3.text=""sle_3.setfocus()returnendif(5)”退出”按扭用于退出该窗口.12、折扣设定W_zjsd窗口设计该数据窗口对象所链接的数据库表格为js,其数据源表示如下:SELECT"js"."kh_no","js"."dc_desk","js"."js_dz","js"."total","js"."js_date"FROM"js"(1)Open:dw_1.settransobject(sqlca)(2)确定intiifddlb_1.text=""thenmessagebox("","请选择要计算折扣的桌号!")ddlb_1.setfocus()returnendifstringl_desk,conditionl_desk=ddlb_1.textcondition="dc_desk='"+l_desk+"'"dw_1.setfilter(condition)filter(dw_1)i=dw_1.retrieve()ifi<1thenmessagebox("","该桌无消费记录!")returnendif(3)开始计算doublel_totall_total=long(dw_1.getitemstring(dw_1.getrow(),"total"))ifl_total<200thenmessagebox("","总金额不足200~r~n无折扣优惠")returnendififl_total>200andl_total<500thenmessagebox("","总金额大于200但小于500~r~n给予8.5扣优惠")returnendififl_total>500andl_total<1000thenmessagebox("","总金额大于500但小于1000~r~n给予7扣优惠")returnendififl_total>1000andl_total<5000thenmessagebox("","总金额大于1000但小于5000~r~n给予6扣优惠")returnendififl_total>5000thenmessagebox("","总金额大于5000~r~n给予8.5扣优惠")returnendif13.客户信息w_kh设计该数据窗口对象所链接的数据库表格为kh,其数据源表示如下:SELECT"ky"."kh_no","ky"."kh_name","ky"."kh_sex","ky"."kh_age","ky"."kh_job","ky"."kh_tel","ky"."kh_company"FROM"ky"14、打印帐单w_print设计该数据窗口对象所链接的数据库表格为cp,dc,js,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论