酒店管理系统课程设计报告.docx
- 文档编号:5727544
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:48
- 大小:1.29MB
酒店管理系统课程设计报告.docx
《酒店管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《酒店管理系统课程设计报告.docx(48页珍藏版)》请在冰豆网上搜索。
酒店管理系统课程设计报告
酒店管理資訊系統
系統平臺:
Windows2000
資料庫伺服器:
MicrosoftSQLServer2000
開發工具:
VisualBasic6.0
系統開發人員:
⒈編寫目的
酒店在正常的運營中需要對客房資源、顧客資訊、結算資訊進行管理,利用賓館管理資訊系統及時瞭解各個環節中資訊的變更,有利於提高管理效率。
⒉系統功能分析
系統開發的總體任務是實現賓館各種資訊的系統化、規範化和自動化。
主要完成功能:
●有關客房標準的制定、標準資訊的輸入,包括標準編號、標準名稱、房間面積、床位數量、住房單價、是否有空調、電視機、電話以及單獨衛生間等。
●客房標準資訊的修改、查詢等。
●客房基本資訊的輸入,包括客房編號、客房類型、客房位置、客房單價、備註等。
●客房基本資訊的查詢、修改,包括客房編號、客房類型、客房位置、客房單價、備註等。
●剩餘客房資訊的查詢等。
●訂房資訊的輸入,包括客房編號、客房種類、客房位置、客房單價、顧客姓名、顧客身份證號碼、入住日期、折扣、備註資訊等。
●訂房資訊的修改和查詢,包括客房編號、客房種類、客房位置、客房單價、顧客姓名、顧客身份證號碼、入住日期、折扣、備註資訊等。
●結算資訊的輸入,包括客房編號、客房種類、位置、客房單價、顧客姓名、顧客身份證號碼、入住日期、折扣、結算日期、備註資訊等。
●結算資訊的修改和查詢,包括客房編號、客房種類、客房位置、客房單價、顧客姓名、顧客身份證號碼、入住日期、折扣、結日期、備註資訊等。
⒊系統功能模組設計
按結構化程式設計思想,分析得出如下系統功能模組圖
圖Ⅰ系統功能模組圖
⒋資料庫設計
資料庫設計步驟:
●資料庫需求分析
●資料庫概念結構設計
●資料庫邏輯結構設計
①資料庫需求分析
分析調查有關賓館管理資訊需求的基礎上得本系統所處理的數據流程
圖Ⅱ賓館管理資訊系統數據流程圖
針對一般賓館管理資訊系統的需求,通過對賓館管理過程的內容和流程分析,設計如下面所示的資料項目和數據結構:
●客房標準資訊,包括的資料項目有:
標準編號、標準名稱、房間面積、床位數量、住房單價、是否有空調、電視、電話、單獨衛生間等。
●客房資訊,包括的資料項目有:
客房編號、客房種類、客房位置、客房單價、備註等。
●訂房資訊,包括的資料項目有:
訂房編號、客房編號、客房種類、客房位置、客房備註資訊、顧客姓名、顧客身份證號碼、入住時間、折扣、備註等。
●結算資訊,包括的資料項目有:
訂房編號、客房編號、客房種類、客房位置、客房備註資訊、顧客姓名、顧客身份證號碼、入住時間、折扣、結算時間、備註等。
②資料庫概念結構設計
本系統根據以上的設計規劃出的實體有:
客房標準資訊實體、客房資訊實體、訂房資訊實體、結算資訊實體。
各個實體具體的描述E-R圖如下:
客房標準資訊實體E-R圖
客房資訊實體E-R圖
訂房資訊實體E-R圖
結算資訊實體E-R圖
實體之間關係E-R圖
③資料庫邏輯結構設計
首先將賓館管理資訊系統的資料庫概念結構轉化為SQL2000資料庫系統所支持的實際數據模型,即:
資料庫的邏輯結構。
其各個表格的設計結果如下
列名
數據類型
可否為空
說明
Typeid
Varchar
NOTNULL
標準編號
Typename
Varchar
NOTNULL
標準名稱
Area
Numeric
NULL
房間面積
Bednum
Numeric
NULL
床位數量
Haircondition
Varchar
NULL
是否有空調
Htelephone
Varchar
NULL
是否有電話
Htelevision
Varchar
NULL
是否有電視
Htoilet
Varchar
NULL
是否有單獨衛生間
Price
Numeric
NULL
單價
Roomtype客房標準資訊表
列名
數據類型
可否為空
說明
roomNO
Varchar
NOTNULL
客房編號
Roomtype
Varchar
NOTNULL
客房種類
Roomposition
Varchar
NULL
客房位置
Roomprice
Numeric
NULL
單價
Putup
Varchar
NOTNULL
是否被預定
Roommemo
Text
NULL
備註
Rooms客房資訊表
列名
數據類型
可否為空
說 明
Bookno
Varchar
NOTNULL
訂房編號
Customname
Varchar
NOTNULL
顧客姓名
CustomID
Varchar
NOTNULL
身份證號碼
Roomno
Varchar
NOTNULL
客房編號
Indate
Datetime
NULL
入住日期
Discount
Numeric
NULL
折扣
Inmeno
Text
NULL
備註
Checkdate
Datetime
NULL
結算日期
Amount
Numeric
NULL
金額
Bookin訂房資訊表
⒌資料庫結構的實現
利用SQL2000資料庫系統中的查詢分析實現資料庫的邏輯結構,其表格如下:
創建系統用戶表格user_Info
CREATETABLE[dbo].[user_Info1](
[user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,
[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
創建客房標準資訊表格 roomtype
CREATETABLE[dbo].[roomtype](
[typeid][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[typename][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[area][numeric](5,0)NULL,
[bednum][numeric](2,0)NULL,
[haircondition][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[htelephone][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[htelevision][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[htoilet][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[price][numeric](10,2)NULL
)ON[PRIMARY]
創建客房資訊表格 rooms
CREATETABLE[dbo].[rooms](
[roomNO][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[roomtype][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[roomposition][char](20)COLLATEChinese_PRC_CI_ASNULL,
[roomprice][numeric](10,2)NULL,
[putup][char]
(2)COLLATEChinese_PRC_CI_ASNOTNULL,
[roommemo][text]COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
創建訂房資訊表bookin
CREATETABLE[dbo].[bookin](
[bookno][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,
[customname][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[customID][char](18)COLLATEChinese_PRC_CI_ASNOTNULL,
[roomno][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[indate][datetime]NULL,
[discount][numeric](2,0)NULL,
[inmemo][text]COLLATEChinese_PRC_CI_ASNULL,
[checkdate][datetime]NULL,
[ammount][numeric](10,2)NULL
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
⒍賓館管理資訊系統具體程式實現
⑴創建公用模組Module1.bas
添加公共數據操作函數,用以執行各種SQL語句。
添加函數ExecuteSQL,代碼如下:
PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)_AsADODB.Recordset
‘執行SQL語句,並返回記錄集對象
DimcnnAsADODB.Connection
DimrstAsADODB.Recordset
DimsTokens()AsString
‘異常處理
OnErrorGoToExecuteSQL_Error’
‘用Split函數產生一個包含各個子串的數組
sTokens=Split(SQL)
Setcnn=NEWADODB.Connection
‘打開連接
cnn.OpenConnectString
IfInStr(“INSERT,DELETE,UPDATE”,UCase$(sTokens(0)))Then
Cnn.ExecuteSQL
MsgString=sTokens(0)&”querysuccessful”
Else
Setrst=NEWADODO.Recordset
rst.OpenTrim$(SQL),cnn,adOpenKeyset,adLockOptimistic
rst.MoveLast
getRecordCount
‘返回記錄集對象
SetExecuteSQL=rst
MsgString=”查詢到”&rst.RecordCount&”條記錄”
EndIf
ExecuteSQL_Exit:
Setrst=Nothing
Setcnn=Nothing
ExitFunction
ExecuteSQL_Error:
MsgString=”查詢錯誤:
”&Err.Description
ResumeExecuteSQL_Exit
EndFunction
PublicSubEnterToTab(KeyascAsInteger)
‘判斷是否為回車鍵
IfKeyasc=13Then‘Keyasc用來保存當前按鍵
‘轉換成Tab鍵
SendKeys”{TAB}”
EndIf
Endsub
‘添加全局變數,用來記錄各個窗口的讀寫狀態,代碼如下:
PublicflagTeditAsBoolean‘標示是否進入修改的窗體
PublicflagReditAsBoolean
PublicflagBeditAsBoolean
PublicflagCeditAsBoolean
PublicgintCmodeAsInteger
PublicgintTmodeAsInteger’記錄是添加還是修改狀態,1為添加,2為修改
PublicgintRmodeAsInteger
PublicgintBmodeAsInteger
PublicflagSeditAsBoolean
⑵系統用戶管理模組的創建
用戶管理模組主要實現:
·用戶登陸。
·添加用戶。
·修改用戶
具體客房標準添加代碼:
PrivateSubForm_Load()‘載入窗體後,判斷所處狀態
DimintCountAsInteger
DimMsgTextAsString
DimiAsInteger
IfgintTmode=1Then‘判斷是否屬於添加狀態
Me.Caption=Me.Caption&”添加”
Fori=0To3
Combo1(i).AddItem”否”
Combo1(i).AddItem”是”
Combo1(i).ListIndex=0
Nexti
ElseIfgintTmode=2Then‘判斷是否處於修改狀態
Setmrc=ExecuteSql(txtSQL,MsgText)
Ifmrc.EOF=falseThen
Withmrc
ForintCount=0To3
txtItem(intCount)=.Fields(intCount)
NextintCount
txtItem(4)=.Fileds(8)
Fori=0To3
Combo1(i).Additem”否”
Combo1(i).Additem”是”
Combo1(i).ListIndex=0
Nexti
EndWith
txtItem(0).Enabled=False
EndIf
Me.Caption=Me.caption&”修改”
EndIf
mblChang=False
EndSub
PrivateSubcmd_Click()’用戶輸入內容完畢後,單擊cmdSave按鈕觸發Click事件
DimintCountAsInteger
DimsMegAsString
DimMsgTextAsString
ForintCount=0To4‘判斷是否輸入內容
IfTrim(txtItem(intCount)&””)=””Then
SelectCaseintCount
Case0
sMeg=”標準編號”
Case1
sMeg=”標準名稱”
Case2
sMeg=”房間面積”
Case3
sMeg=”床位數量”
Case4
sMeg=”床位單價”
EndSelect
sMeg=sMeg&”不能為空!
”
MsgBoxsMeg,vbOkOnly+vbExclamation,”警告”
txtItem(intCount).SetFocus
ExitSub
Endif
NextintCount‘判斷輸入內容是否為數字
ForintCount=2To4
IfNotIsNumeric(Trim(txtItem(intCount)))Then
SelectCaseintCount
Case2
sMeg=”房間面積”
Case3
sMeg=”床位數量”
Case4
sMeg=”床位單價”
EndSelect
sMeg=sMeg&”請輸入數字!
”
MsgBoxsMeg,vbOKOnly+vbExclamation,”警告”
txtItem(intCount).SeFocus
ExitSub
EndIf
NextintCount
IfgintTmode=1Then‘判斷是否有相同ID記錄
txtSQL=”select*fromroomtypewheretypeid_=’”&Trim(txtItem(0))&”’”
Setmrc=ExecuteSQL(txtSQL,MsgText)
Ifmrc.EOF=FalseThen
MsgBox“已經存在此標準編號的記錄!
”,vbOKOnly+vbExclamation,”警告”
txtItem(0).SetFocus
ExitSub
EndIf
Mrc.Close
EndIf
txtSQL=”select*fromroomtypewheretypeid<>’”&Trim(txtItem(0))&”’andtypename=’”&Trim(txtItem
(1))&”’”
Setmrc=ExecuteSQL(txtSQL,MsgText)
Ifmrc.EOF=FalseThen
MsgBox”已經存在相同客房標準的記錄!
”,vbOKOnly+vbExclamation,“警告”
txtItem
(1).Setfocus
ExitSub
EndIf
txtSQL=”deletefromroomtypewheretypeid=’”&Trim(txtItem(0))&”’”‘刪除已有記錄
Setmrc=ExecuteSQL(txtSQL,MsgText)
txtSQL=”select*fromroottype”‘添加新記錄
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.AddNew
ForintCount=0To3
mrc.Fields(intCount)=Trim(txtItem(intCount))
NextintCount
ForintCount=0To3
mrc.Fields(intCount+4)=Trim(Combo1(intCount))
NextintCount
mrc.Fields(8)=Trim(txtItem(4))
mrc.Update‘更新資料庫
mrc.Close
ifgintTmode=1Then‘判斷是否屬於添加狀態
MsgBox“添加紀錄成功!
”,vbOKOnly+vbExclamtion,“添加記錄”
ForintCount=0To4
txtItem(intCount)=””‘清除已經輸入的內容
NextintCount
ForintCount=0To3
Combo1(intCount).ListIndex=0
NextintCount
mblChange=False’判斷是否打開窗口
ifflagTeditThen
UnloadfrmRoomtype
frmRoomtype.txtSQL=“select*fromroomtype”
frmRoomtype.Show
EndIf
ElseIfgintTmode=2Then‘判斷是否處於修改狀態
UnloadMe
IfflagTeditThen
UnloadfrmRoomtype
EndIf
frmRoomtype.txtSQL=”select*fromroomtype”
frmRoomtype.Show
EndIf
EndSub
PrivateSubtxtItem_GotFocus(IndexAsInteger)’文本框獲得焦點時觸發該事件,即自動選中輸入的內容,便於修改
txtItem(Index).SelStart=0
txtItem(Index).SelLength=Len(txtItem(Index))
EndSub
PrivateSubcmdExit_Click()’單擊按鈕cmdExit取消添加資訊
IfmblChangeAndcmdSave.EnabledThen
IfMsgBox(“保存當前記錄的變化嗎?
”,vbOKCancel+vbExclamation,”警告”)=vbOKThen‘保存
CallcmdSave_Click
EndIf
EndIf
UnloadMe
EndSub
PrivateSubtxtItem_KeyDown(IndexAsInteger,KeyCodeAsInteger,Shift_AsInteger)‘輸入完內容,單擊回車鍵將自動進入下一個文本框,觸發文本框的Keydown事件
EnterToTabKeyCode
EndSub
⑶修改客房標準窗體的創建
PrivateSubFrom_Load()
ShowTitle
ShowData
flagTedit=True
EndSub
PrivateSubShowTitle()‘調用showTitle函數,顯示表頭
DimiAsInteger
WithmsgList
.Cols=10
.TextMatrix(0,1)=”標準編號”
.TextMatrix(0,2)=”標準名稱”
.TextMatrix(0,3)=”房間面積”
.TextMatrix(0,4)=”床位數量”
.TextMatrix(0,5)=”是否有空調”
.TextMatrix(0,6)=”是否有電話”
.TextMatrix(0,7)=”是否有電視”
.TextMatrix(0,8)=”是否有衛生間”
.TextMatrix(0,9)=”房間單價”
.FixedRows=1‘固定表頭
Fori=0To9‘設置各列的對齊方式
.ColAlignment(i)=0
Nexti
.FillStyle=flexFillRepeat‘表頭項居中
.Col=0
.Row=0
.RowSel=1
.ColSel=.Cols-1
.CellAlignment=4
.ColWidth(0)=300‘設置單元大小
.ColWidth
(1)=1000
.ColWidth
(2)=2000
.ColWidth(3)=2000
.ColWidth(4)=1000
.ColWidth(5)=1000
.ColWidth(6)=1000
.ColWidth(7)=1000
.ColWidth(8)=1000
.ColWidth(9)=1000
.Row=1
EndWith
EndSub
PrivateSubShowData()‘調用showData函數,顯示記錄列表
DimiAsInteger
Setmrc=ExecuteSQL(txtSQL,MsgText)‘根據需要設置SQL語句,顯示需要的記錄
WithmsgList
.Rows=1
DoWhileNotmrc.EOF
.Rows=Rows+1
Fori=1Tomrc.Fields.Count
SelectCas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 课程设计 报告