freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vb賓館客房管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-12-11 10:28本頁(yè)面
  

【正文】 用戶權(quán)限設(shè)置窗體如圖 23 所示。 客戶端 系統(tǒng)管理模塊的創(chuàng)建和設(shè)計(jì) 系統(tǒng)管理模塊主要實(shí)現(xiàn)添加 /刪除用戶、修改密碼、設(shè)置用戶權(quán)限、數(shù)據(jù)庫(kù)的備份等功能。本系統(tǒng)的主窗體界面如圖 22 所示。本系統(tǒng)的登陸窗體設(shè)計(jì)如圖 20 所示,登陸流程如圖 21 所示。備份路徑就是服務(wù)器配置管理窗口中給定的數(shù)據(jù)庫(kù)備份路徑,一般指定一個(gè)可移動(dòng)硬盤即可。 29 圖 17:服務(wù)器參數(shù)設(shè)定的窗體 通過(guò)該模塊可以設(shè)置數(shù)據(jù)的服務(wù)器地址、數(shù)據(jù)庫(kù)認(rèn)證用戶名和密碼 , 還 具有數(shù)據(jù)庫(kù)的備份與恢復(fù)功能, 選擇數(shù)據(jù)庫(kù)備份的路徑后,點(diǎn)擊 數(shù)據(jù)庫(kù)的備份與還原窗體如圖 18所示。如果是用戶修改命令 ,就 執(zhí)行其所有他用戶獲取的信息同步跟新 End If End Sub 以上代碼中每個(gè) Case 下面是一個(gè)相應(yīng)動(dòng)作的處理函數(shù),這些函數(shù)的具體實(shí)現(xiàn)請(qǐng)參考本論文后面的附錄中給出的賓館業(yè)務(wù)實(shí)現(xiàn)部分代碼。服務(wù)器應(yīng)答客戶機(jī) Call (index, StrBack) End If RegisterUserGetInf ArryStr(0), index 39。 Chr(0) Dim i As Integer Dim a As PortState 39。 StrBack amp。加上幀界定符 StrBack = Chr(0) amp。獲取數(shù)據(jù)庫(kù)備份列表 Case GetBackUpList StrBack = GetBackUpList() 39。獲取指定時(shí)間段的預(yù)收信息合計(jì)金額 Case GETSQL_YS_JE StrBack = GETSQL_YS_JE(ArryStr(1)) 39。獲取符合條件的退房信息 Case GetTeBieTuiFangInf StrBack = GetTeBieTuiFangInf(ArryStr()) 39。獲取所有住宿完全的信息 Case GetAllZhuSUInf StrBack = GetAllZhuSUInf() 39。獲取所有掛賬信息 Case GetGuaZhangInf StrBack = GetGuaZhangInf() 39。刪除客房 Case DeleteRoom StrBack = DeleteRoom(ArryStr(1)) 39。退房登記事務(wù)處理 Case TuiFangDengJi StrBack = TuiFangDengJi(ArryStr()) 39。處理調(diào)房登記 Case SetTiaoFang 27 StrBack = SetTiaoFang(ArryStr()) 39。追加押金 Case SetZJYJ StrBack = SetZJYJ(ArryStr()) 39。獲取所有正在住宿的編號(hào) Case GetAllBH_1 StrBack = GetAllBH_1() 39。獲取空的房間信息 Case GetEmptyRoom StrBack = GetEmptyRoom() 39。修改用戶密碼 Case ChangePasd StrBack = ChangePasd(ArryStr(1), ArryStr(2)) 39。獲取所有用戶權(quán)限 Case GetQuanXianAllUser StrBack = GetQuanXianAllUser() 39。獲取用戶權(quán)限 Case GetQuanXian StrBack = GetQuanXian(ArryStr(1)) 39。ArryStr( 0)為客戶機(jī)請(qǐng)求的控制命令,按照不同的請(qǐng)求命令執(zhí)行一下相應(yīng)的動(dòng)作 39。接受數(shù)據(jù) ArryStr() = Split(GetStr, ,, 1) 39。發(fā)回去的字符串 Is_Change_Successed = False 39。 服務(wù)器后臺(tái)業(yè)務(wù)邏輯的設(shè)計(jì) 本節(jié)為服務(wù)器關(guān)鍵之所在,關(guān)于服務(wù)器對(duì)客戶機(jī)請(qǐng)求的實(shí)現(xiàn),本系統(tǒng)設(shè)計(jì)以下代碼處理不同的請(qǐng)求和應(yīng)答機(jī)制: Private Sub SockToCln_DataArrival(index As Integer, ByVal bytesTotal As Long) Dim GetStr As String 39。本系統(tǒng)的服務(wù)器主窗體如圖 16 所示。服務(wù)器的設(shè)計(jì)主要分為后臺(tái)業(yè)務(wù)功能的設(shè)計(jì)和前臺(tái)的界面設(shè)計(jì)。 圖 9:數(shù)據(jù)庫(kù)實(shí)現(xiàn)圖 在 Hotel 中創(chuàng)建六張表,分別為客房住宿登記表,退房登記表,掛賬表,客房信息表用戶表,用 戶權(quán)限表,其結(jié)構(gòu)如圖 10至圖 15 所示。 圖 5 :客戶實(shí)體圖 19 圖 6:客房實(shí)體圖 圖 7:客房類型實(shí)體圖 該系統(tǒng)的綜合 ER 圖如圖 8 所示。這樣就很好的解決了數(shù)據(jù)庫(kù)中的用戶密碼安全性問(wèn)題了。 MD5 廣泛用于加密和解密技術(shù)上 ,用 MD5 算法對(duì)用戶的密碼加密后存入數(shù)據(jù)庫(kù),正因?yàn)?MD5加密算法是不可恢復(fù)的算法,使得數(shù)據(jù)庫(kù)管理員知道每個(gè)用戶的密碼的密文后也無(wú)法知道密碼的明文是什么。這 樣會(huì)存在一個(gè)問(wèn)題,數(shù)據(jù)庫(kù)管理員就能知道每個(gè)用戶的用戶名和密碼,使得系統(tǒng)的權(quán)限泄露,使系統(tǒng)限 入不安全狀態(tài)。取單字節(jié)內(nèi)容 18 SINGLECHAR = Mid(strSource, I, 1) CHARNUM = Asc(SINGLECHAR) g: RANDOMINTEGER = Int(127 * Rnd) If RANDOMINTEGER 30 Or RANDOMINTEGER 100 Then GoTo g CHARNUM = CHARNUM Xor RANDOMINTEGER strTmp = strTmp amp。Dim X As Single Dim CHARNUM As Long, RANDOMINTEGER As Integer Dim SINGLECHAR As String * 1 Dim strTmp As String If MA 0 Then MA = MA * (1) End If Rnd MA 39。并且此加密算法是可逆的加密算法。雖然這些算法的結(jié)構(gòu)或多或少有些相似,但 MD2 的設(shè)計(jì)與 MD4 和 MD5 完全不同,那是因?yàn)?MD2 是為 8位機(jī)器做過(guò)設(shè)計(jì)優(yōu)化的,而 MD4和 MD5 卻是面向 32 位的電腦。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密匙前被 壓縮 成一種保密的格式(就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的大整數(shù))。同時(shí)采用這兩種算法在通訊中可以完全解決安全性問(wèn)題。為了避免此類情況帶來(lái)的各種損失,我們采用加密機(jī)制和身份校驗(yàn)機(jī)制來(lái)解決此類問(wèn)題。本系統(tǒng)主要存在的安全隱患為:通訊的安全性和數(shù)據(jù)庫(kù)用戶密碼安全性。這樣得到“ 寫讀同步觸發(fā) ”矩陣如表 2 所示( 1 為有沖突, 0 無(wú)沖突)。本系統(tǒng)中的客戶機(jī)的請(qǐng)求命令中有 17條讀信息命令和 12 修改信息命令,具體歸結(jié)為一個(gè)矩陣(行為讀信息命令,列為修改信息命令,行列相交單元為 1 時(shí)則修改命令會(huì)使讀信息命令 失效,為 0時(shí) 修改命令不會(huì)使讀信息命令失效 )。 為了解決這類用戶數(shù)據(jù)同步問(wèn)題, 本系統(tǒng)采用“寫讀 同步觸發(fā) 機(jī)制”,也就是說(shuō)當(dāng)一個(gè)用戶讀去數(shù)據(jù)后服務(wù)器端 記錄該用戶有讀信息的命令,以后若有其他用戶的修改與剛剛用戶的讀信息命令發(fā)生沖突時(shí),服務(wù)器在修改命令執(zhí)行成功后,向剛剛讀信息的用戶發(fā)送一個(gè)失效通知, 對(duì)于剛剛 讀信息的客戶程序 收到服務(wù)器發(fā)過(guò)來(lái)的讀數(shù)據(jù)失效通知時(shí)會(huì) 根據(jù)當(dāng)前的狀態(tài)決定是否去服務(wù)器重新讀取數(shù)據(jù),這樣就解決了 多用戶并發(fā)操作時(shí)數(shù)據(jù)同步 的問(wèn)題。 表 1:動(dòng)作控制符表 客戶機(jī) 請(qǐng)求的控制符 服務(wù)器動(dòng)作 處理后的返回信息 LGION 用戶登陸事件 LGIONBack+提示信息 GetQuanXian 返回用戶權(quán)限 GetQuanXianBack+用戶數(shù) +用戶權(quán)限 GetQuanXianAllUser 返回所有用戶權(quán)限 GetQuanXianAllUserBack+用戶數(shù) +所用用戶權(quán)限 GetEmptyRoom 返回所有空客房信息 GetEmptyRoomBack+ 空客房信息 GetAllBH_1 返回所有的住宿編號(hào) GetEmptyRoomBack+ 記錄數(shù) +所有編號(hào) GetOneBhXinxi 返回指定編號(hào)的信息 GetOneBhXinxiBack+ 該編號(hào)的信息 GetFullRoomAndBh 返回指定編號(hào)的所有信息 GetFullRoomAndBhBack+標(biāo)號(hào)所有信息 GetAllFullRoomInf 返回所有滿客房的信息 GetAllFullRoomInfBack+ 滿客房 +所有面客房的信息 GetAllRoomInf 返回所有客房的信息 GetAllRoomInfBack+ 客房數(shù) +所有客房的信息 GetGuaZhangInf 返回所有掛賬信息 GetGuaZhangInfBack+ 記錄數(shù) +掛賬信息 GetAllZhuSUInf 返回所有住宿信息 GetAllZhuSUInfBack+ 住宿記錄數(shù) +所有住宿信息 14 GetAllTuiFangInf 返回所有退房信息 GetAllTuiFangInfBack+ 退房記錄數(shù) +所有退房信息 GetTeBieTuiFangInf 返回指定退房信息 GetTeBieTuiFangInfBack+退房信息 GETSQL_YSB 返回指定要求的預(yù)售信息 GETSQL_YSBBack+ 預(yù)售記錄 +所有預(yù)售信息 GETSQL_YS_JE 返回指定預(yù)售金額 GETSQL_YS_JEBack+預(yù)售金額 GetYearTongJi 返回年 金額統(tǒng)計(jì) GetYearTongJiBack+年統(tǒng)計(jì)數(shù)據(jù) GetBackUpList 返回?cái)?shù)據(jù)庫(kù)備份列表 GetBackUpListBack+ 文件數(shù) +所有文件名 SetQuanXian 處理設(shè)置權(quán)限 SetQuanXianBack+ 提 示 信息 DeleteUser 處理刪除用戶 DeleteUserBack+提示信息 ChangePasd 處理修改密碼 ChangePasdBack+提示信息 CreateUser 處理添加用戶 CreateUserBack+提示信息 KFDengJi 處理住宿登記 KFDengJiBack+提示信息 +住宿編號(hào) SetZJYJ 處理追加押金 SetZJYJBack+提示信息 SetTiaoFang 處理調(diào)房 SetTiaoFangBcak+提示信息 TuiFangDengJi 處理退房 TuiFangDengJiBack+ 提示信息 DeleteRoom 處理刪除客房 DeleteRoomBack+提示信息 ChangeOrCreateRoom 處理添加或刪除客房 ChangeOrCreateRoomBack+提示信息 CustomPayBill 處理客戶結(jié) 賬 CustomPayBillBack+提示信息 BackUpDataBase 處理數(shù)據(jù)庫(kù)備份信息 BackUpDataBaseBack+提示信息 多用戶并發(fā) 操作 時(shí)數(shù)據(jù)同步 的設(shè)計(jì) 在多用戶的 C/S 結(jié)構(gòu)的系統(tǒng)中,會(huì)出現(xiàn)多用 操作時(shí)數(shù)據(jù)不一致 的問(wèn)題 ,如 一用戶剛在服務(wù)器上讀取數(shù)據(jù) , 此時(shí)另一個(gè)用戶修改了 剛才用戶讀取的數(shù)據(jù),使得15 剛剛的用戶一直還認(rèn)為自己讀到的數(shù)據(jù)是有效的。本系統(tǒng)使用的分隔符為“ ,,”,對(duì) 于 控制符后沒(méi)有參數(shù)的數(shù)據(jù)幀就只有控制符,如果有一個(gè)參數(shù)數(shù)據(jù),就用分隔符分割后加上參數(shù),如果有多個(gè)參數(shù),用第一個(gè)參數(shù)存放后面的參數(shù)個(gè)數(shù),從而方便得到每個(gè)參數(shù)。因而在 收到數(shù)據(jù) 后 分離出“幀”的頭部,根據(jù)頭部的控制信息采取相應(yīng)的動(dòng)作,根據(jù)動(dòng)作類型 對(duì) 后 面 的數(shù)據(jù)進(jìn)行處理 , 從而能夠解決編碼問(wèn)題。 13 解決了“幀”格式界定的問(wèn)題,這樣能把每次發(fā)過(guò) 來(lái)的信息準(zhǔn)確的分離開(kāi),但是收到信息還是不知道要做什么。給每個(gè)幀加入開(kāi)始標(biāo)示符和結(jié)束符號(hào),在網(wǎng)絡(luò)中設(shè)計(jì)起始符號(hào)和結(jié)束符號(hào)時(shí)還要考慮到數(shù)據(jù)部分可能有與幀格式界定符號(hào)相同誤判的情況,但在本系統(tǒng)中就可以不用考慮此類問(wèn)題,由于本系統(tǒng)中傳輸?shù)亩际亲址畔ⅲ宜械男畔⒍际莵?lái)源于 用戶的輸入,也就是說(shuō) 每 個(gè)字符都是可顯示字符。 由于使用的是 TCP 協(xié)議,不會(huì)存在丟包的現(xiàn)象,但是會(huì)出現(xiàn)拆包現(xiàn)象, 為了能成功的解析對(duì)方發(fā)過(guò)來(lái)的信息,必
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1