酒店管理系统开发文档格式.docx
《酒店管理系统开发文档格式.docx》由会员分享,可在线阅读,更多相关《酒店管理系统开发文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
![酒店管理系统开发文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/61c749e8-1fb4-426b-b8e8-58614ddb619c/61c749e8-1fb4-426b-b8e8-58614ddb619c1.gif)
自动扣除每日房费或半日房费,使收银员不必再进行繁琐的计算。
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按钮拖到主窗体中,右击鼠标,选择新建按钮,选择属性-添加北京图片,将图片引入到当前项目中,双击按钮填写时间,代码如下:
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("
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
DimyybhAsNewSqlParameter("
@yybh"
SqlDbType.NVarChar,30)
DimfhAsNewSqlParameter("
@fh"
DimysyjAsNewSqlParameter("
@ysyj"
SqlDbType.Float)
DimrzrqAsNewSqlParameter("
@rzrq"
SqlDbType.DateTime,16)
DimlkrqAsNewSqlParameter("
@lkrq"
SqlDbType.DateTime,20)
DimkrxmAsNewSqlParameter("
@krxm"
DimzsrsAsNewSqlParameter("
@zsrs"
SqlDbType.Int)
DimkrxbAsNewSqlParameter("
@krxb"
SqlDbType.NVarChar,20)
DimlxdhAsNewSqlParameter("
@lxdh"
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()
objcmd1.Dispose()
DimMyCountAsInteger=Convert.ToInt16(Me.DataGridView1.CurrentRow.Cells(5).Value.ToString())
IfMyCount<
>
0Then
该房间已住人!
请另选房间!
添加成功!
EndIf
PrivateSubDataGridView1_CellContentClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesDataGridView1.CellContentClick
Me.TextBox1.Text=Me.DataGridView1.CurrentRow.Cells(0).Value.ToString
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
DimMyLengthAsInteger=MyID.ToString().Length
DimMyNewIDAsString="
SelectCase(MyLength)
Case1
MyNewID="
YY0000000"
+MyID.ToString()
Case2
YY000000"
Case3
YY00000"
Case4
YY0000"
Case5
YY000"
Case6
YY00"
Case7
YY0"
EndSelect
If(MyConnection.State=ConnectionState.Open)Then
MyConnection.Close()
Me.预约编号TextBox.Text=MyNewID
EndClass
2.2旅客换房登记
单击菜单项里面的客房入住下拉菜单,单击【客人换房信息】或单击工具栏中【旅客换房信息】按钮,弹出如图所示窗体:
可以通过旅客入住编号,酒店房间类别两种方式进行查询,通过第二个表的信息查看房间状态,并进行换房操作,实现过程如下:
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
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已住人数>
此房间已住人,无法换房!
DimMyInfoAsString="
是否确定将"
+My入住编号+"
中的客人从"
+My原房号+"
号房换到"
+My新房号+"
号房?
If(MessageBox.Show(MyInfo,"
MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.No)Then
DimMySQLAsString="
Update酒店房间Set已入住人数=已入住人数+"
+My住宿人数.ToString()+"
WHERE房号='
+My新房号.ToString()+"
;
MySQL=MySQL+"
Update酒店房间Set已入住人数=已入住人数-"
+My原房号.ToString()+"
Update客房入住单Set房号='
WHERE入住编号='
+My入住编号.ToString()+"
MyCommand.CommandText=MySQL
MyCommand.ExecuteNonQuery()
换房成功!
PrivateSub旅客登记信息Button_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles旅客登记信息Button.Click
Select*From客房入住单Where入住编号LIKE'
+Me.ComboBox1.Text+"
AND入住编号NOTIN(Select入住编号FROM客房结帐单)"
DimMyTableAsNewDataTable()
DimMyAdapterAsNewSqlDataAdapter(MySQL,MyConnection)
MyAdapter.Fill(MyTable)
Me.客房入住单DataGridView.DataSource=MyTable
PrivateSub酒店房间类别ComboBox_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles酒店房间类别ComboBox.SelectedIndexChanged
酒店房间类别ComboBox.Text&
ad.Fill(objdset1,