1、VB酒店客房管理系统数据流图+ER图+功能模块图VB酒店客房管理系统数据流图+ER图+功能模块图第一章、系统概述1.1项目研究的意义第二章、系统需求分析2.1编写目的12.2开发背景22.3参考资料22.4任务概述2.4.1实现目标22.4.2运行环境32.3条件限制32.5数据描述2.5.1信息需求32.5.2处理需求32.6数据流图42.7数据字典62.8功能需求2.8.1功能模块62.8.2系统主要功能描述72.9性能需求2.9.1数据精度72.9.2时间特性72.10 运行需求 72.11 其他要求 7第三章、数据库概念结构设计3.1E-R图 83.1.1 局部E-R图 83.1.2总
2、E-R图 9第四章、数据库的逻辑结构设计(详细设计)4.1关系模式104.2基本表104.3接口设计12第五章、系统的实现与调试5.1系统流程设计13第六章 系统的界面设计及源代码6.1登陆窗口界面及代码146.2系统主窗口界面156.3.住宿管理设计196.3.1住宿登记196.3.2追加押金256.3.3调房登记286.3.4退房结帐316.4客房管理366.4.1客房设置366.4.2.客房查询386.4.3.房态查看396.5挂帐管理416.6查询统计426.6.1.住宿查询426.6.2退宿查询426.6.3宿费提醒436.7日结设计446.7.1客房销售报表446.8系统设置466
3、.8.1操作员设置466.8.2密码设置476.8.3权限设置32110 . 酒店客房管理系统系统的界面设计及源代码 6.1系统登陆窗口界面Dim TIM As Integer 定义一个整型变量Dim myval As String 定义一个字符串变量Private Sub Form_Load()自动识别数据库路径Data1.DatabaseName = App.Path & KFGL.mdbData2.DatabaseName = App.Path & KFGL.mdbEnd SubPrivate Sub Form_Activate()当记录为零时,进入系统具有所有权限If Data1.Re
4、cordset.RecordCount = 0 Then MsgBox (请先设置操作员密码和权限!) Load main main.Show Unload MeElse Text1.SetFocusEnd IfEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then Text2.SetFocus 按回车键,text2获得焦点End SubPrivate Sub text2_KeyDown(KeyCode As Integer, Shift As Int
5、eger)If KeyCode = vbKeyReturn Then Cmd1.SetFocus 按回车键cmd1获得焦点If KeyCode = vbKeyUp Then Text1.SetFocusIf KeyCode = vbKeyDown Then Cmd1.SetFocusEnd SubPrivate Sub cmd1_Click()main.StatusBar1.Panels(4).Text = Text1.Text 赋值给main.StatusBar1.Panels(4).Text验证操作员及密码If Data2.Recordset.BOF = False Then Data2.
6、Recordset.MoveFirstData2.Recordset.FindFirst 操作员 like + Chr(34) + Text1.BoundText + Chr(34) + If Data2.Recordset.NoMatch Then MsgBox (操作员输入错误!)Else Data1.RecordSource = select * from qxsz where 操作员= & Text1.BoundText & Data1.Refresh If Text1.BoundText And Text2.Text And Text2.Text = Data1.Recordset.
7、Fields(密码) Then Load main main.Show Unload Me Else If TIM = 3 Then 密码输错3次,退出系统 myval = MsgBox(密码输入错误,请向系统管理员查询!, 0, ) If myval = vbOK Then End End If If Text1.BoundText = Then MsgBox (请输入操作员!) Text1.SetFocus Else If Text1.BoundText Data1.Recordset.Fields(操作员) Then MsgBox (查无此操作员,请重新输入操作员!) Text1.Set
8、Focus Else If Text2.Text = Then MsgBox (请输入操作员密码!) Text2.SetFocus Else If Text2.Text Data1.Recordset.Fields(密码) Then MsgBox (密码错误,请重新输入密码!) TIM = TIM + 1 Text2.SetFocus End If End If End If End IfEnd IfEnd IfEnd SubPrivate Sub cmd2_Click() End6.2系统主程序窗口界面Private Sub Form_Load()Data1.DatabaseName = A
9、pp.Path & Kfgl.MDB 自动识别数据库路径End SubPrivate Sub Form_Activate() 设置操作员权限With Data1.RecordsetIf .BOF = False Then .MoveFirst.FindFirst 操作员 like + Chr(34) + StatusBar1.Panels(4).Text + Chr(34) + If .NoMatch ThenElse main.zjyj.Enabled = .Fields(追加押金) main.zsdj.Enabled = .Fields(住宿登记) main.Label1.Enabled
10、= .Fields(住宿登记) main.tf.Enabled = .Fields(退宿登记) main.Label2.Enabled = .Fields(退宿登记) main.tfdj.Enabled = .Fields(调房登记) main.kfsz.Enabled = .Fields(客房管理) main.kfcx.Enabled = .Fields(客房查询) main.ftck.Enabled = .Fields(房态查看) main.khjk.Enabled = .Fields(客户结款) main.zscx.Enabled = .Fields(住宿查询) main.Label3.
11、Enabled = .Fields(住宿查询) main.tfcx.Enabled = .Fields(退宿查询) main.sftx.Enabled = .Fields(宿费提醒) main.Label5.Enabled = .Fields(宿费提醒) main.Label4.Enabled = .Fields(客房销售报表) main.xstj.Enabled = .Fields(客房销售统计报表) main.czysz.Enabled = .Fields(操作员设置) main.ma.Enabled = .Fields(密码设置) main.csh.Enabled = .Fields(初
12、始化) main.qxsz.Enabled = .Fields(权限设置)End IfEnd WithEnd SubPrivate Sub label1_Click() 调入住宿登记zsdj_ClickEnd SubPrivate Sub label2_Click() 调入退宿结帐tf_ClickEnd SubPrivate Sub Label3_Click() 调入住宿查询zscx_ClickEnd SubPrivate Sub Label4_Click() 调入客房销售报表xsbb_ClickEnd SubPrivate Sub Label5_Click() 调入宿费提醒sftx_Clic
13、kEnd SubPrivate Sub label6_Click()EndEnd SubPrivate Sub zjyj_Click() 调入追加押金Load main_zjyjmain_zjyj.Showmain.Enabled = FalseEnd SubPrivate Sub tfdj_Click() 调入调房登记main_tfdj.Showmain.Enabled = FalseEnd SubPrivate Sub tf_Click() 调入退宿结帐main_tf.Showmain.Enabled = FalseEnd SubPrivate Sub kfsz_Click() 调入客房管
14、理10 . VB酒店客房管理系统数据流图+ER图+功能模块图main_kfgl.Showmain.Enabled = FalseEnd SubPrivate Sub kfcx_Click() 调入客房查询main_kfcx.Showmain.Enabled = FalseEnd SubPrivate Sub ftck_Click() 调入房态查看main_ftcx.Showmain.Enabled = FalseEnd SubPrivate Sub gzcx_Click() 调入挂帐查询Load main_gzcxmain_gzcx.Showmain.Enabled = FalseEnd Su
15、bPrivate Sub khjk_Click() 调入客户结款Load main_khjkmain_khjk.Showmain.Enabled = FalseEnd Sub Private Sub zscx_Click() 调入住宿查询Load main_zscxmain_zscx.Showmain.Enabled = FalseEnd SubPrivate Sub tfcx_Click() 调入退宿查询Load main_tfcxmain_tfcx.Showmain.Enabled = FalseEnd SubPrivate Sub sftx_Click() 调入宿费提醒Load main
16、_xftxmain_xftx.Showmain.Enabled = FalseEnd SubPrivate Sub xsbb_Click() 调入客房销售报表main_xsbb.Showmain.Enabled = FalseEnd SubPrivate Sub xstj_Click() 调入客房销售统计main_xstj.Showmain.Enabled = FalseEnd SubPrivate Sub czysz_Click() 调入操作员设置Load main_czyszmain_czysz.Showmain.Enabled = FalseEnd SubPrivate Sub ma_C
17、lick() 调入密码设置main_mmsz.Showmain.Enabled = FalseEnd SubPrivate Sub csh_Click() 调入初始化main_csh.Showmain.Enabled = FalseEnd SubPrivate Sub qxsz_Click() 调入权限设置main_qxsz.Showmain.Enabled = FalseEnd SubPrivate Sub tc_Click()EndEnd Sub6.3住宿管理设计6.3.1住宿登记 Private Sub ZSDJ_Change(Index As Integer)Select Case I
18、ndex Case 6 ZSDJ(7).Text = Format(Val(ZSDJ(6).Text) * Val(ZSDJ(5).Text), 0.00) 计算折前宿费 ZSDJ(9).Text = ZSDJ(7).Text 赋值给ZSDJ(9) ZSDJ(8).Text = 100 DTP3.Value = DTP1.Value + Val(ZSDJ(6).Text) 计算退宿日期 Case 8 ZSDJ(9).Text = Format(Val(ZSDJ(7).Text) * Val(ZSDJ(8).Text) / 100, 0.00) 计算实际宿费 Case 10 If ZSDJ(10
19、).Text Then ZSDJ(10).Text = Val(ZSDJ(10).Text) 用val函数将字符串转换为数字 DTP2.Value = DTP1.Value + Int(Val(ZSDJ(10).Text) / Val(ZSDJ(5).Text) 计算提醒日期 If (Val(ZSDJ(10).Text) - Int(Val(ZSDJ(10).Text) / Val(ZSDJ(5).Text) 0.5 * Val(ZSDJ(5).Text) Then tim2.Value = #6:00:00 PM# Else tim2.Value = #12:00:00 AM# End If
20、 End IfEnd SelectEnd SubPrivate Sub ZSDJ_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)Select Case Index Case 0 If KeyCode = vbKeyReturn Then Combo1.SetFocus 按回车键Combo1获得焦点 Case 1 If KeyCode = vbKeyReturn Then ZSDJ(2).SetFocus 按回车键ZSDJ(2)获得焦点 Case 2 If KeyCode = vbKeyReturn Then ZSD
21、J(3).SetFocus 按回车键ZSDJ(3)获得焦点 Case 3 If KeyCode = vbKeyReturn Then DBCombo1.SetFocus 按回车键ZSDJ(2)获得焦点 Case 4 If KeyCode = vbKeyReturn Then ZSDJ(5).SetFocus 按回车键ZSDJ(5)获得焦点 Case 5SetFocus 按回车键ZSDJ(10)获得焦点 Case 10 If KeyCode = vbKeyReturn Then ZSDJ(11).SetFocus ZSDJ(11)获得焦点 Case 11 If KeyCode = vbKeyRe
22、turn Then Comok.SetFocus 按回车键Comok获得焦点End SelectEnd SubPrivate Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then ZSDJ(1).SetFocus 按回车键ZSDJ(1)获得焦点End SubPrivate Sub DTP2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then tim3.SetFocus 按回车键t
23、im3获得焦点End SubPrivate Sub DTP3_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then tim4.SetFocus 按回车键tim4获得焦点End SubPrivate Sub tim3_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then DTP3.SetFocus 按回车键DTP3获得焦点End SubPrivate Sub tim4_KeyDown(KeyCode A
24、s Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Text10.SetFocus 按回车键Text10获得焦点End SubPrivate Sub DBCombo1_Change()查询空闲房间信息Data2.RecordSource = select * from kf where 房间号= & DBCombo1.Text & and 房态=空房Data2.Refresh查询住宿登记信息Data1.RecordSource = select * from djb where 房间号= & DBCombo1.Text & and 标志=1Data1.RefreshIf Data2.Recordset.RecordCount 0 Then If Data1.Recordset.RecordCount = 0 Then ZSDJ(4).Text = Data2.Recordset.Fields(房间类型) 赋值给ZSDJ(4) ZSDJ(5).Text = Data2.Recordset.Fields(价格) 赋值给ZSDJ(5) Else