酒店管理系统oracle后台+Delphi.docx
- 文档编号:3382178
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:26
- 大小:880.83KB
酒店管理系统oracle后台+Delphi.docx
《酒店管理系统oracle后台+Delphi.docx》由会员分享,可在线阅读,更多相关《酒店管理系统oracle后台+Delphi.docx(26页珍藏版)》请在冰豆网上搜索。
酒店管理系统oracle后台+Delphi
中南大学
《数据库课程设计》设计报告
题目酒店管理系统
学生姓名
学号
专业班级
指导老师
数学科学与计算技术学院
2015年1月
酒店管理系统
一、实践目的
首先应该在此次实践中有所收获,能够学习到相关软件的功能,和进行实践设计需要的知识的。
能够在实践中学习。
面对酒店行业的高速发展和酒店行业信息化发展的过程中出现的各种情况,酒店客房管理系统在实施后应达到以下目的:
实现多点操作的信息共享,相互之间的信息传递准确、快捷、顺畅;
服务管理信息化,可随时掌握客人住宿情况;
系统界面友好美观,操作简单易行,查询灵活方便,数据存储安全。
实现客房的登记入住和查询功能,查询酒店信息,客人信息,客房信息等功能。
实现Delphi和oracle的连接,进行数据的插入。
二、需求分析
1.系统功能结构如下:
客房查询
2.数据库逻辑设计
根据系统功能进行数据表的设计。
①登记表dj用来保存客人住宿时的住宿登记信息,此表为起初空表,在Delphi中进行数据插入后保存输入的数据信息。
其结构表如下:
字段
类型
字段大小
姓名
Varchar
10
证件
Varchar
12
证件号码
Varchar
18
房间号码
Varchar
10
联系方式
Varchar
20
住宿日期
Date
住宿天数
Int
性别
Varchar
4
createtabledj(姓名varchar(10),性别varchar(4),住宿日期date,证件varchar(12),证件号码varchar(18),房间号码varchar(10),联系方式varchar(20),住宿天数int);②客房信息表fjxx用来保存客房的基础信息,其结构如下:
字段
类型
大小
房间号
Varchar
10
房间类型
Varchar
20
价格
float
8
最大居住人数
int
createtablefjxx(房间号varchar(10),房间类型varchar(20),价格float(8),最大居住人数int);
③酒店信息表jdxx用来保存酒店的信息,其结构如下:
字段
类型
大小
公司名
Varchar
50
电话
Varchar
20
建立日期
Varchar
20
Varchar
20
公司地址
Varchar
10
邮箱
Int
createtablejdxx(公司名varchar(50),电话varchar(20),建立日期date,Emailvarchar(50),公司地址varchar(50),邮编int);
④客人信息表用来保存入住客户的信息,用于退房,客人信息查询等操作功能的实现。
其基本结构为:
字段
类型
大小
姓名
Varchar
10
证件
Varchar
12
证件号码
Varchar
18
房间号码
Varchar
10
联系方式
Varchar
20
房间金额
folat
8
住宿日期
Date
住宿天数
Int
性别
Varchar
4
createtablekrxx(姓名varchar(10),性别varchar(4),住宿日期date,证件varchar(12),证件号码varchar(18),房间号码varchar(10),联系方式varchar(20),住宿天数int,房间金额float(8));
三、设计过程
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('a').value:
=Trim(edit1.Text);
Open;
end;
关闭键的代码如下:
form5.close;
form1.show;
这样就完成了房间信息查询的操作。
(7)再建立一个Form6,默认格式即可。
在其中加入查看酒店信息所需控件:
1个label,1个按钮,1个DBGrid:
这里主要就是数据库的链接,改用另外一种方式为:
首先
(8)再建立一个Form7,默认格式即可。
在其中加入查看客房信息所需控件,和(7)一样,不过这里可以采用(5)的方法进行数据库的链接。
(9)再建立一个再建立一个Form8,默认格式即可。
在其中加入退房所需控件:
1个label,1个Edit,两个bitbtn,1个DBGrid,和一个DBNavigator如图:
将其与数据库中表krxx链接后,输入证件号码单击DBNavigator控件上的√可以突出显示选择的信息,然后点击退房可以实现退房功能。
2、进行窗体之间的转换
(1)在form3中进行密码设置,双击登录按钮进行代码输入如下:
var
results:
Variant;
BEGIN
results:
=ADOTable1.Lookup('姓名',edit1.text,'密码');
ifresults=edit2.Textthen
begin
form3.Hide;
form1.Show;
end
else
begin
application.MessageBox('姓名或密码错误','提示信息',64);
edit1.SetFocus;
exit;
end;
end;
退出代码为:
close;
(2)在form1中进行剩余各form间的连接,在form1中分别单击要实现的功能菜单按钮,并分别输入代码,得到的最后代码如下:
procedureTForm1.N2Click(Sender:
TObject);
begin
form1.Hide;
form2.showmodal;
end;
procedureTForm1.N3Click(Sender:
TObject);
begin
form1.Hide;
form4.showmodal;
end;
procedureTForm1.N4Click(Sender:
TObject);
begin
form1.Hide;
form5.ShowModal;
end;
procedureTForm1.N5Click(Sender:
TObject);
begin
form1.Hide;
form6.ShowModal;
end;
procedureTForm1.N6Click(Sender:
TObject);
begin
form1.hide;
form7.ShowModal;
end;
procedureTForm1.N8Click(Sender:
TObject);
begin
form1.hide;
form8.ShowModal;
end;
procedureTForm1.N7Click(Sender:
TObject);
begin
close;
end;
procedureTForm1.FormCreate(Sender:
TObject);
begin
end;
并且要在uint1的连接代码上添加:
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,Menus,DB,ADODB,unit2,unit4,unit5,unit6,unit7,unit8,;
(3)在form2中进行和form1间的转换,代码如下:
双击关闭按钮添加代码:
form2.close;
form1.show;
(4)在form4,form5,form6,form7中进行form1间的转换,代码类似(3)。
3、form1中退出菜单的实现
双击退出菜单进行代码输入:
close;即可。
至此完成了菜单管理的实现,可以运行后进行各功能的实现。
四、实践感想
本次课程设计,使我进一步巩固了知识我更加深刻地了解了oracle和Delphi的功能,了解到这些软件的强大功能。
不过在学习的过程中遇到了很多困难,比如Delphi和oracle数据库之间的连接。
我还需要进一步了解和学习。
②代码设计
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
Case"DJ"
zsdj_Click
Case"TF"
tf_Click
Case"FT"
ftck_Click
Case"CX"
zscx_Click
Case"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.<>""Then
Image2.Picture=LoadPicture(CommonDialog1.)
Str=CommonDialog1.
Open(App.Path&"\picture.txt")ForOutputAs#1
Print#1,Str
Close#1
CommonDialog1.=""
Else
CommonDialog1.=""
EndIf
EndSub
PrivateSubsjbf_Click()
main_sjbf.Show
main.Enabled=False
EndSub
PrivateSubsjhf_Click()
main_sjhf.Show
EndSub
PrivateSubzsdj_Click()
main_kfdj.Show
main.Enabled=False
EndSub
PrivateSubtf_Click()
main_tf.Show
main.Enabled=False
EndSub
PrivateSubkfcx_Click()
main_kfcx.Show
main.Enabled=False
EndSub
PrivateSubftck_Click()
main_ftcx.Show
main.Enabled=False
EndSub
PrivateSubzscx_Click()
Loadmain_zscx
main_zscx.Show
main.Enabled=False
EndSub
PrivateSubtfcx_Click()
Loadmain_tfcx
main_tfcx.Show
main.Enabled=False
EndSub
2.系统登录模块设计
①窗体设计
⑴添加新窗体,命名为main_Login,Caption属性为“酒店客房管理系统”;
⑵添加Adodc控件以及两个TextBox控件,Text1放在用户名后,Text2放在密码后;
⑶添加两个Image控件,分别设置Picture属性,添加“确定”和“退出”按钮。
②代码设计
PrivateSubImage1_Click()
IfText1.Text=7AndText2.Text=123456Then
main.Show
Me.Hide
Else
MsgBox"密码错误!
",vbCritical,"提示"
EndIf
EndSub
PrivateSubImage2_Click()
End
EndSub
3.住宿登记模块
①窗体设计
⑴添加新窗体命名为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="PROVIDER=MSDASQL;DRIVER={OracleinOraDb11g_home1};"&"server=webserver;DSN=;databasename=aa;databasefile=d:
\\aa\\;UID=scott;PWD=123456"
Adodc2.RecordSource="select*fromtb_djborderby凭证号码"
Adodc2.Refresh
IfNotAdodc2.Recordset.EOFThenAdodc2.Recordset.MoveLast
Iflsph.Text=""Thenbh.Text=Fdate&"d"&Format(1,"###000")
Iflsph.Text<>""Then
y1.Text=Month(Fdate)
y2.Text=Month(Left(lsph.Text,10))
Ify1.Text=y2.TextThen
'bh.Text=Fdate&"d"&Format(Val(Right(lsph.Text,3))+1,"###000")
Text1.Text=Val(Right(lsph.Text,3))+1
EndIf
Ify1.Text<>y2.TextThen
bh.Text=Fdate&"d"&Format(1,"###000")
EndIf
EndIf
Fori=0To2
ZSDJ(i).Text=""
ZSDJ(i).Enabled=True
Nexti
Fori=4To6
ZSDJ(i).Text=""
ZSDJ(i).Enabled=True
Nexti
Combo3.Text=""
Comok.Enabled=True:
Comdj.Enabled=False
Combo3.Enabled=True:
Combo1.Enabled=True
ZSDJ(0).SetFocus
Adodc3.ConnectionString="PROVIDER=MSDASQL;DRIVER={OracleinOraDb11g_home1};"&"server=webserver;DSN=;databasename=aa;databasefile=d:
\\aa\\;UID=scott;PWD=123456"
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
Nexti
EndIf
EndSub
PrivateSubcomok_Click()
IfZSDJ(0)=""OrCombo3=""Then
MsgBox"请输入完整信息",,"系统提示"
Else
Adodc2.RecordSource="select*fromtb_djbwhere房间号='"&Combo3.Text&"'and标志like'1'"
Adodc2.Refresh
IfAdodc2.Recordset.RecordCount=0Then
Adodc2.Recordset.AddNew
Ifbh.Text<>""ThenAdodc2.Recordset.Fields("凭证号码")=bh.Text
IfZSDJ(0).Text<>""ThenAdodc2.Recordset.Fields("姓名")=ZSDJ(0).Text
IfCombo1.Text<>""ThenAdodc2.Recordset.Fields("证件名称")=Combo1.Text
IfZSDJ
(1).Text<>""ThenAdodc2.Recordset.Fields("证件号码")=ZSDJ
(1).Text
IfZSDJ
(2).Text<>""ThenAdodc2.Recordset.Fields("详细地址")=ZSDJ
(2).Text
IfCombo3.Text<>""ThenAdodc2.Recordset.Fields("房间号")=Val(Combo3.Text)
IfZSDJ(4).Text<>""ThenAdodc2.Recordset.Fields("客房类型")=ZSDJ(4).Text
IfDTP1.Value<>""ThenAdodc2.Recordset.Fields("住宿日期")=DTP1.Value
IfZSDJ(5).Text<>""ThenAdodc2.Recordset.Fields("客房价格")=Val(ZSDJ(5).Text)
IfZSDJ(6).Text<>""ThenAdodc2.Recordset.Fields("住宿天数")=ZSDJ(6).Text
IfZSDJ(7).Text<>""ThenAdodc2.Recordset.Fields("宿费")=ZSDJ(7).Text
IfDTP3.Value<>""ThenAdodc2.Recordset.Fields("退宿日期")=DTP3.Value
Adodc2.Recordset.Update
Adodc2.Refresh
adocon.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\DB_KFGL.mdb;PersistSecurityInfo=False"
adoRs.Open"select*fromtb_djys",adocon,adOpenKeyset,adLockOptimistic
adoRs.AddNew
Ifbh.Text<>""ThenadoRs.Fields("凭证号码")=bh.Text
IfZSDJ(0).Text<>""ThenadoRs.Fields("姓名")=ZSDJ(0).Text
IfCombo1.Text<>""ThenadoRs.Fields("证件名称")=Combo1.Text
IfZSDJ
(1).Text<>""ThenadoRs.Fields("证件号码")=ZSDJ
(1).Text
IfZSDJ
(2).Text<>""ThenadoRs.Fields("详细地址")=ZSDJ
(2).Text
IfZSDJ(4).Text<>""ThenadoRs.Fields("客房类型")=ZSDJ(4).Text
IfCombo3.Text<>""ThenadoRs.Fields("房间号")=Val(Combo3.Text)
IfZSDJ(5).Text<>""ThenadoRs.Fields("客房价格")=Val(ZSDJ(5).Text)
IfDTP1.Value<>""ThenadoRs.Fields("住宿日期")=DTP1.Value
IfZSDJ(6).Text<>""ThenadoRs.Fields("住宿天数")=ZSDJ(6).Text
IfZSDJ(7).Text<>""ThenadoRs.Fields("宿费")=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 oracle 后台 Delphi