第1页共40页课程设计报告课程名称:PowerBuilder10.5程序设计基础设计题目:酒店餐饮管理系统专业:信息与计算科学班级:姓名:XXXX学号:XXXXXXXX指导教师:XXXXXX学院数理系XXXX年XX月第2页共40页课程设计题目(问题)描述随着人们生活的富裕,人们出入酒店也越来越多,随之而来,酒店管理人员管理酒店的事情越来越多,为了帮助酒店管理人员更好的管理酒店,我们设计了这个酒店管理系统。它实现了对值班人员的调配与管理和对菜单的变更,以及对订餐,订餐的修改、取消、查询及在收费时的立账,打折设定的等方面的功能。本组成员情况姓名学号承担的任务成绩杜雅笛2012314201登陆界面、系统维护、打印、帮助模块的代码编写及系统的调试郭晓丽2012314206登陆界面、订餐管理、收费管理模块的代码编写及系统的调试莫鹏飞2012314220资料查询、登陆界面、代码编写及系统的调试教师评语签名:注:本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要把报告写详细,能说明本组设计的成果和特色,能够反应小组中每个人的工作。报告中应该叙述设计中的每个模块。设计报告将是评定每个人成绩的一个重要组成部分。第3页共40页一、本组设计的功能描述(含所有实现的模块的功能)登录界面的功能:在登陆界面正确输入用户名与口令就可以登陆主界面,如用户名与口令不匹配则有提醒,点开免费注册界面,可以录入新的管理人员的信息,退出注册界面输入刚注册的用户名和口令就可登陆主界面。系统主界面的功能:●系统维护:☆值班员信息维护:实现对值班员的添加、删除功能☆菜谱信息维护:实现对已有菜单的查询、添加和删除☆修改口令:实现对用户口令的更改。●订单管理:☆订餐:实现对订餐信息的添加☆订餐修改:实现对已经订餐的信息的修改☆订餐取消:实现对已经订餐的信息的取消☆订餐查询:实现对订餐订单按桌号、菜谱号、菜名的查询●收费管理:☆折扣设定:实现了对用餐人员的折扣设定☆客户信息:显示客户信息●打印:☆打印客户消费账单二、本组设计的主要特色第4页共40页主要特色有如下:1、登陆界面可以注册新用户2、在登陆主界面是弹出交班管理制度的界面3、可对值班人员、菜谱信息进行添加,删除4、可对订餐情况进行添加、删除、查询等功能5、对客户的费用进行打折,打印客户消费单三、系统分析与设计第5页共40页2.1数据库的设计与连接(1)在SQLSEVER2005开发环境下打开对象资源管理器,依据创建数据库的步骤,创建物理数据库XSCJ,在PowerBuilder开发环境下打开数据库画板,依次定义ODBC数据源,定义DBProfile,连接数据库。根据功能需求,在数据库中先创建5个表表1订餐信息表DC表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职务列名数据类型可否为空说明DC_DESKChar(20)Notnull桌号(主键)CP_NOChar(10)Notnull菜谱号CP_NAMEChar(20)null菜名DC_NUMBERChar(3)null数量DC_DATEdatetimeNull订餐日期列名数据类型可否为空说明CP_NOCHAR(10)NOTNULL菜谱号(主键)CP_NAMECHAR(20)NULL菜名CP_KINDCHAR(20)NULL种类CP_PRICENUMBER(10)NULL价格CP_DETAILCHAR(50)NULL备注第6页共40页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=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=ConnectString='DSN=jiudian;UID=;PWD='connect;open(w_open)sleep(1)close(w_open)open(w_login)该语句就是打开w_open窗口的语句。“欢迎登陆餐饮管理系统”如图:第7页共40页2、登录窗口的设计。登录窗口如图(1)在W_login窗口的Open事件中输入如下的程序代码Environmentl_envintl_ScrWidth,l_ScrHeightsetRedraw(false)第8页共40页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;ifi1thenmessagebox(提示,该用户不存在!)sle_1.text=sle_2.text=sle_1.setfocus()第9页共40页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_FLength32767THENFileRead(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)用来打开注册窗口.交班管理制度显示的制作。第10页共40页(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_FLength32767THENFileRead(li_FileNum,ls_Emp_Input)filewrite(li_FileNum,ls_Emp_Input)messagebox(,ls_Emp_Input,None!)returnENDIF这段代码就是在进入系统时显示该信息,如下图,3.注册窗口的设计第11页共40页(1)在”检测用户名”按扭控件的click事件中输入如下代码:stringl_userl_user=sle_1.textifl_user=thenmessagebox(警告,请输入用户名!,Exclamation!)sle_1.setfocus()return1endifintiselectcount(*)into:ifromZBYwhereZBY_NAME=:l_user;ifi0thenmessagebox(警告,用户名已存在,请重试!,Exclamation!)sle_1.text=sle_1.setfocus()returnelsemessagebox(,恭喜你,该用户名可以使用!)returnendif(2)在”提交”按扭控件的click事件中输入如下代码:stringl_userl_user=sle_1.text第12页共40页ifsle_1.text=thenmessagebox(提示,请输入用户名!)return1endifstringaa,bbaa=sle_2.textbb=sle_3.textifaa=thenmessagebox(提示,密码不能为空!)return1endififaabbthenmessagebox(提示,输入的密码不一致~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.主菜单的设计第13页共40页(1)“系统维护”菜单下“退出”子菜单的Click事件程序代码:halt其功能是关闭主窗口w_main,退出应用程序。(2)“系统维护”菜单下“值班员信息维护”子菜单的Click事件程序代码:open(w_zby)(3)“系统维护”菜单下“菜谱信息维护”子菜单的Click事件程序代码:open(w_choose_receive)(4)“系统维护”菜单下“修改口令”子菜单的Click事件程序代码:第14页共40页open(w_changekl)(5)“订餐管理”菜单下“订餐”子