餐饮管理系统设计.docx
- 文档编号:4978433
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:54
- 大小:1.58MB
餐饮管理系统设计.docx
《餐饮管理系统设计.docx》由会员分享,可在线阅读,更多相关《餐饮管理系统设计.docx(54页珍藏版)》请在冰豆网上搜索。
餐饮管理系统设计
课程设计报告
课程名称:
PowerBuilder10.5程序设计基础
设计题目:
酒店餐饮管理系统
专业:
信息与计算科学班级:
姓名:
XXXX学号:
XXXXXXXX
指导教师:
XXX
XXX学院数理系
XXXX年XX月
课程设计题目(问题)描述
随着人们生活的富裕,人们出入酒店也越来越多,随之而来,酒店管理人员管理酒店的事情越来越多,为了帮助酒店管理人员更好的管理酒店,我们设计了这个酒店管理系统。
它实现了对值班人员的调配与管理和对菜单的变更,以及对订餐,订餐的修改、取消、查询及在收费时的立账,打折设定的等方面的功能。
本组成员情况
姓名
学号
承担的任务
成绩
杜雅笛
2012314201
登陆界面、系统维护、打印、帮助模块的代码编写及系统的调试
郭晓丽
2012314206
登陆界面、订餐管理、收费管理模块的代码编写及系统的调试
莫鹏飞
2012314220
资料查询、登陆界面、代码编写及系统的调试
教师评语
签名:
注:
本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要把报告写详细,能说明本组设计的成果和特色,能够反应小组中每个人的工作。
报告中应该叙述设计中的每个模块。
设计报告将是评定每个人成绩的一个重要组成部分。
一、本组设计的功能描述
(含所有实现的模块的功能)
登录界面的功能:
在登陆界面正确输入用户名与口令就可以登陆主界面,如用户名与口令不匹配则有提醒,点开免费注册界面,可以录入新的管理人员的信息,退出注册界面输入刚注册的用户名和口令就可登陆主界面。
系统主界面的功能:
●系统维护:
☆值班员信息维护:
实现对值班员的添加、删除功能
☆菜谱信息维护:
实现对已有菜单的查询、添加和删除
☆修改口令:
实现对用户口令的更改。
●订单管理:
☆订餐:
实现对订餐信息的添加
☆订餐修改:
实现对已经订餐的信息的修改
☆订餐取消:
实现对已经订餐的信息的取消
☆订餐查询:
实现对订餐订单按桌号、菜谱号、菜名的查询
●收费管理:
☆折扣设定:
实现了对用餐人员的折扣设定
☆客户信息:
显示客户信息
●打印:
☆打印客户消费账单
二、本组设计的主要特色
主要特色有如下:
1、登陆界面可以注册新用户
2、在登陆主界面是弹出交班管理制度的界面
3、可对值班人员、菜谱信息进行添加,删除
4、可对订餐情况进行添加、删除、查询等功能
5、对客户的费用进行打折,打印客户消费单
三、系统分析与设计
2.1数据库的设计与连接
(1)在SQLSEVER2005开发环境下打开对象资源管理器,依据创建数据库的步骤,创建物理数据库XSCJ,在PowerBuilder开发环境下打开数据库画板,依次定义ODBC数据源,定义DBProfile,连接数据库。
根据功能需求,在数据库中先创建5个表
列名
数据类型
可否为空
说明
DC_DESK
Char(20)
Notnull
桌号(主键)
CP_NO
Char(10)
Notnull
菜谱号
CP_NAME
Char(20)
null
菜名
DC_NUMBER
Char(3)
null
数量
DC_DATE
datetime
Null
订餐日期
表1订餐信息表DC
列名
数据类型
可否为空
说明
CP_NO
CHAR(10)
NOTNULL
菜谱号(主键)
CP_NAME
CHAR(20)
NULL
菜名
CP_KIND
CHAR(20)
NULL
种类
CP_PRICE
NUMBER(10)
NULL
价格
CP_DETAIL
CHAR(50)
NULL
备注
表2菜谱信息表CP
列名
数据类型
可否为空
说明
KH_NO
CHAR(20)
NOTNULL
客户号(主键)
DC_DESK
CHAR(20)
NULL
桌号
JS_DZ
CHAR(3)
NULL
打折情况
TOTAL
CHAR(5)
NULL
总计
JS_DATE
DATETIME
NULL
日期
表3结算信息表JS
列名
数据类型
可否为空
说明
KH_NO
CHAR(10)
NOTNULL
客户号(主键)
KH_NAME
CHAR(20)
NULL
姓名
KH_SEX
CHAR
(2)
NULL
性别
KH_AGE
CHAR(3)
NULL
年龄
KH_JOB
CHAR(20)
NULL
职务
KH_TEL
CHAR(20)
NULL
联系电话
KH_COMPANY
CHAR(20)
NULL
工作电话
表4荣誉客户信息表KH
列名
数据类型
可否为空
说明
ZBY_NAME
CHAR(20)
NOTNULL
值班员名(主键)
ZBY_PAWD
CHAR(10)
NUTNULL
口令
表5值班员表ZBY
实体和实体之间的关系E-R图
系统详细设计
(1)单击菜单“File|New”,选择应用程序对象模板画板,单击“OK”按钮在出现的对话框中完成应用程序对象名、库文件名的设置.
(2)单击“Finish”按钮,进入应用程序对象设计画面。
1、在应用程序对象的Open事件中输入如下的程序代码
//Profilejiudian
SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="ConnectString='DSN=jiudian;UID=;PWD='"
connect;
open(w_open)
sleep
(1)
close(w_open)
open(w_login)
该语句就是打开w_open窗口的语句。
“欢迎登陆餐饮管理系统”如图:
2、登录窗口的设计。
登录窗口如图
(1)在W_login窗口的Open事件中输入如下的程序代码
Environmentl_env
intl_ScrWidth,l_ScrHeight
setRedraw(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_passward
stringl_passward0
inti
l_id=trim(sle_1.text)
l_passward=trim(sle_2.text)
ifl_id=""then
messagebox("提示","请输入用户名!
")
return
endif
sle_1.setfocus()
ifl_passward=""then
messagebox("提示","请输入密码!
")
return
endif
sle_2.setfocus()
selectcount(*)
into:
i
fromzby
wherertrim(zby_name)=:
l_id
usingsqlca;
ifi<1then
messagebox("提示","该用户不存在!
")
sle_1.text=""
sle_2.text=""
sle_1.setfocus()
return
endif
selectzby_pawdinto
:
l_passward0
fromzby
wherertrim(zby_name)=:
l_id
usingsqlca;
iftrim(l_passward0)=l_passwardthen
open(w_main)
close(parent)
integerli_FileNum
stringls_Emp_Input
longll_FLength
ll_FLength=FileLength("D:
\MicrosoftSQLServer\1.txt")
li_FileNum=FileOpen("D:
\MicrosoftSQLServer\1.txt",StreamMode!
read!
shared!
)
IFll_FLength<32767THEN
FileRead(li_FileNum,ls_Emp_Input)
filewrite(li_FileNum,ls_Emp_Input)
messagebox("",ls_Emp_Input,None!
)
return
ENDIF
//显示交班管理制度
else
messagebox("警告","密码错误,请重新输入法!
")
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_FileNum
stringls_Emp_Input
longll_FLength
ll_FLength=FileLength("D:
\MicrosoftSQLServer\1.txt")
li_FileNum=FileOpen("D:
\MicrosoftSQLServer\1.txt",StreamMode!
read!
shared!
)
IFll_FLength<32767THEN
FileRead(li_FileNum,ls_Emp_Input)
filewrite(li_FileNum,ls_Emp_Input)
messagebox("",ls_Emp_Input,None!
)
return
ENDIF
这段代码就是在进入系统时显示该信息,如下图,
3.注册窗口的设计
(1)在”检测用户名”按扭控件的click事件中输入如下代码:
stringl_user
l_user=sle_1.text
ifl_user=""then
messagebox("警告","请输入用户名!
",Exclamation!
)
sle_1.setfocus()
return1
endif
inti
selectcount(*)
into:
i
fromZBY
whereZBY_NAME=:
l_user;
ifi>0then
messagebox("警告","用户名已存在,请重试!
",Exclamation!
)
sle_1.text=""
sle_1.setfocus()
return
else
messagebox("","恭喜你,该用户名可以使用!
")
return
endif
(2)在”提交”按扭控件的click事件中输入如下代码:
stringl_user
l_user=sle_1.text
ifsle_1.text=""then
messagebox("提示","请输入用户名!
")
return1
endif
stringaa,bb
aa=sle_2.text
bb=sle_3.text
ifaa=""then
messagebox("提示","密码不能为空!
")
return1
endif
ifaa<>bbthen
messagebox("提示","输入的密码不一致~n~r请重新输入!
")
sle_2.text=""
sle_3.text=""
sle_2.setfocus()
return
endif
insertINTOzby
(zby_name,zby_pawd)
VALUES(:
l_user,
:
aa)
usingsqlca;
ifsqlca.sqlcode=0then
messagebox("提示","注册成功,请牢记~r~n用户名"+sle_1.text+"~r~n密码"+sle_2.text)
close(parent)
else
messagebox("提示","注册失败!
")
return
endif
(3)在”取消”按扭控件的click事件中输入如下代码:
close(parent)
4.主菜单的设计
(1)“系统维护”菜单下“退出”子菜单的Click事件程序代码:
halt
其功能是关闭主窗口w_main,退出应用程序。
(2)“系统维护”菜单下“值班员信息维护”子菜单的Click事件程序代码:
open(w_zby)
(3)“系统维护”菜单下“菜谱信息维护”子菜单的Click事件程序代码:
open(w_choose_receive)
(4)“系统维护”菜单下“修改口令”子菜单的Click事件程序代码:
open(w_changekl)
(5)“订餐管理”菜单下“订餐”子菜单的Click事件程序代码:
open(w_dc)
(6)“订餐管理”菜单下“订餐修改”子菜单的Click事件程序代码:
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_count
longbb
i_count=dw_1.modifiedcount()+dw_1.deletedcount()
ifi_count>0then
bb=messagebox("提示","是否保存未保存的数据",question!
yesnocancel!
1)
choosecasebb
case1
ifdw_1.update()=1then
commitusingsqlca;
return0
else
rollbackusingsqlca;
messagebox("提示","数据保存失败!
")
endif
case2
return0
case3
return1
endchoose
endif
(3)增加按钮代码:
dw_1.scrolltorow(dw_1.insertrow(0))
dw_1.setcolumn(0)
dw_1.setfocus()
(4)删除按钮代码:
longnet
net=messagebox("","你确定要删除吗",question!
yesno!
1)
//提示是否要删除
choosecasenet
case1
dw_1.deleterow(dw_1.getrow())//删除当前行
case2
return1
endchoose
(5)保存按钮代码:
inti_count
i_count=dw_1.modifiedcount()+dw_1.deletedcount()//判断改变和删除的数目。
ifi_count>0then
ifdw_1.update()=1then
commitusingsqlca;
messagebox("提示","已成功保存"+string(i_count)+"纪录")
else
rollbackusingsqlca;
messagebox("提示","保存失败")
endif
endif
6.菜谱信息维护窗口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)查询代码
inti
stringlookforcondition//定义参数:
查询条件综合结果
stringlookforitem1,lookforitem2,lookforitem3//定义参数:
要查询的列
stringlookforwhat1,lookforwhat2,lookforwhat3//定义参数:
要查询的内容
stringlookforhow1,lookforhow2,lookforhow3//定义参数:
查询的符号
stringlookforoperator1,lookforoperator2//定义参数:
不同查询条件组合操作符号
lookforhow1=ddlb_3.text
lookforhow2=ddlb_4.text
ifddlb_5.text="与"then
lookforoperator1="and"
elseifddlb_5.text="或"then
lookforoperator1="or"
elseifddlb_5.text="非"then
lookforoperator1="not"
endif
ifddlb_1.text="菜谱号"then
lookforitem1="cp_no"
lookforwhat1="'"+sle_1.text+"'"
elseifddlb_1.text="菜名"then
lookforitem1="cp_name"
lookforwhat1="'"+sle_1.text+"'"
elseifddlb_1.text="种类"then
lookforitem1="cp_kind"
lookforwhat1="'"+sle_1.text+"'"
elseifddlb_1.text="价格"then
lookforitem1="cp_price"
lookforwhat1=sle_1.text
elseifddlb_1.text="备注"then
lookforitem1="cp_detail"
lookforwhat1="'"+sle_1.text+"'"
endif
ifddlb_2.text="菜谱号"then
lookforitem2="cp_no"
lookforwhat2="'"+sle_2.text+"'"
elseifddlb_2.text="菜名"then
lookforitem2="cp_name"
lookforwhat1="'"+sle_2.text+"'"
elseifddlb_2.text="种类"then
lookforitem2="cp_kind"
lookforwhat2="'"+sle_2.text+"'"
elseifddlb_2.text="价格"then
lookforitem2="cp_price"
lookforwhat2="'"+sle_2.text+"'"
elseifddlb_2.text="备注"then
lookforitem2="cp_detail"
lookforwhat2="'"+sle_2.text+"'"
endif
ifddlb_2.text=""orddlb_4.text=""then
lookforcondition=lookforitem1+lookforhow1+lookforwhat1
else
lookforcondition=lookforitem1+lookforhow1+lookforwhat1+""+lookforoperator1+""+lookforitem2+lookforhow2+lookforwhat2
endif
dw_1.setfilter(lookforcondition)
filter(dw_1)
i=dw_1.retrieve()
ifi<1then
messagebox("提示","没有相关记录!
",Exclamation!
)
sle_1.text=""
sle_2.text=""
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 餐饮 管理 系统 设计