酒店管理系统开发.docx
- 文档编号:12130148
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:29
- 大小:516.41KB
酒店管理系统开发.docx
《酒店管理系统开发.docx》由会员分享,可在线阅读,更多相关《酒店管理系统开发.docx(29页珍藏版)》请在冰豆网上搜索。
酒店管理系统开发
简单酒店管理系统
08信管1班冯茜
08信管2班陆思佳王娟
一.开发背景
随着社会服务行业的发展,酒店行业对自身提供服务的质量和能力也有了更高的要求。
酒店管理系统正是在这样的情况之下越来越受到重视。
酒店内部服务项目众多,既需要完成前台的服务工作,还需要完成后台的管理工作。
如果没有一套可靠的酒店管理系统,单凭手工操作,不仅效率低,而且会极大地影响到酒店的服务质量。
二.酒店管理系统的分析和设计
2.1需要解决的问题
目前手工操作或采用旧管理系统的酒店在运营时存在如下几个主要问题:
1.房间的预定功能不能或无法完全的实现,手工记录或早期系统无法即时了解当天的房间使用状况,无法判断房间是否被重复预定,客人无法在到达酒店前随时进行酒店预订和房间信息的了解。
2.宾客住宿时,操作员不能直接了解实际房价和房间使用情况;对于预定宾客无法做到有效的查询、直接入住。
3.收银处不能快速的了解待结用户的情况,无法有效的督促其进行费用的缴纳;当用户结账时,对于其消费情况无法快速的查询并清楚的显示,容易出现费用纠纷,住房费用靠人工进行计算,容易出现差错。
4.管理部门无法直接、快速查询、统计客人实际消费情况,营业情况。
5.酒店经理不能直接、及时了解客房开房情况,客人消费情况,酒店营业收入情况,没有各种所需的数据分析。
6.由于人手操作的缘故,所有统计报表都由人手工计算和制作,不但效率低,容易差错,更无法作大型复杂的统计,先进的管理模式无法在酒店应用,直接影响酒店管理水平的提高。
7.客人无法提前了解酒店直观的了解酒店位置,房间信息,进行客房预订等。
2.2系统设计目标
针对旧系统的主要问题,本系统提出的总目标是为酒店宾客提供迅速、高效、满意的服务;最大程度的减少事务处理过程中的误差;及时、准确地反映酒店的运作情况、经营情况,从而提高酒店的服务质量,获得更好的经济效益。
具体的目标包括:
1.宾客在线自助预定服务功能。
2.快速办理客人入住
3.客房管理功能:
显示当前各房间状态(Available/InUse/Booked)
4.房费扣除系统:
自动扣除每日房费或半日房费,使收银员不必再进行繁琐的计算。
5.结帐系统:
自动显示当前待结、欠款宾客;转帐、入帐、锁单功能;由电脑自动记录每位客人的每笔消费记录,确保准确无误。
6.客人资料管理功能:
对住宿用户、预定用户、历史用户进行设置和管理。
7.综合查询功能。
8.账务统计功能:
根据需求统计每日或每月宾馆收入、消费情况,方便财务部门进行资金的核对,并直观的显示出各段时间酒店的运营状况、入住状况。
9.系统运行稳定可靠、各项维护功能齐全、易于维护。
10.简单、友好的操作界面。
2.3系统性能要求
本系统的最终用户涉及酒店前台操作人员、收银员、财务人员、经理、后勤部门,负责了整个酒店的运作。
因此系统必须运行稳定可靠。
并且操作界面要简单友好,功能按钮用词要明确,提示要完备,使用户在较短的时间内掌握软件的使用方法。
2.4系统运行环境
硬件环境:
1.CPU主频Pentium3GHz或更高。
2.内存512M或更高
3.显示器分辨率800*600或更高。
操作系统:
WindowsXP\Windows2003
三.功能模块划分:
简单酒店管理系统的系统功能模块如下图3-1所示:
系统功能模块图(3-1)
3.1客房信息:
该模块主要包括:
客人入住信息,换房信息,退房信息,预订,押金等信息
3.2信息查询:
此模块主要包括:
入住旅客信息,房间状态,物料消耗,押金消费等查询操作
3.3结账模块:
此模块主要包括:
餐费,话费,消费入账,物资总消耗
3.4账务账单统计
此模块主要包括:
客房入住,客房话费,客房餐费,客房消费等统计操作
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时间中添加如下形式的代码:
DimMyDlgAsNew当前窗体()
MyDlg.ShowDialog()
连接子窗体。
6.2工具栏的实现
工具栏图示:
实现方法:
在工具箱中把tooltcrip按钮拖到主窗体中,右击鼠标,选择新建按钮,选择属性-添加北京图片,将图片引入到当前项目中,双击按钮填写时间,代码如下:
DimMyDlgAsNew当前窗体()
MyDlg.ShowDialog()
6.3模块功能实现过程
1.建立一个模块(modul)进行数据库连接,起连接代码如下:
ModuleMdlCommon
PublictxtSQLAsString'存放SQL语句
PublicDBSetAsDataSet'查询得到的记录集
PublicErrorMsgAsString'存放错误信息
PublicFunctionExecuteSQL(ByValstrSQLAsString,ByReferrMsgAsString)AsDataSet
DimcnnAsSqlClient.SqlConnection
DimcmdAsNewSqlClient.SqlCommand()
DimadptAsSqlClient.SqlDataAdapter
DimrstAsNewDataSet()
DimSplitSQL()AsString
errMsg=""
Try
SplitSQL=Split(strSQL)
cnn=NewSqlClient.SqlConnection("datasource=(local);initialcatalog=urp;userid=sa;pwd=1234")
IfInStr("INSERT,DELETE,UPDATE",UCase$(SplitSQL(0)))Then
cmd.Connection=cnn
cmd.Connection.Open()
cmd.CommandText=strSQL
cmd.ExecuteNonQuery()
Else
adpt=NewSqlClient.SqlDataAdapter(strSQL,cnn)
adpt.Fill(rst)
ExecuteSQL=rst
EndIf
CatchexAsException
errMsg=ex.Message
Finally
rst=Nothing
cnn=Nothing
EndTry
EndFunction
EndModule
2.部分功能实现介绍:
2.1入住登记:
单击菜单项里面的客房入住下拉菜单,单击【客人入住信息】或单击工具栏中【住房信息】按钮,弹出如图所示窗体:
可以在里面输入相应的信息,并进行保存。
代码如下:
ImportsSystem.Data.SqlClient
ImportsSystem.IO
PublicClassBookForm
PrivateSubComboBox1_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesComboBox1.SelectedIndexChanged
strsql="select*from酒店房间where类别='"&ComboBox1.Text&"'"
objconn1.Open()
ad=NewSqlDataAdapter(strsql,objconn1)
objconn1.Close()
objdset1.Clear()
ad.Fill(objdset1,"a")
DataGridView1.DataSource=objdset1.Tables("a")
Me.TextBox1.Text=Me.DataGridView1.CurrentRow.Cells(0).Value
EndSub
PrivateSub新增Button_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles新增Button.Click
IfTrim(TextBox1.Text)=""Then
MsgBox("房间类别不能为空!
",64,"提示")
TextBox1.Focus()
Else
DimstrinAsString
objconn1.Open()
DimyybhAsNewSqlParameter("@yybh",SqlDbType.NVarChar,30)
DimfhAsNewSqlParameter("@fh",SqlDbType.NVarChar,30)
DimysyjAsNewSqlParameter("@ysyj",SqlDbType.Float)
DimrzrqAsNewSqlParameter("@rzrq",SqlDbType.DateTime,16)
DimlkrqAsNewSqlParameter("@lkrq",SqlDbType.DateTime,20)
DimkrxmAsNewSqlParameter("@krxm",SqlDbType.NVarChar,30)
DimzsrsAsNewSqlParameter("@zsrs",SqlDbType.Int)
DimkrxbAsNewSqlParameter("@krxb",SqlDbType.NVarChar,20)
DimlxdhAsNewSqlParameter("@lxdh",SqlDbType.NVarChar,20)
strin="insertinto客房预约单(预约编号,房号,预收押金,入住日期,离开日期,客人姓名,住宿人数,客人性别,联系电话)values(@yybh,@fh,@ysyj,@rzrq,@lkrq,@krxm,@zsrs,@krxb,@lxdh)"
Dimobjcmd1AsNewSqlCommand(strin,objconn1)
objcmd1.Parameters.Add(yybh)
objcmd1.Parameters.Add(fh)
objcmd1.Parameters.Add(ysyj)
objcmd1.Parameters.Add(rzrq)
objcmd1.Parameters.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=客人姓名TextBox.Text
zsrs.Value=住宿人数ComboBox.Text
krxb.Value=客人性别ComboBox.Text
lxdh.Value=联系电话TextBox.Text
objcmd1.ExecuteNonQuery()
objconn1.Close()
objcmd1.Dispose()
DimMyCountAsInteger=Convert.ToInt16(Me.DataGridView1.CurrentRow.Cells(5).Value.ToString())
IfMyCount<>0Then
MsgBox("该房间已住人!
请另选房间!
")
Else
MsgBox("添加成功!
",64,"提示")
EndIf
EndIf
EndSub
PrivateSubDataGridView1_CellContentClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesDataGridView1.CellContentClick
Me.TextBox1.Text=Me.DataGridView1.CurrentRow.Cells(0).Value.ToString
EndSub
PrivateSubBookForm_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
DimMyConnectionAsNewSqlConnection(conn)
MyConnection.Open()
DimMyCommandAsSqlCommand=MyConnection.CreateCommand()
MyCommand.CommandText="Selectmax(预约编号)最大编号From客房预约单"
DimMyResultAsObject=MyCommand.ExecuteScalar()
DimMyIDAsSystem.Int64=1
If(Not(MyResultIsSystem.DBNull.Value))Then
DimMyMaxIDAsString=MyResult.ToString().Trim()
MyMaxID=MyMaxID.Substring(2,MyMaxID.Length-2)
MyID=Convert.ToInt64(MyMaxID)+1
EndIf
DimMyLengthAsInteger=MyID.ToString().Length
DimMyNewIDAsString=""
SelectCase(MyLength)
Case1
MyNewID="YY0000000"+MyID.ToString()
Case2
MyNewID="YY000000"+MyID.ToString()
Case3
MyNewID="YY00000"+MyID.ToString()
Case4
MyNewID="YY0000"+MyID.ToString()
Case5
MyNewID="YY000"+MyID.ToString()
Case6
MyNewID="YY00"+MyID.ToString()
Case7
MyNewID="YY0"+MyID.ToString()
EndSelect
If(MyConnection.State=ConnectionState.Open)Then
MyConnection.Close()
EndIf
Me.预约编号TextBox.Text=MyNewID
EndSub
EndClass
2.2旅客换房登记
单击菜单项里面的客房入住下拉菜单,单击【客人换房信息】或单击工具栏中【旅客换房信息】按钮,弹出如图所示窗体:
可以通过旅客入住编号,酒店房间类别两种方式进行查询,通过第二个表的信息查看房间状态,并进行换房操作,实现过程如下:
ImportsSystem.Data.SqlClient
ImportsSystem.IO
PublicClassChangeHouseForm
PrivateSub根据当前选择换房Button_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
Handles根据当前选择换房Button.Click
DimMy住宿人数AsInteger=Convert.ToInt16(Me.客房入住单DataGridView.CurrentRow.Cells(10).Value.ToString())
DimMy可入住人数AsInteger=Convert.ToInt16(Me.酒店客房信息DataGridView.CurrentRow.Cells(4).Value.ToString())
DimMy已住人数AsInteger=Convert.ToInt16(Me.酒店客房信息DataGridView.CurrentRow.Cells(5).Value.ToString())
If(My住宿人数>My可入住人数)Then
MessageBox.Show("没有足够的床位进行换房操作!
","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
EndIf
DimMy入住编号AsString=Me.客房入住单DataGridView.CurrentRow.Cells(0).Value.ToString()
DimMy原房号AsString=Me.客房入住单DataGridView.CurrentRow.Cells
(1).Value.ToString()
DimMy新房号AsString=Me.酒店客房信息DataGridView.CurrentRow.Cells(0).Value.ToString()
IfMy已住人数>0Then
MsgBox("此房间已住人,无法换房!
")
Return
Else
DimMyInfoAsString="是否确定将"+My入住编号+"中的客人从"+My原房号+"号房换到"+My新房号+"号房?
"
If(MessageBox.Show(MyInfo,"信息提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.No)Then
Return
EndIf
EndIf
DimMyConnectionAsNewSqlConnection(conn)
MyConnection.Open()
DimMyCommandAsSqlCommand=MyConnection.CreateCommand()
DimMySQLAsString="Update酒店房间Set已入住人数=已入住人数+"+My住宿人数.ToString()+"WHERE房号='"+My新房号.ToString()+"';"
MySQL=MySQL+"Update酒店房间Set已入住人数=已入住人数-"+My住宿人数.ToString()+"WHERE房号='"+My原房号.ToString()+"';"
MySQL=MySQL+"Update客房入住单Set房号='"+My新房号.ToString()+"'WHERE入住编号='"+My入住编号.ToString()+"';"
MyCommand.CommandText=MySQL
MyCommand.ExecuteNonQuery()
MsgBox("换房成功!
")
If(MyConnection.State=ConnectionState.Open)Then
MyConnection.Close()
EndIf
EndSub
PrivateSub旅客登记信息Button_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles旅客登记信息Button.Click
DimMySQLAsString="Select*From客房入住单Where入住编号LIKE'"+Me.ComboBox1.Text+"'AND入住编号NOTIN(Select入住编号FROM客房结帐单)"
DimMyConnectionAsNewSqlConnection(conn)
MyConnection.Open()
DimMyTableAsNewDataTable()
DimMyAdapterAsNewSqlDataAdapter(MySQL,MyConnection)
MyAdapter.Fill(MyTable)
Me.客房入住单DataGridView.DataSource=MyTable
If(MyConnection.State=ConnectionState.Open)Then
MyConnection.Close()
EndIf
EndSub
PrivateSub酒店房间类别ComboBox_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles酒店房间类别ComboBox.SelectedIndexChanged
strsql="select*from酒店房间where类别='"&酒店房间类别ComboBox.Text&"'"
objconn1.Open()
ad=NewSqlDataAdapter(strsql,objconn1)
objconn1.Close()
objdset1.Clear()
ad.Fill(objdset1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 开发