课程设计说明书参考酒店管理系统.docx
- 文档编号:12482411
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:56
- 大小:975.07KB
课程设计说明书参考酒店管理系统.docx
《课程设计说明书参考酒店管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计说明书参考酒店管理系统.docx(56页珍藏版)》请在冰豆网上搜索。
课程设计说明书参考酒店管理系统
*********************课程设计说明书
课程名称程序设计方法课程设计
题目酒店餐饮管理系统的设计
院系************
班级*********
学生姓名XXX
指导教师******
日期*****************
课程设计任务书
(指导教师填写)
课程设计名称程序设计方法课程设计学生姓名XXX专业班级*******
设计题目酒店餐饮管理系统
一、课程设计目的
该课程设计是信息管理本科集中实践性环节之一,是学习完《数据库基础与应用》和《程序设计方法》课程后进行的一次全面的综合练习。
其目的是通过本课程设计使学生对具体问题应用《程序设计方法》课程中所学的方法与技术,进行需求分析及软件设计的过程,不仅对程序设计方法课程中的所有知识点进行一个全面的复习巩固,更重要的是增强学生解决实际问题的能力。
二、设计内容、技术条件和要求
(1)本环节要求学生根据程序设计方法整个课程的所学内容,自己独立设计完成一个比较复杂的小型管理系统。
(2)所设计的小型管理系统要求功能比较完善,应包含输入输出、查询、插入、删除、打印等基本功能
(2)程序内容自己灵活设计,包括规划自己的数据库和设计程序功能和界面设计。
(3)数据库中不能少于两个表。
(5)程序应功能完善,界面友好,容错性好,操作方便。
三、时间进度安排
系统分析与规划半周
系统设计与调试一周
撰写课程设计说明书半周
四、主要参考文献(
郑阿奇,PowerBuilder实用教程(第二版),电子工业出版社
董军,王玉,康祥顺,PowerBuilder案例开发集锦,电子工业出版社
张长富,PowerBuilder9.0实例教程,电子科技大学出版社
指导教师签字:
2008年12月23日
酒店餐饮管理系统
1.概述
餐厅系统是按国内餐饮行业最新要求开发的全新概念信息管理系统。
该系统将餐厅收银、往来帐务结算管理及销售情况统计工作在单微机或网络系统中完成。
主要特点包括:
(1)代码菜谱编制,方便统计,方便输入;
(2)开单、改单、结算、打印、用户界面方便友好;
(3)系统专设往来帐、内部帐,结算方式灵活多样,结算信息详尽翔实;
(4)系统可同前台系统衔接,查询客人信贷情况,往前台客人帐户转账;
(5)帐务系统的可扩充性。
由于餐厅业务的扩展,势必要求帐务结算系统随之扩展,在不修改程序的前提下,本系统可在相当可观的范围内,由用户扩展其营业项目和结算手段。
(6)帐务操作数据的可校验性。
本系统提供了多种方便的查询、校核和统计功能,供帐务操作人员和专职核数人员自核及校对帐务数据。
例如,当班收银员下班时直接统计当班期间的输单、收银情况。
为餐饮企业管理人员提供及时准确的经营状况和帐务信贷情况。
餐厅系统需要完成的功能有以下几点。
(1)订餐管理:
订餐、订餐修改、订餐取消、订餐查询。
(2)收款管理:
立帐、折扣设定。
(3)系统维护:
餐厅代码设定、餐台号码以及贵宾房设定、特色分类设定、特色编码设定、折扣率设定、营业统计项目设定、成本统计项目设定、使用者权限维护。
2.系统功能模块设计
酒店管理系统中餐饮系统的功能模块图如下,
通过对酒店餐饮管理的内容和数据流程分析,设计的数据项和数据结构如下。
●菜谱信息。
包括的数据项有菜谱号、名称、所属种类、价格、描述等。
●值班员信息。
包括的数据项有值班员姓名和口令。
●荣誉客户信息。
包括的数据项有客户号、客户姓名、年龄、性别、职称、联系电话、工作单位等。
●订餐信息。
包括的数据项有桌号、菜号、菜名、数量、价格、订餐日期。
●结算信息。
包括的数据项有客户号、桌号、结算日期、打折情况、总计等。
有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计。
3.数据库概念结构设计
根据上面的设计规划出的实体有:
菜谱实体、值班员实体、客户实体、订餐实体、结算实体。
各个实体具体的描述E-R图及其之间关系描述如下。
图1为菜谱实体E-R图。
图1菜谱实体E-R图
图2为值班员实体E-R图。
图2值班员实体E-R图
图3为客户实体E-R图。
图3客户信息实体E-R图
图4为订餐信息实体E-R图。
图4订餐信息实体E-R图
图5为结算信息实体E-R图。
图5结算信息实体E-R图
实体和实体之间的关系E-R图如图6所示。
图6实体之间关系E-R图
4.数据库逻辑结构设计
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
酒店管理系统数据库中各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
表7为菜谱信息表CP。
表7菜谱信息表CP
列名
数据类型
可否为空
说明
CP_NO
VARCHAR2(10)
NOTNULL
菜谱号(主键)
CP_NAME
VARCHAR2(20)
NULL
菜名称
CP_KIND
VARCHAR2(20)
NULL
种类
CP_PRICE
NUMBER(10)
NULL
价格
CP_DETAIL
VARCHAR2(50)
NULL
描述
表8为值班员信息表ZBP。
表8值班员表ZBY
列名
数据类型
可否为空
说明
ZBY_NAME
VARCHAR2(20)
NOTNULL
值班员名(主键)
ZBY_PAWD
VARCHAR2(10)
NOTNULL
口令
表9为荣誉客户信息表KH。
表9荣誉客户信息表KH
列名
数据类型
可否为空
说明
KH_NO
VARCHAR2(10)
NOTNULL
客户号(主键)
KH_NAME
VARCHAR2(20)
NULL
姓名
KH_SEX
VARCHAR2
(2)
NULL
性别
KH_AGE
NUMBER(3)
NULL
年龄
KH_JOB
VARCHAR2(20)
NULL
职务
KH_TEL
VARCHAR2(20)
NULL
联系电话
KH_COMPANY
VARCHAR2(20)
NULL
工作单位
表10为订餐信息表DC。
表10订餐信息表DC
列名
数据类型
可否为空
说明
DC_DESK
VARCHAR2(20)
NOTNULL
桌号(主键)
CP_NO
VARCHAR2(10)
NOTNULL
菜谱号(主键)
CP_NAME
VARCHAR2(20)
NULL
菜名称
DC_NUMBER
NUMBER(3)
NULL
数量
DC_DATE
DATE
NULL
订餐日期(主键)
表11为结算信息表JS。
表11结算信息表JS
列名
数据类型
可否为空
说明
KH_NO
VARCHAR2(20)
NOTNULL
客户号(主键)
DC_DESK
VARCHAR2(20)
NULL
桌号
JS_DZ
NUMBER(3)
NULL
打折情况
TOTAL
NUMBER(5)
NULL
总计
JS_DATE
DATE
NULL
日期
5.数据库结构的实现
(1)创建菜谱信息表格CP
(2)创建值班员表ZBY
(3)创建客户信息表KH
(4)创建订餐信息表DC
(5)创建结算信息表JS
6.创建应用程序对象
上面我们创建了酒店管理系统中餐饮管理部分的数据库结构,数据库中的各个表格都是空的。
关于数据的输入可以右击表点“editdata”-“grid”.然后在下面右击选“insertrow”.
餐饮管理系统应用程序对象的创建步骤如下。
(1)单击菜单“File|New”,选择应用程序对象模板画板,单击“OK”按钮在出现的对话框中完成应用程序对象名、库文件名的设置.
(2)单击“Finish”按钮,进入应用程序对象设计画面。
在应用程序对象的Open事件中输入如下的程序代码:
//ProfileJiudian_pro
SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="Connectstring='DSN=jiudian'"
connectusingsqlca;
ifsqlca.sqlcode<>0then
messagebox("对不起","数据库连接错误!
")
return
endif
open(w_open)
sleep
(1)
close(w_open)
open(w_login)
应用程序运行后第一个出现的窗口是上面语句打开的w_open窗口,过一秒之后再出现w_login登录窗口。
7.w_open窗口的设计。
在应用程序对象的Open事件的程序代码有下面一条语句:
open(w_open)
该语句就是打开w_open窗口的语句。
该窗口如图13所示。
图13
该窗口上的控件有picturecontrol,用来放置一图片。
该窗口是popup!
normal!
没有toolbar!
。
8.自定义一个按扭的用户对象。
定义一个标准的可视用户对象my_command.在selectstandardvisualtype中选commandbutton,如下图,
,并为该按扭新建一个事件ue_enternew,事件id为pbm_keydown.并输入如下代码,
ifkeydown(keyenter!
)then
this.triggerevent(clicked!
)
endif
当按下回车时触发该按扭。
在下面窗口的按扭都是用这个用户对像。
9.登录窗口的设计。
在应用程序对象的Open事件的程序代码有下面一条语句:
open(w_login)
该语句就是打开登录窗口的语句。
登录窗口如图14所示。
控件如上图所示.
(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
wherezby_name=:
l_id
usingsqlca;
ifi<1then
messagebox("提示","该用户不存在!
")
sle_1.text=""
sle_2.text=""
sle_1.setfocus()
return
endif
selectzby_pawdinto
:
l_passward0
fromzby
wherezby_name=:
l_id
usingsqlca;
ifl_passward0=l_passwardthen
open(w_main)
close(parent)
integerli_FileNum
stringls_Emp_Input
longll_FLength
ll_FLength=FileLength("F:
\学习\pb\我的PB\订餐系统\1.txt")
li_FileNum=FileOpen("F:
\学习\pb\我的PB\订餐系统\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
其功能是将用户在sle_1和sle_2控件中输入的用户名和口令与数据库中保存的值班员姓名和口令做比较。
如果一致,则打开应用程序主窗口,并关闭登录窗口,同时显示交班管理制度;如果不成功,则输入显示信息,提示输入不正确请重试。
(3)按钮控件cb_2的Click事件中的程序代码如下:
Halt用于终止应用程序的执行.
(4)按钮控件cb_3的Click事件中的程序代码如下:
open(w_zhuche)用来打开注册窗口.
(5)在两个输入静态文本控件的Click事件中的程序代码:
ifKeyDown(KeyEnter!
)then
cb_1.triggerevent(Clicked!
)
endif
当输入完之后,直接按回车即可触发“确定”控扭。
在下面一些窗口的也有类似情况,不再一一描述。
10.交班管理制度显示的制作。
(1)在该系统文件目录下新建一个”1.txt”在里面输入相应的内容。
在登录窗口的cb_1下的代码
integerli_FileNum
stringls_Emp_Input
longll_FLength
ll_FLength=FileLength("F:
\学习\pb\我的PB\订餐系统\1.txt")
li_FileNum=FileOpen("F:
\学习\pb\我的PB\订餐系统\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
//显示交班管理制度
这段代码就是在进入系统时显示该信息,如下图,
。
11.注册窗口的设计
所要布置的控件如上图所示.
(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
INSERTINTO"zby"
("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
该代码是用来注册的,如果两次输入的密码不一样,则不能通过。
如果成功则显示用户名和密码的信息,并要求牢记。
如下图,
.未标*号的为选填。
此时已把数据存入了zby表里。
(3)在”取消”按扭控件的click事件中输入如下代码:
close(parent)
12.主菜单的设计。
菜单如下图所示,
(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_qx)
(8)“订餐管理”菜单下“订餐查询”子菜单的Click事件程序代码:
open(w_dc_search)
(9)“收款管理”菜单的“立帐”子菜单的Click事件程序代码:
open(w_jiesuan)
(10)“收款管理”菜单的“折扣设定”子菜单的Click事件程序代码:
open(w_zksd)
(11)“打印”菜单的“打印帐单”子菜单的Click事件程序代码:
open(w_print)
(12)“帮助”菜单的Click事件程序代码:
open(w_help)
sleep
(1)
close(w_help)
(13)快捷键及工具栏如图所示。
还要建个w_main窗口用来挂上菜单。
该窗口类型为mdihelp!
。
Title为酒店餐饮管理系统1.0。
另外在窗口上布置一个图片控件,用来做为系统的背景。
在登录窗口的“确定”按扭的click事件中有句open(main)的代码,即为打开此窗口。
13.值班员信息维护窗口w_zby的设计
该窗口上的控件好上图所示,其显示部分是一个数据窗口。
数据窗口对象d_zby在编辑状态下如下图,
该数据窗口对象所链接的数据库表格为ZBY,其数据源表示如下:
SELECT"zby"."zby_name",
"zby"."zby_pawd"
FROM"zby"
(1)在值班员信息维护窗口的Open事件中输入如下的程序代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
值班员信息维护窗口的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
(2)“增加”按钮控件的Click事件用于增加一个值班员,程序代码如下:
dw_1.scrolltorow(dw_1.insertrow(0))
dw_1.setcolumn(0)
dw_1.setfocus()
(3)“删除”按钮控件的Click事件用于删除一个值班员,程序代码如下:
longnet
net=messagebox("","你确定要删除吗",question!
yesno!
1)
//提示是否要删除
choosecasenet
case1
dw_1.deleterow(dw_1.getrow())//删除当前行
case2
return1
endchoose
(4)“保存”按钮控件的Click事件将用于保存用户所做的修改,程序代码如下:
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("提示","保存失败")
en
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 说明书 参考 酒店 管理 系统