收藏 分销(赏)

oracle酒店管理系统样本.docx

上传人:二*** 文档编号:4511818 上传时间:2024-09-26 格式:DOCX 页数:52 大小:437.08KB 下载积分:5 金币
下载 相关 举报
oracle酒店管理系统样本.docx_第1页
第1页 / 共52页
本文档共52页,全文阅读请下载到手机保存,查看更方便
资源描述
Oracle 数据库设计与实现 选题名称: 酒店管理系统 姓 名: 学 号: 专 业: 班 级: 指引教师: 设计地点: 目 录 一、 系统需求分析 1.1系统开发目和意义 ----------3 1.2系统规定 -----------------------------3 二、系统总体设计 2.1系统功能需求 ----------------------4 2.2系统数据需求 ----------------------4 2.3系统功能构造图 -------------------5 2.4系统某些流程图 -------------------5 三、数据库设计 3.1数据库概念模型 -------------------7 3.2数据库物理模型 -------------------8 3.3酒店管理系统某些数据字典 ---9 四、系统实现过程 4.1设计过程 -----------------------------11 4.2系统各界面设计代码 -------------28 五、实验总结 5.1实验中遇到问题 ---------------35 5.2心得体会 --------------------------35 一、系统需求分析 1.1系统开发目和意义 一方面应当在本次实践中有所收获,可以学习到有关软件功能,和进行实践设计需要知识。可以在实践中学习。 面对酒店行业高速发展和酒店行业信息化发展过程中浮现各种状况,酒店客房管理系统在实行后应达到如下目: 实现多点操作信息共享,互相之间信息传递精确、快捷、顺畅; 服务管理信息化,可随时掌握客人住宿状况; 系统界面和谐美观,操作简朴易行,查询灵活以便,数据存储安全。 实现客房登记入住和查询功能,查询酒店信息,客人信息,客房信息等功能。 实现Delphi和oracle连接,进行数据插入。 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) NOT 菜系名称 FOODTYPEREMARK VARCHAR2(50) YES 备注 菜品表:用于菜品所有信息,也是点菜菜单一种信息来源表,从中可获得菜品所有信息。其中字段FOODTYPEID用来描述该菜品属于哪个菜系是外键参参照表FOODTYPE,依照此字段值,可以懂得菜品属于相应哪个菜系。 表3-3-2 菜品:FOOD 字段名称 类型 容许空 主键 外键 外键参照表 阐明 FOOD ID NUMBER(5) NOT YES 菜品ID FOOD NAME VARCHAR2(20) NOT 菜品名称 FOODTYPE ID NUMBER(5) NOT YES FOODYPE 所属菜系ID FOOD PRICE NUMBER(5) NOT 菜品价格 FOODHELPCODE VARCHAR2(10) NOT 助记码 FOODREMARK VARCHAR2(50) YES 备注 客房类别表:用来存储客房类别信息, 表3-3-3客房类别表:ROOMTYPE 字段名称 类型 容许空 主键 外键 外键参照表 阐明 ROOMTYPEID NUMBER(5) NOT YES 客房类别编号 ROOMTYPE NAME VARCHAR2(20) NOT 客房类别名称 ROOMTYPEPAY NUMBER(5) NOT 类别价格 ROOMTYPEREMARK VARCHAR2(50) NOT 备注 客房信息表:用来存储客房信息。 表3-3-4 客房信息表:ROOMINFO 字段名称 类型 容许空 主键 外键 外键参照表 阐明 ROOM ID NUMBER(5) NOT YES 房间编号 ROOMTYPE ID NUMBER(5) NOT YES ROOMTYPE 客房类别编号 续表 5-4 字段名称 类型 容许空 主键 外键 外键参照表 阐明 ROOMCHECK NUMBER(5) NOT 客房状态 ROOMREMARK VARCHAR2(50) YES 备注 客户信息表:用来存储酒店客户有关信息。 表3-3-5 客户信息表:CUSTINFO 字段名称 类型 容许空 主键 外键 外键参照表 阐明 CARDID VARCHAR2(20) NOT YES 身份证号 CUSTNAME VARCHAR2(20) NOT 姓名 CUSTSEX VARCHAR2(10) NOT 性别 CUSTPHONE VARCHAR2(20) YES 电话 VIPCHECK NUMBER(5) YES 与否会员 CUSTDATE VARCHAR2(20) YES 信息录入时间 四、 系统实现过程 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表。 双击拟定添加代码如下: with Data3.ADOQuery1 do begin Close; SQL.Clear; SQL.Add('select * from fjxx where 房间号码=:a'); Parameters.ParamByName('a').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 results:=ADOTable1.Lookup('姓名',edit1.text,'密码'); if results=edit2.Text then begin form3.Hide; form1.Show; end else begin application.MessageBox('姓名或密码错误','提示信息',64); edit1.SetFocus; exit; end; end; 退出代码为: close; (2)在form1中进行剩余各form间连接,在form1中分别单击要实现功能菜单按钮,并分别输入代码,得到最后裔码如下: procedure TForm1.N2Click(Sender:TObject); begin form1.Hide; form2.showmodal; end; procedure TForm1.N3Click(Sender:TObject); begin form1.Hide; form4.showmodal; end; procedure TForm1.N4Click(Sender:TObject); begin form1.Hide; form5.ShowModal; end; procedure TForm1.N5Click(Sender:TObject); begin form1.Hide; form6.ShowModal; end; procedure TForm1.N6Click(Sender:TObject); begin form1.hide; form7.ShowModal; end; procedure TForm1.N8Click(Sender:TObject); begin form1.hide; form8.ShowModal; end; procedure TForm1.N7Click(Sender:TObject); begin close; end; procedure TForm1.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,; 在form2中进行和form1间转换,代码如下: 双击关闭按钮添加代码: form2.close; form1.show; (4)在form4,form5,form6,form7中进行form1间转换,代码类似(3)。 3、form1中退出菜单实现 双击退出菜单进行代码输入:close;即可。 至此完毕了菜单管理实现,可以运营后进行各功能实现。 ②代码设计 Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "DJ" zsdj_Click Case "TF" tf_Click Case "FT" ftck_Click Case "CX" zscx_Click Case "exit" If MsgBox("拟定退出该系统?",4,"系统提示") = vbYes Then End End If End Select End Sub Private Sub sztx_Click() Dim Str CommonDialog1.Filter = "BMP图片(*.BMP)|*.BMP|JPG图片(*.JPG)|*.JPG|GIF图片(*.GIF)|*.GIF|所有文献(*.*)|*.*" CommonDialog1.ShowOpen If CommonDialog1.FileName <> "" Then Image2.Picture = LoadPicture(CommonDialog1.FileName) Str = CommonDialog1.FileName Open (App.Path & "\picture.txt") For Output As #1 Print #1,Str Close #1 CommonDialog1.FileName = "" Else CommonDialog1.FileName = "" End If End Sub Private Sub sjbf_Click() main_sjbf.Show main.Enabled = False End Sub Private Sub sjhf_Click() main_sjhf.Show End Sub Private Sub zsdj_Click() main_kfdj.Show main.Enabled = False End Sub Private Sub tf_Click() main_tf.Show main.Enabled = False End Sub Private Sub kfcx_Click() main_kfcx.Show main.Enabled = False End Sub Private Sub ftck_Click() main_ftcx.Show main.Enabled = False End Sub Private Sub zscx_Click() Load main_zscx main_zscx.Show main.Enabled = False End Sub Private Sub tfcx_Click() Load main_tfcx main_tfcx.Show main.Enabled = False End Sub 4.1.3 系统登录模块设计 ①窗体设计 ⑴添加新窗体,命名为main_Login,Caption属性为“酒店客房管理系统”; ⑵添加Adodc控件以及两个TextBox控件,Text1放在顾客名后,Text2放在密码后; ⑶添加两个Image控件,分别设立Picture属性,添加“拟定”和“退出”按钮。 ②代码设计 Private Sub Image1_Click() If Text1.Text = 7 And Text2.Text = 123456 Then main.Show Me.Hide Else MsgBox "密码错误!",vbCritical,"提示" End If End Sub Private Sub Image2_Click() End End Sub 4.1.4住宿登记模块 ①窗体设计 ⑴添加新窗体命名为main_kfdj,Caption属性为“住宿登记”; ⑵添加两个Adodc控件、TextBox控件数组以及2个DTPicker控件; ⑶添加3个ComboBox控件。 ②代码设计 Private Sub comdj_Click() Adodc1.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Oracle in OraDb11g_home1 };" & "server=webserver;DSN=;databasename=aa;databasefile=d:\\aa\\;UID=scott;PWD=123456" Adodc1.RecordSource = "select * from tb_kf where 房态='空房'" Adodc1.Refresh Adodc2.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Oracle in OraDb11g_home1 };" & "server=webserver;DSN=;databasename=aa;databasefile=d:\\aa\\;UID=scott;PWD=123456" Adodc2.RecordSource = "select * from tb_djb order by 凭证号码" Adodc2.Refresh If Not Adodc2.Recordset.EOF Then Adodc2.Recordset.MoveLast If lsph.Text = "" Then bh.Text = Fdate & "d" & Format(1,"###000") If lsph.Text <> "" Then y1.Text = Month(Fdate) y2.Text = Month(Left(lsph.Text,10)) If y1.Text = y2.Text Then 'bh.Text = Fdate & "d" & Format(Val(Right(lsph.Text,3)) + 1,"###000") Text1.Text = Val(Right(lsph.Text,3)) + 1 End If If y1.Text <> y2.Text Then bh.Text = Fdate & "d" & Format(1,"###000") End If End If For i = 0 To 2 ZSDJ(i).Text = "" ZSDJ(i).Enabled = True Next i For i = 4 To 6 ZSDJ(i).Text = "" ZSDJ(i).Enabled = True Next i Combo3.Text = "" Comok.Enabled = True:Comdj.Enabled = False Combo3.Enabled = True:Combo1.Enabled = True ZSDJ(0).SetFocus Adodc3.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Oracle in OraDb11g_home1 };" & "server=webserver;DSN=;databasename=aa;databasefile=d:\\aa\\;UID=scott;PWD=123456" Adodc3.RecordSource = "select * from tb_kf where 房态 = '空房'" Adodc3.Refresh Combo3.Clear If Adodc3.Recordset.RecordCount > 0 Then For i = 1 To Adodc3.Recordset.RecordCount Combo3.AddItem Adodc3.Recordset.Fields("房间号").Value Adodc3.Recordset.MoveNext Next i End If End Sub Private Sub comok_Click() If ZSDJ(0) = "" Or Combo3 = "" Then MsgBox "请输入完整信息",,"系统提示" Else Adodc2.RecordSource = "select * from tb_djb where 房间号 = '" & Combo3.Text & "' and 标志 like '1'" Adodc2.Refresh If Adodc2.Recordset.RecordCount = 0 Then Adodc2.Recordset.AddNew If bh.Text <> "" Then Adodc2.Recordset.Fields("凭证号码") = bh.Text If ZSDJ(0).Text <> "" Then Adodc2.Recordset.Fields("姓名") = ZSDJ(0).Text If Combo1.Text <> "" Then Adodc2.Recordset.Fields("证件名称") = Combo1.Text If ZSDJ(1).Text <> "" Then Adodc2.Recordset.Fields("证件号码") = ZSDJ(1).Text If ZSDJ(2).Text <> "" Then Adodc2.Recordset.Fields("详细地址") = ZSDJ(2).Text If Combo3.Text <> "" Then Adodc2.Recordset.Fields("房间号") = Val(Combo3.Text) If ZSDJ(4).Text <> "" Then Adodc2.Recordset.Fields("客房类型") = ZSDJ(4).Text If DTP1.Value <> "" Then Adodc2.Recordset.Fields("住宿日期") = DTP1.Value If ZSDJ(5).Text <> "" Then Adodc2.Recordset.Fields("客房价格") = Val(ZSDJ(5).Text) If ZSDJ(6).Text <> "" Then Adodc2.Recordset.Fields("住宿天数") = ZSDJ(6).Text If ZSDJ(7).Text <> "" Then Adodc2.Recordset.Fields("宿费") = ZSDJ(7).Text If DTP3.Value <> "" Then Adodc2.Recordset.Fields("退宿日期") = DTP3.Value Adodc2.Recordset.Update Adodc2.Refresh adocon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB_KFGL.mdb;Persist Security Info=False" adoRs.Open "select * from tb_djys",adocon,adOpenKeyset,adLockOptimistic adoRs.AddNew If bh.Text <> "" Then adoRs.Fields("凭证号码") = bh.Text If ZSDJ(0).Text <> "" Then adoRs.Fields("姓名") = ZSDJ(0).Text If Combo1.Text <> "" Then adoRs.Fields("证件名称") = Combo1.Text If ZSDJ(1).Text <> "" Then adoRs.Fields("证件号码") = ZSDJ(1).Text If ZSDJ(2).Text <> "" Then adoRs.Fields("详细地址") = ZSDJ(2).Text If ZSDJ(4).Text <> "" Then adoRs.Fields("客房类型") = ZSDJ(4).Text If Combo3.Text <> "" Then adoRs.Fields("房间号") = Val(Combo3.Text) If ZSDJ(5).Text <> "" Then adoRs.Fields("客房价格") = Val(ZSDJ(5).Text) If DTP1.Value <> "" Then adoRs.Fields("住宿日期") = DTP1.Value If ZSDJ(6).Text <> "" Then adoRs.Fields("住宿天数") = ZSDJ(6).Text If ZSDJ(7).Text <> "" Then adoRs.Fields("宿费") = ZSDJ(7).Text If DTP3.Value <> "" Then adoRs.Fields("退宿日期") = DTP3.Value adoRs.Update adocon.Close Adodc1.RecordSource = "select * from tb_kf where 房间号 like '" + Combo3.Text + "'" If Combo3.Text <> "" Then Adodc1.Recordset.Fields("房态") = "入住" Adodc1.Recordset.Update For i = 0 To 6 ZSDJ(i).Enabled = False Next i ZSDJ(8).Enabled = False:ZSDJ(10).Enabled = False:ZSDJ(11).Enabled = False Combo3.Enabled = False:Combo1.Enabled = False End If Comok.Enabled = False:Comprint.Enabled = True:Comdj.Enabled = True Comprint.SetFocus End If End Sub Private Sub comcancel_Click() For i = 0 To 2 ZSDJ(i).Enabled = False Next i For i = 4 To 6 ZSDJ(i).Enabled = False Next i Comok.Enabled = False:Combo3.Enabled = False Combo1.Enabled = False:DTP3.Enabled = False Comdj.Enabled = True End Sub Private Sub comend_Click() Unload Me main.Enabled = True End Sub 4.1.5退宿登记模块 按照如上办法设计窗体如下: 代码设计: Private Sub Form_Load() Adodc1.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Oracle in OraDb11g_home1 };" & "server=webserver;DSN=;databasename=aa;databasefile=d:\\aa\\;UID=scott;PWD=123456" Adodc1.RecordSource = "select * from tb_djb" 'Adodc1.Refresh Adodc2.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Oracle in OraDb11g_home1 };" & "server=webserver;DSN=;databasename=aa;databasefile=d:\\aa\\;UID=scott;PWD=123456" Adodc2.RecordSource = "select * from tb_kf" 'Adodc2.Refresh Adodc3.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Oracle in OraDb11g_home1 };" & "server=webserver;DSN=;databasename=aa;databasefile=d:\\aa\\;UID=scott;PWD=123456" Adodc3.RecordSource = "select * from tb_gzmx" 'Adodc3.Refresh Adodc4.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Oracle in OraDb11g_home1 };" & "server=webserver;DSN=;databasename=aa;databasefile=d:\\aa\\;UID=scott;PW
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服