oracle酒店管理系统Word文件下载.docx
《oracle酒店管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《oracle酒店管理系统Word文件下载.docx(42页珍藏版)》请在冰豆网上搜索。
![oracle酒店管理系统Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/30/70778d9d-f10b-4447-bac6-89b2428b4b4d/70778d9d-f10b-4447-bac6-89b2428b4b4d1.gif)
1.2系统要求
要现酒店员工信息管理、客户信息管理、客房信息管理、订单管理等功能,包括客户信息的添加、修改、删除及查询;
客房信息的添加、修改、删除及查询;
订单查询及退房管理等。
2.1系统功能需求
通过对互联网上的各大酒店管理系统的认识和分析,我对酒店管理系统有了基本的了解,我觉得该系统至少应该具有以下的一些基本功能:
(1)系统管理模块:
包括登录系统,用户管理,权限管理,角色管理,以及查询统计,客户管理折扣管理和开台管理等。
(2)基本设置管理模块:
包括厨师的管理,买单管理等。
(3)客户管理模块:
包括客户点菜,上菜,结账,统计等。
(4)客户订房管理模块:
包括订房,续房,查房,退房,结算等。
2.2系统数据需求
根据数据需求分析可知该系统至少应该具有以下的一些数据需求:
DESKTYPE餐桌类别表(餐桌类别编号,餐桌座位数,餐桌方位,备注)。
DESK餐桌表(餐桌编号,餐桌类别编号,餐桌状态,备注)。
FOODYPE菜系(菜系编号,菜系名称,备注)。
FOOD菜品(菜品编号,菜单编号,所属菜系,菜品名称,菜品价格,助记码,备注)。
FOODTICKET餐饮订单(订单编号,餐桌编号,下单服务员编号,点菜时间,订单状态,备注)。
ROOMCUSTINFO住房客户信息表(住户编号,客房类别编号,住户,住户省份证号)。
FOODLIST菜单(菜单编号,餐桌编号,菜品编号,厨师编号,状态,备注)。
ROOMTYPE客房类别表(客房类别编号,客房类型名称,客房类别价格,备注)。
ROOMINFO客房信息表(房间编号,客房类别编号,客房状态,备注)。
ROOMTICKET客房订单管理表(订单编号,房间号,下单服务员ID,号,入住时间,离开时间,押金金额,结算金额,下单时间,备注)。
CUSTINFO客户信息表(号,客户,客户性别,客户,是否会员,信息录入时间,备注)。
USER用户信息表(用户编号,角色编号,部门编号,用户名,用户密码,是否审核通过,年龄,性别,生日,联系,备注)。
ROLE用户角色表(角色编号,角色名,备注)。
DEPARMENT部门表(部门编号,名称,上级部门编号,备注)。
PERMISSION权限表(权限编号,权限组编号,权限名称,备注)。
ROLEPER角色-权限关联表(角色权限编号,角色编号,权限编号)。
PERMISSIONGROUP权限组表(权限组编号,权限组名称)。
2.3系统功能模块图
酒店管理系统功能结构如图2-3所示
图2-3系统功能结构图
2.4系统部分流程图
客房订单流程图如图2-4所示
图2-4客房订单管理流程图
餐饮部分开台流程图如图2-5所示
图2-5餐饮部分开台流程图
3.1数据库概念模型
数据库概念模型图如图3-1所示:
图3-1数据库概念模型图
3.2数据库物理模型
数据库物理模型图如图3-2所示:
图3-2数据库物理模型图
3.3酒店管理系统部分数据字典
本系统数据库采用Oracle数据库,系统数据库名称为HotelDB,共包含17表。
菜系表:
用来存储菜系的信息,其中FOODTYPEID字段为主键。
表3-3-1菜系:
FOODYPE
字段名称
类型
允许空
主键
外键
外键参考表
说明
FOODTYPEID
NUMBE(5)
NOT
YES
菜系ID
FOODTYPENAME
VARCHAR2(20)
菜系名称
FOODTYPEREMARK
VARCHAR2(50)
备注
菜品表:
用于菜品的所有信息,也是点菜的菜单的一个信息来源表,从中可获得菜品的全部信息。
其中字段FOODTYPEID用来描述该菜品属于哪个菜系是外键参参考表FOODTYPE,根据此字段的值,可以知道菜品属于相应的哪个菜系。
表3-3-2菜品:
FOOD
说明
ID
NUMBER(5)
菜品ID
NAME
菜品名称
FOODTYPE
所属菜系ID
PRICE
菜品价格
FOODHELPCODE
VARCHAR2(10)
助记码
FOODREMARK
客房类别表:
用来存储客房类别的信息,
表3-3-3客房类别表:
ROOMTYPE
ROOMTYPEID
客房类别编号
客房类别名称
ROOMTYPEPAY
类别价格
ROOMTYPEREMARK
客房信息表:
用来存储客房信息。
表3-3-4客房信息表:
ROOMINFO
ROOM
房间编号
续表5-4
ROOMCHECK
客房状态
ROOMREMARK
客户信息表:
用来存储酒店客户的相关信息。
表3-3-5客户信息表:
CUSTINFO
CARDID
号
CUSTNAME
CUSTSEX
性别
CUSTPHONE
VIPCHECK
是否会员
CUSTDATE
信息录入时间
4.1设计过程
4.1.1窗体设计
⑴新建一个标准工程,会出现form1,可以遵循默认格式,也可以更改名称,这里默认。
⑵添加所需控件mainmenu,双击控件在其中加入所要进行的功能如下:
添加控件Image插入图片,选中image控件,在其属性表中选中picture,选择需要的图片:
⑶再建立一个Form2,默认格式即可。
在其中加入客房登记所需控件:
⑷再建立一个Form3,默认格式即可,并且在project-options中设置其为主窗体。
在其中加入客房登记所需控件,8个label,8个Edit,两个bitbtn如图:
可以在bitbtn按钮中添加图片,使其更加生动,,选中按钮,在其属性选择Glyph,选择需要的图片即可,注意图片格式要符合要求,还可以为界面换颜色。
⑸再建立一个Form4,默认格式即可。
在其中加入客人信息查询所需控件,1个label,一个Edit,2个按钮,1个DBGrid:
这里需要数据库,与krxx表中的信息进行。
连接方式为:
首先添加一个数据模板(datemodule),然后选择ADOQuery控件和datasource控件添加到数据模板,选中ADOQuery控件,在其属性中找到connectionstring,进行数据库的,选择
⑹再建立一个Form5,默认格式即可。
在其中加入客房登记所需控件,和上面一样:
这个窗体也要进行数据库,过程和上面一样,只是的表名不同,这里的是kfxx表。
双击确定添加代码如下:
withData3.ADOQuery1do
begin
Close;
SQL.Clear;
SQL.Add('
select*fromfjxxwhere房间=:
a'
);
Parameters.ParamByName('
).value:
=Trim(edit1.Text);
Open;
end;
关闭键的代码如下:
form5.close;
form1.show;
这样就完成了房间信息查询的操作。
(7)再建立一个Form6,默认格式即可。
在其中加入查看酒店信息所需控件:
1个label,1个按钮,1个DBGrid:
这里主要就是数据库的,改用另外一种方式为:
首先再建立一个Form7,默认格式即可。
在其中加入查看客房信息所需控件,和(7)一样,不过这里可以采用(5)的方法进行数据库的。
再建立一个再建立一个Form8,默认格式即可。
在其中加入退房所需控件:
1个label,1个Edit,两个bitbtn,1个DBGrid,和一个DBNavigator如图:
将其与数据库中表krxx后,输入证件单击DBNavigator控件上的√可以突出显示选择的信息,然后点击退房可以实现退房功能。
4.1.2进行窗体之间的转换
(1)在form3中进行密码设置,双击登录按钮进行代码输入如下:
var
results:
Variant;
BEGIN
=ADOTable1.Lookup('
'
edit1.text,'
密码'
ifresults=edit2.Textthen
begin
form3.Hide;
form1.Show;
end
else
application.MessageBox('
或密码错误'
'
提示信息'
64);
edit1.SetFocus;
exit;
end;
退出代码为:
close;
(2)在form1中进行剩余各form间的连接,在form1中分别单击要实现的功能菜单按钮,并分别输入代码,得到的最后代码如下:
procedureTForm1.N2Click(Sender:
TObject);
form1.Hide;
form2.showmodal;
procedureTForm1.N3Click(Sender:
form4.showmodal;
procedureTForm1.N4Click(Sender:
form5.ShowModal;
procedureTForm1.N5Click(Sender:
form6.ShowModal;
procedureTForm1.N6Click(Sender:
form1.hide;
form7.ShowModal;
procedureTForm1.N8Click(Sender:
form8.ShowModal;
procedureTForm1.N7Click(Sender:
procedureTForm1.FormCreate(Sender:
并且要在uint1的连接代码上添加:
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,Menus,DB,ADODB,unit2,unit4,unit5,unit6,unit7,unit8,;
在form2中进行和form1间的转换,代码如下:
双击关闭按钮添加代码:
form2.close;
form1.show;
(4)在form4,form5,form6,form7中进行form1间的转换,代码类似(3)。
3、form1中退出菜单的实现
双击退出菜单进行代码输入:
即可。
至此完成了菜单管理的实现,可以运行后进行各功能的实现。
②代码设计
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
Case"
DJ"
zsdj_Click
TF"
tf_Click
FT"
ftck_Click
CX"
zscx_Click
exit"
IfMsgBox("
确定退出该系统?
"
4,"
系统提示"
)=vbYesThen
End
EndIf
EndSelect
EndSub
PrivateSubsztx_Click()
DimStr
CommonDialog1.Filter="
BMP图片(*.BMP)|*.BMP|JPG图片(*.JPG)|*.JPG|GIF图片(*.GIF)|*.GIF|所有文件(*.*)|*.*"
CommonDialog1.ShowOpen
IfCommonDialog1.FileName<
>
"
Then
Image2.Picture=LoadPicture(CommonDialog1.FileName)
Str=CommonDialog1.FileName
Open(App.Path&
\picture.txt"
)ForOutputAs#1
Print#1,Str
Close#1
CommonDialog1.FileName="
Else
EndIf
PrivateSubsjbf_Click()
main_sjbf.Show
main.Enabled=False
PrivateSubsjhf_Click()
main_sjhf.Show
PrivateSubzsdj_Click()
main_kfdj.Show
main.Enabled=False
PrivateSubtf_Click()
main_tf.Show
PrivateSubkfcx_Click()
main_kfcx.Show
PrivateSubftck_Click()
main_ftcx.Show
PrivateSubzscx_Click()
Loadmain_zscx
main_zscx.Show
PrivateSubtfcx_Click()
Loadmain_tfcx
main_tfcx.Show
4.1.3系统登录模块设计
①窗体设计
⑴添加新窗体,命名为main_Login,Caption属性为“酒店客房管理系统”;
⑵添加Adodc控件以及两个TextBox控件,Text1放在用户名后,Text2放在密码后;
⑶添加两个Image控件,分别设置Picture属性,添加“确定”和“退出”按钮。
PrivateSubImage1_Click()
IfText1.Text=7AndText2.Text=123456Then
main.Show
Me.Hide
Else
MsgBox"
密码错误!
vbCritical,"
提示"
PrivateSubImage2_Click()
End
4.1.4住宿登记模块
⑴添加新窗体命名为main_kfdj,Caption属性为“住宿登记”;
⑵添加两个Adodc控件、TextBox控件数组以及2个DTPicker控件;
⑶添加3个ComboBox控件。
PrivateSubcomdj_Click()
Adodc1.ConnectionString="
PROVIDER=MSDASQL;
DRIVER={OracleinOraDb11g_home1};
&
server=webserver;
DSN=;
databasename=aa;
databasefile=d:
\\aa\\;
UID=scott;
PWD=123456"
Adodc1.RecordSource="
select*fromtb_kfwhere房态='
空房'
Adodc1.Refresh
Adodc2.ConnectionString="
Adodc2.RecordSource="
select*fromtb_djborderby凭证"
Adodc2.Refresh
IfNotAdodc2.Recordset.EOFThenAdodc2.Recordset.MoveLast
Iflsph.Text="
Thenbh.Text=Fdate&
d"
Format(1,"
###000"
)
Iflsph.Text<
y1.Text=Month(Fdate)
y2.Text=Month(Left(lsph.Text,10))
Ify1.Text=y2.TextThen
'
bh.Text=Fdate&
Format(Val(Right(lsph.Text,3))+1,"
Text1.Text=Val(Right(lsph.Text,3))+1
Ify1.Text<
y2.TextThen
bh.Text=Fdate&
Fori=0To2
ZSDJ(i).Text="
ZSDJ(i).Enabled=True
Nexti
Fori=4To6
Combo3.Text="
Comok.Enabled=True:
Comdj.Enabled=False
Combo3.Enabled=True:
Combo1.Enabled=True
ZSDJ(0).SetFocus
Adodc3.ConnectionString="
Adodc3.RecordSource="
select*fromtb_kfwhere房态='
Adodc3.Refresh
Combo3.Clear
IfAdodc3.Recordset.RecordCount>
0Then
Fori=1ToAdodc3.Recordset.RecordCount
Combo3.AddItemAdodc3.Recordset.Fields("
房间号"
).Value
Adodc3.Recordset.MoveNext