1、酒店管理系统开发文档 精品简单酒店管理系统08信管1班 冯茜08信管2班 陆思佳 王娟一 开发背景随着社会服务行业的发展,酒店行业对自身提供服务的质量和能力也有了更高的要求。酒店管理系统正是在这样的情况之下越来越受到重视。酒店内部服务项目 众多,既需要完成前台的服务工作,还需要完成后台的管理工作。如果没有一套可靠的酒店管理系统,单凭手工操作,不仅效率低,而且会极大地影响到酒店的服务质量。二酒店管理系统的分析和设计2.1需要解决的问题目前手工操作或采用旧管理系统的酒店在运营时存在如下几个主要问题:1房间的预定功能不能或无法完全的实现,手工记录或早期系统无法即时了解当天的房间使用状况,无法判断房间
2、是否被重复预定,客人无法在到达酒店前随时进行酒店预订和房间信息的了解。 2宾客住宿时,操作员不能直接了解实际房价和房间使用情况;对于预定宾客无法做到有效的查询、直接入住。 3收银处不能快速的了解待结用户的情况,无法有效的督促其进行费用的缴纳;当用户结账时,对于其消费情况无法快速的查询并清楚的显示,容易出现费用纠纷,住房费用靠人工进行计算,容易出现差错。4管理部门无法直接、快速查询、统计客人实际消费情况,营业情况。5酒店经理不能直接、及时了解客房开房情况,客人消费情况,酒店营业收入情况,没有各种所需的数据分析。6由于人手操作的缘故,所有统计报表都由人手工计算和制作,不但效率低,容易差错,更无法作
3、大型复杂的统计,先进的管理模式无法在酒店应用,直接影响酒店管理水平的提高。7. 客人无法提前了解酒店直观的了解酒店位置,房间信息,进行客房预订等。2.2 系统设计目标针对旧系统的主要问题,本系统提出的总目标是为酒店宾客提供迅速、高效、满意的服务;最大程度的减少事务处理过程中的误差;及时、准确地反映酒店的运作情况、经营情况,从而提高酒店的服务质量,获得更好的经济效益。具体的目标包括:1宾客在线自助预定服务功能。2快速办理客人入住 3客房管理功能:显示当前各房间状态(Available/InUse/Booked)4房费扣除系统:自动扣除每日房费或半日房费,使收银员不必再进行繁琐的计算。5结帐系统:
4、自动显示当前待结、欠款宾客;转帐、入帐、锁单功能;由电脑自动记录每位客人的每笔消费记录,确保准确无误。6客人资料管理功能:对住宿用户、预定用户、历史用户进行设置和管理。7综合查询功能。8账务统计功能:根据需求统计每日或每月宾馆收入、消费情况,方便财务部门进行资金的核对,并直观的显示出各段时间酒店的运营状况、入住状况。9系统运行稳定可靠、各项维护功能齐全、易于维护。10简单、友好的操作界面。2.3系统性能要求本系统的最终用户涉及酒店前台操作人员、收银员、财务人员、经理、后勤部门,负责了整个酒店的运作。因此系统必须运行稳定可靠。并且操作界面要简单友好,功能按钮用词要明确,提示要完备,使用户在较短的
5、时间内掌握软件的使用方法。2.4系统运行环境硬件环境:1.CPU 主频Pentium3GHz或更高。2.内存512M或更高3.显示器分辨率800*600或更高。操作系统:Windows XPWindows 2003三 功能模块划分:简单酒店管理系统的 系统功能模块如下图3-1所示:系统功能模块图(3-1)3.1客房信息:该模块主要包括:客人入住信息,换房信息,退房信息,预订,押金等信息3.2信息查询:此模块主要包括:入住旅客信息,房间状态,物料消耗,押金消费等查询操作3.3结账模块:此模块主要包括:餐费,话费,消费入账,物资总消耗3.4账务账单统计此模块主要包括:客房入住,客房话费,客房餐费,
6、客房消费等统计操作3.5管理员设置此模块主要包括:管理员管理,密码修改,系统日志查看,数据备份等操作。3.6辅助功能此模块主要包括:计算器,记事本,播放器,小游戏等调用操作3.7关于系统此模块主要包括:系统的相关信息四 系统功能流程图:五 数据库设计5.1.1客户入住单表5.2客房结账单5.3客房预约单表5.4操作用户表5.5消费入帐表5.6消费物品表5.7话费入账表5.8酒店信息表5.9酒店房间表5.10餐费入账六 模块实现过程6.1主界面设计如下图所示实现过程,建立一个窗体,命名为mainform,在工具箱中找到menustrip,分别输入相应的菜单项,在form_load时间中添加如下形
7、式的代码:Dim MyDlg As New 当前窗体() MyDlg.ShowDialog()连接子窗体。6.2工具栏的实现工具栏图示:实现方法:在工具箱中把tooltcrip按钮拖到主窗体中,右击鼠标,选择新建按钮,选择属性-添加北京 图片,将图片引入到当前项目中,双击按钮填写时间,代码如下:Dim MyDlg As New 当前窗体() MyDlg.ShowDialog()6.3模块功能实现过程1建立一个模块(modul)进行数据库连接,起连接代码如下:Module MdlCommon Public txtSQL As String 存放SQL语句 Public DBSet As Data
8、Set 查询得到的记录集 Public ErrorMsg As String 存放错误信息 Public Function ExecuteSQL(ByVal strSQL As String, ByRef errMsg As String) As DataSet Dim cnn As SqlClient.SqlConnection Dim cmd As New SqlClient.SqlCommand() Dim adpt As SqlClient.SqlDataAdapter Dim rst As New DataSet() Dim SplitSQL() As String errMsg =
9、 Try SplitSQL = Split(strSQL) cnn = New SqlClient.SqlConnection(data source=(local);initial catalog=urp;user id=sa;pwd=1234) If InStr(INSERT,DELETE,UPDATE, UCase$(SplitSQL(0) Then cmd.Connection = cnn cmd.Connection.Open() cmd.CommandText = strSQL cmd.ExecuteNonQuery() Else adpt = New SqlClient.SqlD
10、ataAdapter(strSQL, cnn) adpt.Fill(rst) ExecuteSQL = rst End If Catch ex As Exception errMsg = ex.Message Finally rst = Nothing cnn = Nothing End Try End Function End Module 2.部分功能实现介绍:2.1入住登记:单击菜单项里面的客房入住下拉菜单,单击【客人入住信息】或单击工具栏中【住房信息】按钮,弹出如图所示窗体:可以在里面输入相应的信息,并进行保存。代码如下:Imports System.Data.SqlClientImp
11、orts System.IOPublic Class BookForm Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged strsql = select * from 酒店房间 where 类别= & ComboBox1.Text & objconn1.Open() ad = New SqlDataAdapter(strsql, objconn1) objconn
12、1.Close() objdset1.Clear() ad.Fill(objdset1, a) DataGridView1.DataSource = objdset1.Tables(a) Me.TextBox1.Text = Me.DataGridView1.CurrentRow.Cells(0).Value End Sub Private Sub 新增Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新增Button.Click If Trim(TextBox1.Text) = T
13、hen MsgBox(房间类别不能为空!, 64, 提示) TextBox1.Focus() Else Dim strin As String objconn1.Open() Dim yybh As New SqlParameter(yybh, SqlDbType.NVarChar, 30) Dim fh As New SqlParameter(fh, SqlDbType.NVarChar, 30) Dim ysyj As New SqlParameter(ysyj, SqlDbType.Float) Dim rzrq As New SqlParameter(rzrq, SqlDbType.D
14、ateTime, 16) Dim lkrq As New SqlParameter(lkrq, SqlDbType.DateTime, 20) Dim krxm As New SqlParameter(krxm, SqlDbType.NVarChar, 30) Dim zsrs As New SqlParameter(zsrs, SqlDbType.Int) Dim krxb As New SqlParameter(krxb, SqlDbType.NVarChar, 20) Dim lxdh As New SqlParameter(lxdh, SqlDbType.NVarChar, 20) s
15、trin = insert into 客房预约单(预约编号,房号,预收押金,入住日期,离开日期,客人姓名,住宿人数,客人性别,联系电话) values(yybh,fh,ysyj,rzrq,lkrq,krxm,zsrs,krxb,lxdh) Dim objcmd1 As New SqlCommand(strin, objconn1) objcmd1.Parameters.Add(yybh) objcmd1.Parameters.Add(fh) objcmd1.Parameters.Add(ysyj) objcmd1.Parameters.Add(rzrq) objcmd1.Parameters.
16、Add(lkrq) objcmd1.Parameters.Add(krxm) objcmd1.Parameters.Add(zsrs) objcmd1.Parameters.Add(krxb) objcmd1.Parameters.Add(lxdh) yybh.Value = 预约编号TextBox.Text fh.Value = TextBox1.Text ysyj.Value = 预收押金TextBox.Text rzrq.Value = 入住日期DateTimePicker.Text lkrq.Value = 离开日期DateTimePicker.Text krxm.Value = 客人
17、姓名TextBox.Text zsrs.Value = 住宿人数ComboBox.Text krxb.Value = 客人性别ComboBox.Text lxdh.Value = 联系电话TextBox.Text objcmd1.ExecuteNonQuery() objconn1.Close() objcmd1.Dispose() Dim MyCount As Integer = Convert.ToInt16(Me.DataGridView1.CurrentRow.Cells(5).Value.ToString() If MyCount 0 Then MsgBox(该房间已住人!请另选房间
18、!) Else MsgBox(添加成功!, 64, 提示) End If End If End Sub Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick Me.TextBox1.Text = Me.DataGridView1.CurrentRow.Cells(0).Value.ToString End S
19、ub Private Sub BookForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim MyConnection As New SqlConnection(conn) MyConnection.Open() Dim MyCommand As SqlCommand = MyConnection.CreateCommand() MyCommand.CommandText = Select max(预约编号) 最大编号 From 客房预约单 Dim MyResul
20、t As Object = MyCommand.ExecuteScalar() Dim MyID As System.Int64 = 1 If (Not (MyResult Is System.DBNull.Value) Then Dim MyMaxID As String = MyResult.ToString().Trim() MyMaxID = MyMaxID.Substring(2, MyMaxID.Length - 2) MyID = Convert.ToInt64(MyMaxID) + 1 End If Dim MyLength As Integer = MyID.ToString
21、().Length Dim MyNewID As String = Select Case (MyLength) Case 1 MyNewID = YY0000000 + MyID.ToString() Case 2 MyNewID = YY000000 + MyID.ToString() Case 3 MyNewID = YY00000 + MyID.ToString() Case 4 MyNewID = YY0000 + MyID.ToString() Case 5 MyNewID = YY000 + MyID.ToString() Case 6 MyNewID = YY00 + MyID
22、.ToString() Case 7 MyNewID = YY0 + MyID.ToString() End Select If (MyConnection.State = ConnectionState.Open) Then MyConnection.Close() End If Me.预约编号TextBox.Text = MyNewID End SubEnd Class2.2旅客换房登记单击菜单项里面的客房入住下拉菜单,单击【客人换房信息】或单击工具栏中【旅客换房信息】按钮,弹出如图所示窗体:可以通过旅客入住编号,酒店房间类别两种方式进行查询,通过第二个表的信息查看房间状态,并进行换房操作
23、,实现过程如下:Imports System.Data.SqlClientImports System.IOPublic Class ChangeHouseForm Private Sub 根据当前选择换房Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 根据当前选择换房Button.Click Dim My住宿人数 As Integer = Convert.ToInt16(Me.客房入住单DataGridView.CurrentRow.Cells(10).Value.ToStrin
24、g() Dim My可入住人数 As Integer = Convert.ToInt16(Me.酒店客房信息DataGridView.CurrentRow.Cells(4).Value.ToString() Dim My已住人数 As Integer = Convert.ToInt16(Me.酒店客房信息DataGridView.CurrentRow.Cells(5).Value.ToString() If (My住宿人数 My可入住人数) Then MessageBox.Show(没有足够的床位进行换房操作!, 信息提示, MessageBoxButtons.OK, MessageBoxIc
25、on.Information) Return End If Dim My入住编号 As String = Me.客房入住单DataGridView.CurrentRow.Cells(0).Value.ToString() Dim My原房号 As String = Me.客房入住单DataGridView.CurrentRow.Cells(1).Value.ToString() Dim My新房号 As String = Me.酒店客房信息DataGridView.CurrentRow.Cells(0).Value.ToString() If My已住人数 0 Then MsgBox(此房间已
26、住人,无法换房!) Return Else Dim MyInfo As String = 是否确定将 + My入住编号 + 中的客人从 + My原房号 + 号房换到 + My新房号 + 号房? If (MessageBox.Show(MyInfo, 信息提示, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No) Then Return End If End If Dim MyConnection As New SqlConnection(conn) MyConnection.Open() Dim MyComm
27、and As SqlCommand = MyConnection.CreateCommand() Dim MySQL As String = Update 酒店房间 Set 已入住人数=已入住人数+ + My住宿人数.ToString() + WHERE 房号= + My新房号.ToString() + ; MySQL = MySQL + Update 酒店房间 Set 已入住人数=已入住人数- + My住宿人数.ToString() + WHERE 房号= + My原房号.ToString() + ; MySQL = MySQL + Update 客房入住单 Set 房号= + My新房号.
28、ToString() + WHERE 入住编号= + My入住编号.ToString() + ; MyCommand.CommandText = MySQL MyCommand.ExecuteNonQuery() MsgBox(换房成功!) If (MyConnection.State = ConnectionState.Open) Then MyConnection.Close() End If End Sub Private Sub 旅客登记信息Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
29、Handles 旅客登记信息Button.Click Dim MySQL As String = Select * From 客房入住单 Where 入住编号 LIKE + Me.ComboBox1.Text + AND 入住编号 NOT IN (Select 入住编号 FROM 客房结帐单) Dim MyConnection As New SqlConnection(conn) MyConnection.Open() Dim MyTable As New DataTable() Dim MyAdapter As New SqlDataAdapter(MySQL, MyConnection)
30、MyAdapter.Fill(MyTable) Me.客房入住单DataGridView.DataSource = MyTable If (MyConnection.State = ConnectionState.Open) Then MyConnection.Close() End If End Sub Private Sub 酒店房间类别ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 酒店房间类别ComboBox.SelectedIndexChanged strsql = select * from 酒店房间 where 类别= & 酒店房间类别ComboBox.Text & objconn1.Open() ad = New SqlDataAdapter(strsql, objconn1) objconn1.Close() objdset1.Clear() ad
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1