




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 华南师范大学增城学院计算机系 信息管理系统课程设计报告2009年2010学年度 第一学期年 级: 07级 a 专 业: 信息管理一班 a姓 名: a学 号: a 同组队员: 酒店管理系统1系统分析:在现在的酒店,宾馆等服务行列中,由于客流量剧增,传统的管理方法已经不适合现代社会的需要。酒店,宾馆在正常运营中需要对客房资源,顾客信息,结算信息进行管理,利用酒店管理系统及时了解各个环节中的信息的变更,有利于提高管理的效率。因此酒店管理系统式各大中小型宾馆,酒店所需使用的一个管理系统。系统开发的总体任务是实现酒店各种信息的系统化,规范化和自动化管理,减少工作量,提高效率,增强可靠性。通过调查访问酒
2、店管理人员,我们得出制作的酒店管理系统中需要用户的管理也就是假如用户密码被盗可以改密码。在管理方面需要有客房的信息例如房间是否有人住、房间等级、房间级别等进行对客户的安排。在查询上系统需要客房信息查询、收费信息查询及效益查询,这样方便于操作者进行酒店管理。该系统另外需要有报表输出,显示房间情况表,简单明了显示了我们需要查看的状况。进入该系统必须是操作者得身份进入,只有数据库中的uers表中的人员才可以进入,并且需要输入密码才可以进入,密码错误进不了系统,如果密码输入三次错误就直接关闭登录窗口。酒店管理信息系统的各项功能进行集中、模块划分,构造出如下图所示的系统功能模块图。 酒店管理信息系统 基
3、本 信息 报表 系 信息 查询 输出 管理 统 客户 客人 客人 客房 收费 效益 房间 用户 退出信息 入住 退房 信息 信息 信息 情况 修改 系统情况 情况 情况 查询 查询 查询 报表 密码 系统流程分析:在了解了系统各功能模块之后,我们还有对系统的流程有一个整体的认识。该系统流程就是用户在使用系统时的工作过程。系统的工作流程都是从用户登录模块开始,对用户身份进行权限验证,进而对西欧他哪个进行管理的。本系统的流程分析图如下图所示: 开始 重试 否 失败 是用户登陆 失败达到3次 退出程序 成功 系统维护 基本信息管理 进入系统 基本信息查询 信息报表输出 2系统设计: 本系统中的酒店信
4、息管理系统需要完成的功能主要有:1:客房信息管理,包括房间编号、房间级别、房间类型、房间价格、是否住人等信息的输入、修改和删除等等。2:客人信息管理,包括客人姓名、身份证号、房间号、入住日期的输入、修改和删除等等。3:退房信息管理,包括客人的退房日期,付款金额的输入、修改和删除等等。4: 客房信息查询,包括查询房间编号、房间级别、房间类型、房间价格、是否有人住等信息5:收费信息查询,包括查询收费时期、付款金额等。6:效益信息查询,包括查询某一段时间内的营业情况和某间客房的营业情况。7:房间情况报表:包括房间编号、房间级别、房间类型、房间价格、是否有人住等信息。8:系统管理:包括更改用户名密码和
5、退出系统等操作。附录:由于是合组制作的,由我设计基本信息管理父模块(里面包括客房信息管理、客人信息管理、退房信息管理),及系统管理(里面包括修改用户密码、退出系统),以及设计主窗口等,具体如下实施操作。3系统实施:1:设计主窗体:选择“工程”-“添加MDI窗体”菜单,弹出对方框单击“打开”按钮就为工程添加一个MDI窗体。设置MDI窗体的Name属性为“frmMDI”,Caption属性为“酒店收费管理信息系统”;StartUpPosition属性为“2-屏幕中心”。然后在菜单编辑器中编辑菜单。完成菜单设计后,必须在主窗体添加四个ADODC控件,以便后面对数据库的一系列操作。具体添加方法是在工具
6、箱中单击右键出现一个弹出式菜单,点击“部件”选项,出现可添加的控件列表,在部件对话框中列出了一些控件类型,选择“Microsoft ADO Data Contr 6.0”控件和“Microsoft DataGrid Control”控件,加入工具箱中,可以作为制作窗体的工具了。2:在主窗体中添加代码主窗体设计好后,选择文件中保存“frmMDI.frm”菜单,保存该主窗口体。下面是完成各个ADODC控件和气对应表的连接,具体代码如下Private Sub MDIForm_Load() App.Title = "酒店收费管理信息系统" OpenTable adoRoom, &q
7、uot;Room" '打开房间类型表 OpenTable adoGuest, "Guest" '打开表 OpenTable adoCancel, "Cancel"End SubPrivate Sub mnuCancel_Click() frmCancelInfo.ShowEnd SubPrivate Sub mnuCascade_Click() frmMDI.Arrange vbCascadeEnd SubPrivate Sub mnuGuest_Click() frmGuestInfo.ShowEnd SubPrivate S
8、ub mnuQuerySelect_Click() frmQuerySelect.ShowEnd SubPrivate Sub mnuRoomInfo_Click() frmRoomInfo.ShowEnd SubPrivate Sub mnuExit_Click()Dim K K = MsgBox("确定要退出该系统" + "?", vbOKCancel + vbQuestion, "退出") If K = vbOK Then Form1.Show frmMDI.Hide Else frmMDI.Show End IfEnd Sub
9、Private Sub mnuHor_Click() frmMDI.Arrange vbTileHorizontalEnd SubPrivate Sub mnuIcon_Click() frmMDI.Arrange vbArrangeIconsEnd SubPrivate Sub mnuReportRoom_Click() '先查询出结果 OpenTable frmMDI.adoQuery, "select * from Room order by RoomNo,RoomRate" With drpRoomRequired Set .DataSource = frm
10、MDI.adoQuery '实施报表数据源绑定 '设置属性 .Caption = "房间基本情况表" '绑定显示字段 .Sections("Section1").Controls("txtRoomNo").DataField = "RoomNo" .Sections("Section1").Controls("txtRoomGrade").DataField = "RoomGrade" .Sections("Section
11、1").Controls("txtRoomGrade").DataFormat.Type = 5 .Sections("Section1").Controls("txtRoomGrade").DataFormat.TrueValue = "标准间" .Sections("Section1").Controls("txtRoomGrade").DataFormat.FalseValue = "豪华间" .Sections("Section
12、1").Controls("txtRoomGrade").DataFormat.NullValue = "未知" .Sections("Section1").Controls("txtRoomType").DataField = "RoomType" .Sections("Section1").Controls("txtRoomType").DataFormat.Type = 5 .Sections("Section1").C
13、ontrols("txtRoomType").DataFormat.TrueValue = "单人间" .Sections("Section1").Controls("txtRoomType").DataFormat.FalseValue = "双人间" .Sections("Section1").Controls("txtRoomType").DataFormat.NullValue = "未知" .Sections("Se
14、ction1").Controls("txtRoomRate").DataField = "RoomRate" .Sections("Section1").Controls("txtRoomStatus").DataField = "RoomStatus" .Sections("Section1").Controls("txtRoomStatus").DataFormat.Type = 5 .Sections("Section1&quo
15、t;).Controls("txtRoomStatus").DataFormat.TrueValue = "在住" .Sections("Section1").Controls("txtRoomStatus").DataFormat.FalseValue = "空房" .Sections("Section1").Controls("txtRoomStatus").DataFormat.NullValue = "未知" '显示报表
16、预览 .Show End WithEnd SubPrivate Sub mnuUser_Click() UserAdmin.ShowEnd SubPrivate Sub mnuVer_Click() frmMDI.Arrange vbTileVerticalEnd Sub3设计客房信息窗体客房信息窗体主要是完成房间编号,房间级别,房间类型,房间价格,是否有人住等信息输入、修改、删除等。该窗体包括四个按钮控件,一个DataGrid控件,一个Frame控件。我们将它保存为“frmRoomInfo.frm”.部分代码及截图如下Private Sub dtgRoomRefresh() With frm
17、RoomInfo.dtgRoomInfo '绑定 Set .DataSource = frmMDI.adoRoom .AllowRowSizing = False '表头宽度设为两行 .HeadLines = 2 '选择方式为整行选中 .MarqueeStyle = dbgHighlightRow '不允许修改(设为只读) .AllowAddNew = False .AllowDelete = False .AllowUpdate = False '第一列标题和宽度 .Columns(0).Caption = "房间编号" .Colu
18、mns(0).Width = 60 .Columns(0).AllowSizing = False '第二列标题和宽度 .Columns(1).Caption = "房间级别" .Columns(1).Width = 80 .Columns(1).DataFormat.Type = 5 .Columns(1).DataFormat.TrueValue = "标准间" .Columns(1).DataFormat.FalseValue = "豪华间" .Columns(1).DataFormat.NullValue = &quo
19、t;未知" .Columns(1).AllowSizing = False '第三列标题和宽度 .Columns(2).Caption = "房间类型" .Columns(2).Width = 80 .Columns(2).DataFormat.Type = 5 .Columns(2).DataFormat.TrueValue = "单人间" .Columns(2).DataFormat.FalseValue = "双人间" .Columns(2).DataFormat.NullValue = "未知&qu
20、ot; .Columns(2).AllowSizing = False '第四列标题和宽度 .Columns(3).Caption = "房间价格(元)" .Columns(3).Width = 80 .Columns(3).AllowSizing = False '.Columns(4).Visible = False .Columns(4).Caption = "状态" .Columns(4).Width = 40 .Columns(4).DataFormat.Type = 5 .Columns(4).DataFormat.TrueV
21、alue = "在住" .Columns(4).DataFormat.FalseValue = "空房" .Columns(4).DataFormat.NullValue = "未知" .Columns(4).AllowSizing = False End WithEnd SubPrivate Sub cmdAddNew_Click() With frmRoomInfoEdit '窗体标题 .Caption = "添加新客房" '清空编号并设为可修改 .txtRoomNo.Locked = Fals
22、e .txtRoomNo.Text = "" '默认类型为第一项 If .cboRoomGrade.ListCount = 0 Then .cboRoomGrade.ListIndex = -1 Else .cboRoomGrade.ListIndex = 0 End If'默认为第一项 If .cboRoomType.ListCount = 0 Then .cboRoomType.ListIndex = -1 Else .cboRoomType.ListIndex = 0 End If .txtRoomRate = "" '显示
23、为模式窗体 .Show vbModal End WithEnd SubPrivate Sub cmdDelete_Click() If .EOF <> True And .BOF <> True Then If !RoomStatus Then MsgBox "当前房间有客人居住,您不能删除该房间!", vbOKOnly + vbInformation, "提示" Exit Sub End If If MsgBox("确认要删除当前记录吗?", vbYesNo + vbQuestion + vbDefaultB
24、utton2, "确认框") = vbYes Then .Delete dtgRoomInfo.SetFocus End If End If End WithExit Sub4设计客房信息添加/修改窗体添加四个Lable控件为“客房编号”,“客房级别”,“客房类型”,“客房价格”两个按钮控件为“确定”按钮和“取消”按钮。两个TextBox控件,两个ComboBox控件。此窗口根据不同按钮显示不同的标题。我们保存它为“frmRoomInfoEdit.frm”.部分代码如下Private Sub cmdCancel_Click() '退出窗体 Unload MeEnd
25、SubPrivate Sub cmdOk_Click() If Not txtRoomNo.Locked Then '可修改状态表示是添加记录 '控制编号不能为空 If Trim(txtRoomNo.Text) = "" Then MsgBox "客房编号不能为空!", vbOKOnly + vbInformation, "提示" txtRoomNo.SetFocus Exit Sub End If '查看是否有相同编号 .Find "RoomNo='" & txtRoomN
26、o.Text & "'", , adSearchForward, 1 If Not .EOF Then '有就提示,然后退出 MsgBox "已经有相同编号的客房!", vbOKOnly + vbInformation, "提示" txtRoomNo.SetFocus Exit Sub End If If Trim(txtRoomRate.Text) = "" Then MsgBox "客房价格不能为空!", vbOKOnly + vbInformation, "
27、;提示" txtRoomRate.SetFocus Exit Sub End If '没有就添加记录 .AddNew !RoomNo = Trim(txtRoomNo.Text) End If '给字段赋值 !RoomNo = Trim(txtRoomNo.Text) If cboRoomGrade.ListIndex = 0 Then !RoomGrade = True Else !RoomGrade = False End If If cboRoomType.ListIndex = 0 Then !RoomType = True Else !RoomType =
28、False End If !RoomRate = Val(Trim(txtRoomRate.Text) !RoomStatus = False .Update Unload Me End WithEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "TAB" End IfEnd SubPrivate Sub Form_Load() Me.Left = (frmMDI.Width - Me.Width) / 2 Me.Top = (f
29、rmMDI.Height - Me.Height) / 4 '添加项目 With cboRoomGrade .AddItem "标准间" .AddItem "豪华间" End With With cboRoomType .AddItem "单人间" .AddItem "双人间" End WithEnd SubPrivate Sub txtRoomNo_KeyPress(KeyAscii As Integer) If (KeyAscii < 48 Or KeyAscii > 57) And Key
30、Ascii <> 8 Then KeyAscii = 0 End IfEnd SubPrivate Sub txtRoomRate_KeyPress(KeyAscii As Integer) If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then KeyAscii = 0 End IfEnd Sub5设计客人信息管理窗体客人信息管理窗体主要完成客人姓名,身份证号,房间号,入住日期的输入,修改,删除的等工作。“客人信息”窗体中的控件和“客房信息”管理窗体中的控件相同,唯一不同的是窗体的Caption
31、、Name和DataGrid控件中的对应属性不同。在这里的属性的取值分别为“客人信息”“frmGuestInfo”和“dtgGuestInf”。设计好的“客人信息”窗体跟“客房信息”窗体类似。部分代码如下Private Sub dgtGuestRefresh()With dtgGuestInfo '绑定 Set .DataSource = frmMDI.adoGuest .AllowRowSizing = False '表头宽度设为两行 .HeadLines = 2 '选择方式为整行选中 .MarqueeStyle = dbgHighlightRow '不允许修
32、改(设为只读) .AllowAddNew = False .AllowDelete = False .AllowUpdate = False '第一列标题和宽度 .Columns(0).Caption = "登记号" .Columns(0).Width = 70 .Columns(0).AllowSizing = False '第二列标题和宽度 .Columns(1).Caption = "客人姓名" .Columns(1).Width = 55 .Columns(1).AllowSizing = False '第三列标题和宽度
33、.Columns(2).Caption = "身份证号码" .Columns(2).Width = 110 .Columns(2).AllowSizing = False '第四列标题和宽度 .Columns(3).Caption = "房间号" .Columns(3).Width = 60 .Columns(3).AllowSizing = False '第五列标题和宽度 .Columns(4).Caption = "登记日期" .Columns(4).Width = 110 .Columns(4).AllowSiz
34、ing = False End WithEnd SubPrivate Sub dtgGuestInfo_Click()End SubPrivate Sub Form_Activate() Form_LoadEnd SubPrivate Sub Form_Load() '显示在主窗体的中央 Me.Left = (frmMDI.Width - Me.Width) / 2 Me.Top = (frmMDI.Height - Me.Height) / 4 dgtGuestRefreshEnd SubPrivate Sub cmdAddNew_Click() With frmGuestInfoE
35、dit '窗体标题 .Caption = "添加新客人" .txtBookNo.Locked = False .txtBookNo.Text = "" .txtGuestName.Text = "" .txtCardID.Text = "" .txtRoomNo.Text = "" .dtpBookDate.Value = Date '显示为模式窗体 .Show vbModal End WithEnd SubPrivate Sub cmdDelete_Click()If frmM
36、DI.adoGuest.Recordset.EOF <> True And frmMDI.adoGuest.Recordset.BOF <> True Then If MsgBox("确认要删除当前记录吗?", vbYesNo + vbQuestion + vbDefaultButton2, "确认框") = vbYes Then .Find "RoomNo='" & frmMDI.adoGuest.Recordset!RoomNo & "'", , adSe
37、archForward, 1 If Not .EOF Then '有就提示,然后退出 !RoomStatus = False End If .Delete End With dtgGuestInfo.SetFocus End If End WithEnd IfEnd SubPrivate Sub cmdEdit_Click()If frmMDI.adoGuest.Recordset.EOF <> True And frmMDI.adoGuest.Recordset.BOF <> True Then With frmGuestInfoEdit '窗体标题
38、.Caption = "修改客人信息" .txtBookNo.Text = frmMDI.adoGuest.Recordset!BookNo .txtBookNo.Locked = True .txtGuestName.Text = frmMDI.adoGuest.Recordset!GuestName .txtCardID.Text = frmMDI.adoGuest.Recordset!CardID .txtRoomNo = frmMDI.adoGuest.Recordset!RoomNo .dtpBookDate.Value = frmMDI.adoGuest.Rec
39、ordset!BookDate '显示为模式窗体 .Show vbModal End WithEnd IfEnd SubPrivate Sub cmdExit_Click() '退出窗体 Unload MeEnd Sub6 设计客人信息添加/修改窗体“客人信息”窗体中信息的添加、修改都是在客人信息添加、修改窗体中完成的。此窗体中有5个Label控件,4个TextBox控件,1个DTPicker控件(显示时间用的),2个CommandButton控件。此窗体根据不同的按钮显示不同的标题,我们保存它为“frmGuestInfoEdit”部分代码如下Private Sub cmdOk
40、_Click()'先判断房间好是否存在 frmMDI.adoRoom.Recordset.Find "RoomNo='" & Trim(txtRoomNo.Text) & "'", , adSearchForward, 1 If frmMDI.adoRoom.Recordset.EOF Then MsgBox "没有此客房编号,请核对!" Exit Sub Else '* If Not txtBookNo.Locked Then '可修改状态表示是添加记录 If Trim(txt
41、BookNo.Text) = "" Then MsgBox "登记号不能为空!", vbOKOnly + vbInformation, "提示" txtBookNo.SetFocus Exit Sub End If .Find "BookNo='" & txtBookNo.Text & "'", , adSearchForward, 1 If Not .EOF Then '有就提示,然后退出 MsgBox "已经有相同登记号!", vb
42、OKOnly + vbInformation, "提示" txtBookNo.SetFocus Exit Sub End If frmMDI.adoRoom.Recordset.Find "RoomNo='" & Trim(txtRoomNo.Text) & "'", , adSearchForward, 1 If Not frmMDI.adoRoom.Recordset.EOF Then '有就提示,然后退出 If frmMDI.adoRoom.Recordset!RoomStatus The
43、n MsgBox "已有客人居住!", vbOKOnly + vbInformation, "提示" txtRoomNo.SetFocus Exit Sub End If Else MsgBox "没有此客房编号,请重新输入!", vbOKOnly + vbInformation, "提示" txtRoomNo.SetFocus Exit Sub End If If Trim(txtGuestName.Text) = "" Then MsgBox "客人姓名不能为空!", v
44、bOKOnly + vbInformation, "提示" txtGuestName.SetFocus Exit Sub End If .AddNew !BookNo = Trim(txtBookNo.Text) frmMDI.adoRoom.Recordset.Find "RoomNo='" & Trim(txtRoomNo.Text) & "'", , adSearchForward, 1 frmMDI.adoRoom.Recordset!RoomStatus = True End If '
45、给字段赋值 !GuestName = txtGuestName.Text !CardID = txtCardID.Text If txtBookNo.Locked Then If Trim(txtRoomNo.Text) <> pRoomNo Then .Find "RoomNo='" & Trim(txtRoomNo.Text) & "'", , adSearchForward, 1 !RoomStatus = True ' ? .Find "RoomNo='" &
46、 pRoomNo & "'", , adSearchForward, 1 !RoomStatus = False End With End If End If !RoomNo = Trim(txtRoomNo.Text) !BookDate = dtpBookDate.Value .Update '退出窗体 Unload Me End With End IfEnd Sub7设计退房信息管理窗体“退房信息”管理窗体主要完成客人的退房日期、付款金额的输入、修改和删除等等工作。“退房信息”窗体中的控件和“客房信息”管理窗体中的控件相同,唯一不同的是窗体的N
47、ame、Caption和DateGrid控件对应属性不同。在这里的属性值分别为:“退房信息”、“frmCancelInfo”和“dtgCancelInfo”,窗体布局图在这里省略。本窗体只是退房信息的总管理模块,退房信息的添加和修改功能的具体实现,在“frmCancelInfoEdit”窗体中完成,本窗体中的代码如下所示Private Sub Form_Load() '显示在主窗体的中央 Me.Left = (frmMDI.Width - Me.Width) / 2 Me.Top = (frmMDI.Height - Me.Height) / 4 With dtgCancelInfo
48、'绑定 Set .DataSource = frmMDI.adoCancel .AllowRowSizing = False .AllowRowSizing = False '表头宽度设为两行 .HeadLines = 2 '选择方式为整行选中 .MarqueeStyle = dbgHighlightRow '不允许修改(设为只读) .AllowAddNew = False .AllowDelete = False .AllowUpdate = False '第一列标题和宽度 .Columns(0).Caption = "登记号" .
49、Columns(0).Width = 140 .Columns(0).AllowSizing = False '第二列标题和宽度 .Columns(1).Caption = "退房日期" .Columns(1).Width = 140 .Columns(1).AllowSizing = False '第三列标题和宽度 .Columns(2).Caption = "付款金额(元)" .Columns(2).Width = 140 .Columns(2).AllowSizing = False End WithEnd SubPrivate Sub cmdAddNew_Click() With frmCancelInfoEdit '窗体标题 .Caption = "添加新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论