版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄 TOC o 1-3 h z u 目錄 PAGEREF _Toc296674393 h 1第一章 系統(tǒng)分析 PAGEREF _Toc296674394 h 2一.可性行分析 PAGEREF _Toc296674395 h 2第二章 需求分析 PAGEREF _Toc296674396 h 2第三章 系統(tǒng)總體設(shè)計(jì) PAGEREF _Toc296674397 h 33.1總體設(shè)計(jì) PAGEREF _Toc296674398 h 33.2詳細(xì)設(shè)計(jì)模塊 PAGEREF _Toc296674399 h 43.3 數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc296674400 h 53.4數(shù)據(jù)庫(kù)需要分析 PA
2、GEREF _Toc296674401 h 53.4.1數(shù)據(jù)庫(kù)分析 PAGEREF _Toc296674402 h 53.4.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc296674403 h 73.4.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc296674404 h 9第四章 系統(tǒng)代碼設(shè)計(jì)及實(shí)現(xiàn) PAGEREF _Toc296674405 h 114.1 創(chuàng)建賓館客房管理信息系統(tǒng)的主登錄窗體 PAGEREF _Toc296674406 h 114.2創(chuàng)建公用模塊 PAGEREF _Toc296674407 h 134.3 創(chuàng)建賓館客房管理信息系統(tǒng)的主窗體 PAGEREF _Toc29
3、6674408 h 144.4 創(chuàng)建主窗體的菜單 PAGEREF _Toc296674409 h 154.5 客房標(biāo)準(zhǔn)設(shè)置 PAGEREF _Toc296674410 h 204.6 客房查詢 PAGEREF _Toc296674411 h 224.7 住宿查詢模塊設(shè)計(jì) PAGEREF _Toc296674412 h 234.8 退房查詢模塊設(shè)計(jì) PAGEREF _Toc296674413 h 244.9 日結(jié)統(tǒng)計(jì)報(bào)表模塊設(shè)計(jì) PAGEREF _Toc296674414 h 254.10 系統(tǒng)維護(hù)模塊設(shè)計(jì) PAGEREF _Toc296674415 h 26該模塊主要用于數(shù)據(jù)恢復(fù)及備份 用以保
4、證數(shù)據(jù)安全打開系統(tǒng)維護(hù)-數(shù)據(jù)備份 PAGEREF _Toc296674416 h 264.11 權(quán)限設(shè)置模塊 PAGEREF _Toc296674417 h 284.12 安全退出模塊設(shè)計(jì) PAGEREF _Toc296674418 h 30第五章 系統(tǒng)的編譯和發(fā)行 PAGEREF _Toc296674419 h 30第六章 實(shí)訓(xùn)總結(jié) PAGEREF _Toc296674420 h 31第一章 系統(tǒng)分析一.可性行分析可行性分析是指在允許的成本、性能要求下,分析每項(xiàng)需求實(shí)施的可行性,提出需求實(shí)現(xiàn)的相關(guān)風(fēng)險(xiǎn),包括與其它需求的沖突,對(duì)外界因素的依賴和技術(shù)障礙。可行性分析包括操作可行性、技術(shù)可行性、經(jīng)
5、濟(jì)可行性和進(jìn)度可行性。下面是對(duì)酒店管理系統(tǒng)的可行性分析。 1. 進(jìn)度可行性:鑒于本系統(tǒng)的目標(biāo)要求和特點(diǎn),能夠保證在預(yù)期的時(shí)間內(nèi)完成該系統(tǒng)的研究和設(shè)計(jì)。2.經(jīng)濟(jì)可行性:本系統(tǒng)開發(fā)完成后可縮減工作時(shí)間,提高工作效率,而且簡(jiǎn)單易操作,不需對(duì)使用人員進(jìn)行培訓(xùn),不管是在資金上還是效率上都能達(dá)到預(yù)期的效果。 3. 技術(shù)可行性:從目前比較流行的數(shù)據(jù)庫(kù)開發(fā)、管理軟件來(lái)看;對(duì)于比較簡(jiǎn)單的中小型數(shù)據(jù)庫(kù),VB.NET和SQL Server 2000的結(jié)合無(wú)疑是在實(shí)際應(yīng)用中較為成功的一種解決方案。前者為用戶提供了Windows所一貫堅(jiān)持的非常友好、操作簡(jiǎn)單的用戶界面.;后者則可對(duì)數(shù)據(jù)庫(kù)實(shí)施操作、維護(hù)和權(quán)限識(shí)別功能,也
6、可通過(guò)與SQL語(yǔ)句的結(jié)合對(duì)數(shù)據(jù)庫(kù)進(jìn)行更為復(fù)雜的操作。對(duì)本系統(tǒng)而言,上述的結(jié)合方式是可行的。第二章 需求分析(1)如果房客交的押金已經(jīng)不能支付住宿費(fèi)用,那么,房客需要去補(bǔ)交押金,這時(shí)可以添加房客的續(xù)住天數(shù)和應(yīng)交押金等信息。(2)因賓館需要人員進(jìn)行各個(gè)方面的管理,如總經(jīng)理、前臺(tái)等。這里建立一個(gè)數(shù)據(jù)庫(kù)來(lái)管理每個(gè)工作人員的信息,如用戶添加、刪除、修改密碼等,這有助于清晰的管理每個(gè)工作人員的信息。因權(quán)限不同,各個(gè)用戶進(jìn)入的界面不同,他們只能進(jìn)行權(quán)限之內(nèi)的操作。所有的用戶都可以在密碼更改中更改密碼。(3)房客來(lái)賓館入住時(shí),賓館的工作人員應(yīng)該可以添加房客的姓名和身份證等個(gè)人信息以客房的房號(hào)和押金等入住信息。
7、(4)如果房客為了節(jié)省時(shí)間,需要預(yù)定房間,可以添加預(yù)定信息。房客來(lái)到賓館之后,需要把預(yù)定信息,轉(zhuǎn)為入住信息,如果房客由于其余事情,不能來(lái)賓館入住,可以取消預(yù)定。(5)如果房客住宿時(shí)間期滿,可以退房。(6)如果房客對(duì)入住的房間不滿意,可以為房客換房。(7)按照賓館人員的操作習(xí)慣,可以對(duì)客房和客房類型信息進(jìn)行添加、修改、刪除和查詢操作。(8)系統(tǒng)運(yùn)行在Windows平臺(tái)上,要求有一個(gè)較好的圖形用戶界面,操作要求簡(jiǎn)單。(9)系統(tǒng)應(yīng)該有很好的可擴(kuò)展性,以便賓館根據(jù)實(shí)際情況添加新的功能。第三章 系統(tǒng)總體設(shè)計(jì)3.1總體設(shè)計(jì)賓館客房管理系統(tǒng)登 陸住宿管理客房管理查詢統(tǒng)一系統(tǒng)設(shè)置住宿登記追加押金退宿結(jié)帳客房設(shè)
8、置客房查詢住宿查詢退宿查詢操作員設(shè)置密碼設(shè)置總體設(shè)計(jì)圖3.2詳細(xì)設(shè)計(jì)模塊賓館客房管理系統(tǒng)登 陸住宿管理客房管理查詢統(tǒng)一系統(tǒng)設(shè)置賓館客房管理系統(tǒng)功能圖查詢統(tǒng)一住宿查詢退宿查詢查詢統(tǒng)一功能圖住宿管理住宿登記追加押金退宿結(jié)帳系統(tǒng)設(shè)置操作員設(shè)置密碼設(shè)置系統(tǒng)設(shè)置功能圖 住宿管理功能圖3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)首先應(yīng)該充分了解用戶各個(gè)方面的要求,包括現(xiàn)有的以及將來(lái)可能增加的要求。數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括如下幾個(gè)步驟: 1. 數(shù)據(jù)庫(kù)需要分析。2.數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。 3.數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)。3.4數(shù)據(jù)庫(kù)需要分析3.4.1數(shù)據(jù)庫(kù)分析用戶的需要具體體現(xiàn)在各種信息的提供,保存,更新和查詢等方面,這就要求數(shù)據(jù)庫(kù)結(jié)
9、構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。仔細(xì)分析調(diào)查有關(guān)賓館客房管理信息要求的基礎(chǔ)上,將得到如圖31所示的本系統(tǒng)所處理的數(shù)據(jù)流程??头繕?biāo)準(zhǔn)設(shè)置結(jié)算信息管理顧客登記客房標(biāo)準(zhǔn)信息管理訂房信息管理客房登記客戶信息管理基本信息錄入客房信息返回基本信息錄入訂房信息輸入結(jié)算信息輸入賓館客房管理信息系統(tǒng)數(shù)據(jù)流程圖 針對(duì)一般賓館客房管理信息系統(tǒng)的需求,通過(guò)對(duì)賓館客房管理工作過(guò)程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu): 客房標(biāo)準(zhǔn)信息,包括的數(shù)據(jù)項(xiàng)有:標(biāo)準(zhǔn)編號(hào),標(biāo)準(zhǔn)名稱,房間面積,床位數(shù)量,住房單價(jià),是否有空調(diào),
10、電視,電話,單獨(dú)衛(wèi)生間等。 客房信息,表格的數(shù)據(jù)項(xiàng)有:客房編號(hào),客房種類,客房位置,客房單價(jià),備注等。 訂房信息,包括的數(shù)據(jù)項(xiàng)有:訂房編號(hào),客房編號(hào),客房種類,客房位置,客房備注信息,顧客姓名,顧客身份證號(hào)碼,入住時(shí)間,折扣,備注等。 結(jié)算信息,包括的數(shù)據(jù)項(xiàng)有:訂房編號(hào),客房編號(hào),客房種類,客房位置,客房備注信息,顧客姓名,顧客身份證號(hào)碼,入住時(shí)間,折扣,結(jié)算時(shí)間,備注等。有了上面的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)項(xiàng)和數(shù)據(jù)流程,我們就能進(jìn)行下面的數(shù)據(jù)庫(kù)設(shè)計(jì)。3.4.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。本實(shí)例
11、根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:客房標(biāo)準(zhǔn)信息實(shí)體,客房信息實(shí)體,訂房信息實(shí)體,結(jié)算信息實(shí)體。各個(gè)實(shí)體具體的描述E-R圖如下。客房標(biāo)準(zhǔn)信息實(shí)體E-R圖如圖所示:客戶標(biāo)準(zhǔn)信息實(shí)體標(biāo)準(zhǔn)編號(hào)標(biāo)準(zhǔn)名稱床位數(shù)量客房單價(jià) 客房信息實(shí)體E-R圖如圖所示: 客戶信息實(shí)體標(biāo)準(zhǔn)編號(hào)客房標(biāo)準(zhǔn)客戶位置客房單價(jià)客戶信息實(shí)體訂房信息實(shí)體E-R圖如圖所示:訂房信息實(shí)體客房信息顧客信息入住時(shí)間折扣 結(jié)算信息實(shí)體E-R圖如圖所示:結(jié)算信息實(shí)體客房信息顧客信息結(jié)算時(shí)間結(jié)算金額 實(shí)體之間關(guān)系的E-R圖如圖所示:客戶標(biāo)準(zhǔn)信息實(shí)體結(jié)算信息管理客房信息實(shí)體訂房信息實(shí)體客房登記訂房客房結(jié)算實(shí)體 3.4.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)現(xiàn)在需要將上面的數(shù)
12、據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)體數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。賓館客房管理信息系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如下面表格所示。每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。TB_djb 住房登記表:Tb_kf房間標(biāo)準(zhǔn)詳細(xì)表:Tb_qxsz賬戶權(quán)限設(shè)置表: Tb_tfdj退房登記表: Tb_user:登錄用戶表:第四章 系統(tǒng)代碼設(shè)計(jì)及實(shí)現(xiàn)至此有關(guān)數(shù)據(jù)庫(kù)的設(shè)計(jì)和完善既所有后臺(tái)工作初步完成 有了數(shù)據(jù)庫(kù)和數(shù)據(jù)。現(xiàn)在將通過(guò)vb逐塊來(lái)設(shè)計(jì) 賓館客房管理信息系統(tǒng)中各個(gè)功能模塊的功能:4.1 創(chuàng)建賓館客房管理信息系統(tǒng)的主登錄窗體用戶登錄窗體中放置了二個(gè)文本框(TextBox),用來(lái)輸入用戶名和用戶密碼:二個(gè)按鈕(
13、CommandButton)用來(lái)確定或者取消登錄:三個(gè)標(biāo)簽(Label)用來(lái)標(biāo)示窗體的信息。這些控件的屬性設(shè)置見表。控件屬性屬性取值FrmLogin(Form)NamefrmLoginCaption登錄StartUpPositionCenterScreenWindowStateNomalTxtusernamenameTxtusernametxtpasswordnametxtpasswordpasswordchar*cmdoknameCmdokcaption確定cmdcanelNamecmdcanelcaption取消Label1caption賓館客房管理系統(tǒng)Label2caption用戶名La
14、bel3caption用戶密碼雙擊確定輸入以下代碼完成登錄判斷:Private Sub Image1_Click()Static itimes As Integer Main.StatusBar1.Panels(4).text = Text1.text 賦值給main.StatusBar1.Panels(4).Text 驗(yàn)證操作員及密碼 Adodc1.RecordSource = select * from tb_user where 操作員= + Text1.text + Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then 如果記錄數(shù)大
15、于零 驗(yàn)證密碼 If Text2.text = Adodc1.Recordset.Fields(密碼) Then Load Main Main.Show Unload Me Else If Text2.text Adodc1.Recordset.Fields(密碼) Then MsgBox 密碼錯(cuò)誤,請(qǐng)重新輸入!, vbCritical, 系統(tǒng)提示 itimes = itimes + 1 Text2.text = Text2.SetFocus End If End If Else MsgBox 操作員不存在,請(qǐng)重新輸入!, vbCritical, 系統(tǒng)提示 itimes = itimes +
16、1 Text1.text = Text2.text = Text1.SetFocus End If If itimes = 3 Then 錯(cuò)誤3次,退出系統(tǒng) MyMsg = MsgBox(輸入錯(cuò)誤,請(qǐng)向系統(tǒng)管理員查詢!, vbCritical, 系統(tǒng)提示) If MyMsg = vbOK Then End End IfEnd Sub以下代碼用于權(quán)限設(shè)置 當(dāng)系統(tǒng)中不存在任何賬戶 第一次登錄時(shí)會(huì)要求設(shè)置該賬號(hào)權(quán)限Private Sub Form_Activate() 當(dāng)記錄為零時(shí),進(jìn)入系統(tǒng)具有所有權(quán)限 If Adodc1.Recordset.RecordCount = 0 Then MsgBox
17、請(qǐng)先設(shè)置操作員密碼和權(quán)限!, , 系統(tǒng)提示 Load Main Main.Show Unload Me Else Text1.SetFocus End IfEnd Sub當(dāng)用戶輸入完用戶名要輸入密碼時(shí)可以按回車系統(tǒng)自動(dòng)定位到下一個(gè)文本框 實(shí)現(xiàn)代碼如下:Private Sub text2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Image1_Click 按回車鍵進(jìn)入End SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As
18、 Integer) If KeyCode = vbKeyReturn Then Text2.SetFocus 按回車鍵,text2獲得焦點(diǎn)End Sub總體的登錄窗口調(diào)試效果如下:用戶運(yùn)行系統(tǒng)首先將出現(xiàn)該登陸框,如果輸入的用戶名在用戶表中沒(méi)有找到,將提示重新輸入用戶名,文本框txt1將重新獲得輸入焦點(diǎn)。如果用戶輸入的密碼不正確,文本框txt2將重新獲得輸入焦點(diǎn)。用戶登錄成功,全局變量ok將被賦值為true。一旦三次輸入密碼均不正確,全局變量ok將被賦值為false。系統(tǒng)強(qiáng)制退出。4.2創(chuàng)建公用模塊在Visual Basic中可以用公用模塊來(lái)存放整個(gè)工程項(xiàng)目公用的函數(shù),過(guò)程和全局變量等。這樣可以
19、極大的提高代碼的效率。在項(xiàng)目資源管理器中為項(xiàng)目添加一個(gè)Module,保存為Module 1.bas。下面就可以開始添加需要的代碼了。Public adocon As New ADODB.ConnectionPublic adoRs As New ADODB.RecordsetPublic Sub Main() adocon.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;Data Source=piglet 連接到本機(jī)的kf
20、xt sql數(shù)據(jù)庫(kù)End SubPublic Function ESQL(ByVal sql As String) As ADODB.Recordset 定義函數(shù) 定義連接 Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset 創(chuàng)建連接 Set cnn = New ADODB.Connection 打開連接 cnn.Open StrCnn Set rs = New ADODB.Recordset rs.Open Trim(sql), cnn, adOpenKeyset, adLockOptimistic Set ESQL = rsEnd F
21、unctionPublic Function StrCnn() 返回一個(gè)數(shù)據(jù)庫(kù)連接 StrCnn = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;Data Source=pigletEnd Function4.3 創(chuàng)建賓館客房管理信息系統(tǒng)的主窗體添加一個(gè)窗體 然后在該窗體上添加好所用的控件,添加后如圖示;窗體和控件的主要屬性設(shè)置見下表??丶傩詫傩匀≈礔rmMain(Form)NameFrmMainCaption賓館客房管理信息系
22、統(tǒng)StartupPositionCenterScreenWindowStateMaximizedSbStatusBar(StatusBar)NameStyleSbStatusBarPanels(1)StyleSbrTextPanels(2)StyleSbrDatePanels(3)StyleSbrTime在主窗體中加入狀態(tài)欄控件,可以實(shí)時(shí)反映系統(tǒng)中的各個(gè)狀態(tài)的變化。狀態(tài)欄控件需要在通常的屬性窗口中設(shè)置一般屬性,還需要在特有的彈出式菜單中進(jìn)行設(shè)置。選擇狀態(tài)欄控件,單擊鼠標(biāo)右鍵,選中Property菜單,然后設(shè)置屬性。面板1用來(lái)顯示當(dāng)前日期,面板2用來(lái)顯示當(dāng)前時(shí)間,面板3用來(lái)顯示系統(tǒng)信息。面板4顯
23、示 操作員信息。如圖:4.4 創(chuàng)建主窗體的菜單1.在如圖所示的主窗體中,單擊鼠標(biāo)右鍵,選擇彈出式菜單中的“Menu Editor”命令,創(chuàng)建如圖所示菜單結(jié)構(gòu):2:添加用戶窗體的創(chuàng)建進(jìn)入系統(tǒng)后,選擇菜單“系統(tǒng)|添加用戶”,就可以添加用戶,出現(xiàn)添加用戶的窗體:在這個(gè)窗體中放置了二個(gè)文本框,用來(lái)輸入密碼和確認(rèn)密碼,二個(gè)按鈕用來(lái)確定是否修改密碼,二個(gè)標(biāo)簽用來(lái)標(biāo)示文本框的內(nèi)容,這些控件屬性的設(shè)置見下表:控件屬性屬性取值Frmadduser (Form)NameFrmadduserCaption添加用戶StartUpPositionCenterScreenWindowStateNomaltxtuserna
24、menametxtusernameTxtpassword1nameTxtpassword1passwordchar*Txtpassword2nameTxtpassword2passwordchar*CmdoknameCommand1caption確定cmdcanelNameCommand2caption取消Label1caption操作元Label2caption密碼Label3caption確認(rèn)二次輸入密碼后,單擊Command1按鈕,將觸發(fā)click事件判斷是否修改密碼,代碼如下:Private Sub Command1_Click() 修改操作員密碼Adodc1.RecordSource
25、 = select * from tb_qxsz where 操作員= + Text1.text + Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then ma.text = Adodc1.Recordset.Fields(密碼) Else ma.text = MsgBox 不存在該操作員!, , 系統(tǒng)提示 Exit Sub End If If Text1.text And Text2.text And Text2.text = Adodc1.Recordset.Fields(密碼) Then If Text3.text Then adoc
26、on.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;Data Source=piglet Set adoRs = adocon.Execute(update tb_qxsz set 密碼= + Text3.text + where 操作員= + Text1.text + ) adocon.Close Dim rs1 As New ADODB.Recordset rs1.Open select * from tb_user
27、where 操作員= + Text1.text + , StrCnn, adOpenKeyset, adLockPessimistic If rs1.RecordCount 0 Then rs1.Fields(密碼) = Text3.text rs1.Update rs1.Close End If MsgBox 密碼修改成功,退出操作員密碼修改!, , 系統(tǒng)提示 Main.Enabled = True Unload Me Else MsgBox 請(qǐng)輸入新密碼!, , 系統(tǒng)提示 End If Else If Text1.text = Then MsgBox 請(qǐng)輸入操作員!, , 系統(tǒng)提示 Tex
28、t1.SetFocus Else If Text1.text Adodc1.Recordset.Fields(操作員) Then Text1.SetFocus Text1.text = MsgBox 無(wú)此操作員,請(qǐng)重新輸入!, , 系統(tǒng)提示 End If End If If Text2.text = Then MsgBox 請(qǐng)輸入操作員原密碼!, , 系統(tǒng)提示 Text2.SetFocus Else If Text2.text ma.text Then MsgBox 原密碼錯(cuò)誤,請(qǐng)重新輸入原密碼!, , 系統(tǒng)提示 Text2.text = Text2.SetFocus End If End I
29、f End IfEnd Sub3.操作員密碼修改窗體創(chuàng)建用戶可以修改自己的密碼,選擇菜單“系統(tǒng)|密碼設(shè)置”出現(xiàn)如圖所示的窗體:在這個(gè)窗體中放置了二個(gè)文本框,用來(lái)輸入密碼和確認(rèn)密碼,二個(gè)按鈕按鈕用來(lái)確定是否修改密碼,二個(gè)標(biāo)簽用來(lái)標(biāo)示文本框的內(nèi)容,這些控件屬性的設(shè)置見下表控件屬性屬性取值Frmmodifyuserinfo (Form)NameFrmmodifyuserinfoCaption密碼設(shè)置StartUpPositionCenterScreenWindowStateNomalTxtpassword1nameTxtpassword1passwordchar*Txtpassword2nameTx
30、tpassword2passwordchar*CmdoknameCommand1caption確定cmdcanelNameCommand2caption取消Label1caption操作員Label2caption原密碼Label3caption新密碼二次輸入密碼后,單擊Command1按鈕,將觸發(fā)click事件判斷是否修改密碼。Private Sub Command1_Click() 修改操作員密碼Adodc1.RecordSource = select * from tb_qxsz where 操作員= + Text1.text + Adodc1.Refresh If Adodc1.Rec
31、ordset.RecordCount 0 Then ma.text = Adodc1.Recordset.Fields(密碼) Else ma.text = MsgBox 不存在該操作員!, , 系統(tǒng)提示 Exit Sub End If If Text1.text And Text2.text And Text2.text = Adodc1.Recordset.Fields(密碼) Then If Text3.text Then adocon.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=Fals
32、e;User ID=sa;Initial Catalog=kfxt;Data Source=piglet Set adoRs = adocon.Execute(update tb_qxsz set 密碼= + Text3.text + where 操作員= + Text1.text + ) adocon.Close Dim rs1 As New ADODB.Recordset rs1.Open select * from tb_user where 操作員= + Text1.text + , StrCnn, adOpenKeyset, adLockPessimistic If rs1.Reco
33、rdCount 0 Then rs1.Fields(密碼) = Text3.text rs1.Update rs1.Close End If MsgBox 密碼修改成功,退出操作員密碼修改!, , 系統(tǒng)提示 Main.Enabled = True Unload Me Else MsgBox 請(qǐng)輸入新密碼!, , 系統(tǒng)提示 End If Else If Text1.text = Then MsgBox 請(qǐng)輸入操作員!, , 系統(tǒng)提示 Text1.SetFocus Else If Text1.text Adodc1.Recordset.Fields(操作員) Then Text1.SetFocus
34、 Text1.text = MsgBox 無(wú)此操作員,請(qǐng)重新輸入!, , 系統(tǒng)提示 End If End If If Text2.text = Then MsgBox 請(qǐng)輸入操作員原密碼!, , 系統(tǒng)提示 Text2.SetFocus Else If Text2.text ma.text Then MsgBox 原密碼錯(cuò)誤,請(qǐng)重新輸入原密碼!, , 系統(tǒng)提示 Text2.text = Text2.SetFocus End If End If End IfEnd Sub4.5 客房標(biāo)準(zhǔn)設(shè)置賓館在運(yùn)行中需要設(shè)置不同的客房標(biāo)準(zhǔn)來(lái)適應(yīng)不同消費(fèi)水平顧客的需要。對(duì)于每個(gè)客房標(biāo)準(zhǔn),有不同的硬件設(shè)施和服務(wù)。打
35、開客房管理|客房設(shè)置 可以添加新房間并設(shè)置客房標(biāo)準(zhǔn) 如圖: 客房標(biāo)準(zhǔn)管理模塊主要實(shí)現(xiàn)如下:控件屬性屬性取值FrmRoomtype1(Form)NamefrmsinfoCaption客房標(biāo)準(zhǔn)MDIChildTrueTxtItem(0) TxtItem(4)NameTxtItem(0) TxtItem(4)Combo1(0) Combo1(3)NameCombo1(0) Combo1(3)CmdSaveNameCmdOKCaption保存CmdExitNameCmdCancelCaption取消添加Label1Caption房間號(hào)Label2Caption房間類型Label4Caption房態(tài)La
36、bel5Caption價(jià)格Label6Caption營(yíng)業(yè)時(shí)間Label7Caption使用設(shè)備Label8Caption配置Label9Caption備注雙擊登記Sub comdj按鈕 添加如下代碼:Private Sub comdj_Click() 登記 Texfjh.Enabled = True Combo1.Enabled = True Combo2.Enabled = True Texjg.Enabled = True DTP1.Enabled = True Texsz.Enabled = True Texpz.Enabled = True Texbz.Enabled = True T
37、exfjh.text = : Texjg.text = : Texsz.text = Texpz.text = : Texbz.text = Comsave.Enabled = True: Comcancel.Enabled = True: Comdj.Enabled = False Texfjh.SetFocusEnd Sub 雙擊Comsave 按鈕添加下列代碼:Private Sub comsave_Click() 查找客房信息 Adodc1.RecordSource = select * from tb_kf where 房間號(hào)= & Trim(Texfjh.text) & Adodc
38、1.Refresh If Adodc1.Recordset.RecordCount 0 Then 如果記錄數(shù)大于零 If Adodc1.Recordset.Fields(房態(tài)) = 入住 Then MsgBox 該房間正在使用,請(qǐng)客人退房后再修改信息 Exit Sub End If If MsgBox(該客房已存在,確認(rèn)修改客房信息, 4) = vbYes Then If Texfjh.text Then Adodc1.Recordset.Fields(房間號(hào)) = Texfjh.text If Combo2.text Then Adodc1.Recordset.Fields(房態(tài)) = Co
39、mbo2.text If Combo1.text Then Adodc1.Recordset.Fields(房間類型) = Combo1.text If Texjg.text Then Adodc1.Recordset.Fields(價(jià)格) = Texjg.text Adodc1.Recordset.Fields(使用設(shè)置) = Texsz.text Adodc1.Recordset.Fields(配置) = Texpz.text Adodc1.Recordset.Fields(備注) = Texbz.text Adodc1.Recordset.Fields(標(biāo)志) = 0 Adodc1.Re
40、cordset.Update End If Else If MsgBox(添加新房間?, 4) = vbYes Then adocon.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;Data Source=piglet adoRs.Open select * from tb_kf, adocon, adOpenKeyset, adLockOptimistic adoRs.AddNew adoRs.Fields(房間號(hào)) =
41、 Texfjh.text adoRs.Fields(房間類型) = Combo1.text adoRs.Fields(房態(tài)) = Combo2.text adoRs.Fields(價(jià)格) = Texjg.text adoRs.Fields(營(yíng)業(yè)日期) = DTP1.Value adoRs.Fields(使用設(shè)置) = Texsz.text adoRs.Fields(配置) = Texpz.text adoRs.Fields(備注) = Texbz.text adoRs.Fields(標(biāo)志) = 0 adoRs.Update 更新記錄 adocon.Close End If End If Ado
42、dc1.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;Data Source=piglet Adodc1.RecordSource = select * from tb_kf Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 Unload Me main_kfgl.Show 設(shè)置控件有效或無(wú)效 Comsave.Enabled = False: Co
43、mcancel.Enabled = False Comend.Enabled = True: Comdj.Enabled = TrueEnd SubPrivate Sub comcancel_Click() 取消操作 Texfjh.text = : Texjg.text = : Texsz.text = Texpz.text = : Texbz.text = Comsave.Enabled = False: Comcancel.Enabled = False: Comdj.Enabled = TrueEnd SubPrivate Sub comend_Click() Main.Enabled
44、= True Unload MeEnd Sub4.6 客房查詢 客房信息管理模塊主要實(shí)現(xiàn)如下功能: 添加設(shè)置客房信息、查詢客房信息。執(zhí)行 菜單客房管理-客房查詢打開如下對(duì)話框代碼實(shí)現(xiàn)如下:Private Sub Command2_Click() 查詢 Adodc1.RecordSource = select * from tb_kf where 房間號(hào) like % + Text1.text + % Adodc1.RefreshEnd SubPrivate Sub Form_Load() Adodc1.ConnectionString = Provider=SQLOLEDB.1;Integra
45、ted Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;Data Source=piglet Adodc1.RecordSource = select * from tb_kf Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 DataGrid1.Columns(4).Width = 0End SubPrivate Sub Form_Unload(Cancel As Integer) Main.Enabled = TrueEnd SubPrivat
46、e Sub Command3_Click() Main.Enabled = True Unload MeEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then Command2.SetFocus 按回車鍵Command2獲得焦點(diǎn)End Sub4.7 住宿查詢模塊設(shè)計(jì) 點(diǎn)擊查詢統(tǒng)計(jì)下的住宿查詢 即可打開如下對(duì)話框 添加了一個(gè)DataGrid1控件實(shí)現(xiàn)數(shù)據(jù)顯示雙擊查詢按鈕輸入代碼如下Private Sub Command1_Click() 查詢住宿信息 Adodc1.Re
47、cordSource = select * from tb_djb where 姓名 like % + Text1.text + % Adodc1.Refresh MSHFlexGrid1.ColWidth(8) = 0 MSHFlexGrid1.ColWidth(20) = 0 MSHFlexGrid1.ColWidth(24) = 0 MSHFlexGrid1.ColWidth(25) = 0 MSHFlexGrid1.ColWidth(27) = 0End Sub:4.8 退房查詢模塊設(shè)計(jì)點(diǎn)擊菜單 查詢統(tǒng)計(jì)-退宿查詢即可打開該對(duì)話框 核心代碼如下:Private Sub Command1
48、_Click() 查詢信息Adodc1.RecordSource = select * from tb_tfd where tb_tfd.姓名 = & Text1.text & Adodc1.RefreshEnd SubPrivate Sub Command2_Click() 刪除退宿記錄 If Adodc1.Recordset.RecordCount 0 Then 如果記錄大于零 A = MsgBox(確定刪除該記錄?, 4, 系統(tǒng)提示) If A = vbYes Then Adodc1.Recordset.Delete Adodc1.Refresh Set DataGrid1.DataSo
49、urce = Adodc1 End If Text1.text = Else MsgBox 記錄為空!, , 系統(tǒng)提示 End IfEnd Sub4.9 日結(jié)統(tǒng)計(jì)報(bào)表模塊設(shè)計(jì)單擊日結(jié)-登記預(yù)收?qǐng)?bào)表 打開如下對(duì)話框核心代碼實(shí)現(xiàn)如下Private Sub Command1_Click() 統(tǒng)計(jì)應(yīng)收宿費(fèi)、預(yù)收宿費(fèi) If DTP1.Value & Val(G1.text) & and tb_djys.BZ & Val(G1.text) & and tb_djys.Bz & Val(G2.text) & Adodc2.Refresh If Adodc2.Recordset.Fields(1) Then
50、Labys.Caption = Format(Adodc2.Recordset.Fields(1), 0.00) Else Labys.Caption = 0 If Adodc2.Recordset.Fields(2) Then Labyj.Caption = Format(Adodc2.Recordset.Fields(2), 0.00) Else Labyj.Caption = 0 Else MsgBox 日期不能顛倒, 4, 系統(tǒng)提示 DTP2.Value = Date End IfEnd Sub4.10 系統(tǒng)維護(hù)模塊設(shè)計(jì)該模塊主要用于數(shù)據(jù)恢復(fù)及備份 用以保證數(shù)據(jù)安全打開系統(tǒng)維護(hù)-數(shù)據(jù)備
51、份代碼如下Private Sub Command1_Click() A = MsgBox(確定備份數(shù)據(jù)?, 4, 系統(tǒng)提示) If A = vbYes Then Command1.Enabled = False ProgressBar1.Visible = True ProgressBar1.Max = UBound(workarea) ProgressBar1.Value = ProgressBar1.Min For Counter = LBound(workarea) To UBound(workarea) workarea(Counter) = initial value & Count
52、er ProgressBar1.Value = Counter Open str1 For Binary As #1 Open str2 For Binary As #2 Do While Not EOF(1) Get #1, , char Put #2, , char Loop Close Next Counter ProgressBar1.Value = ProgressBar1.Min MsgBox 數(shù)據(jù)庫(kù)備份成功!, , 系統(tǒng)提示 Command1.Enabled = True End IfEnd Sub數(shù)據(jù)恢復(fù)模塊如下圖核心代碼如下:Private Sub Command1_Clic
53、k() A = MsgBox(確認(rèn)恢復(fù)數(shù)據(jù)庫(kù)?, 4, 系統(tǒng)提示) If A = vbYes Then Command1.Enabled = False ProgressBar1.Visible = True ProgressBar 控件通過(guò)從左到右用一些方塊填充矩形來(lái)表示一個(gè)較長(zhǎng)操作的進(jìn)度。 ProgressBar1.Max = UBound(workarea) ProgressBar1.Value = ProgressBar1.Min For Counter = LBound(workarea) To UBound(workarea) LBound 函數(shù)返回一個(gè) Long 型數(shù)據(jù),其值為指
54、定數(shù)組維可用的最小下標(biāo)。 UBound 函數(shù)返回一個(gè) Long 型數(shù)據(jù),其值為指定的數(shù)組維可用的最大下標(biāo)。 workarea(Counter) = initial value & Counter ProgressBar1.Value = Counter Open str1 For Binary As #1 Open str2 For Binary As #2 Do While Not EOF(1) Get #1, , char Put #2, , char Loop Close Next Counter ProgressBar1.Value = ProgressBar1.Min MsgBox
55、數(shù)據(jù)庫(kù)恢復(fù)成功!, , 系統(tǒng)提示 Command1.Enabled = TrueEnd IfEnd Sub4.11 權(quán)限設(shè)置模塊 該模塊主要為超級(jí)管理員登錄后為各個(gè)操作員設(shè)置權(quán)限。執(zhí)行系統(tǒng)設(shè)置-權(quán)限設(shè)置 打開如下對(duì)話框左邊為已存在的操作員數(shù)據(jù)。選定操作員在右邊勾選賦予其相應(yīng)的權(quán)限代碼如下:Private Sub Form_Load() Adodc1.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;
56、Data Source=piglet Adodc1.RecordSource = select * from tb_qxsz Adodc1.Refresh Adodc2.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kfxt;Data Source=piglet Adodc2.RecordSource = select * from tb_qxsz Adodc2.Refresh Set DataList1
57、.RowSource = Adodc2End SubPrivate Sub Form_Unload(Cancel As Integer) Main.Enabled = TrueEnd SubPrivate Sub Datalist1_Click() On Error Resume Next Adodc1.RecordSource = select * from tb_qxsz where 操作員= & DataList1.BoundText & Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then For i = 0 To 16 If Adodc1.Recordset.Fields(i) = -1 Then Check1(i).Value = 1 Else Check1(i).Value = 0 Next i Else DataList1.BoundText = 0 End
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 著眼幼小銜接助力兒童成長(zhǎng)幼小銜接培訓(xùn)
- 掌握結(jié)構(gòu)化表達(dá)提升溝通效率
- 食材加工知識(shí)培訓(xùn)課件
- 二零二五年度大數(shù)據(jù)分析與應(yīng)用簡(jiǎn)易技術(shù)服務(wù)合同范本2篇
- 2025年度酒店甲醛濃度達(dá)標(biāo)治理合同范本3篇
- 二零二五年度建筑工程施工現(xiàn)場(chǎng)用電補(bǔ)充協(xié)議范本3篇
- 中學(xué)生寒假計(jì)劃安排
- 四川省眉山市仁壽縣2024-2025學(xué)年高二上學(xué)期期末考試歷史試題(含答案)
- 人教版九年級(jí)歷史與社會(huì)上冊(cè)說(shuō)課稿:第一單元 第一課 世界的格局與第一次世界大戰(zhàn)
- Unit 3 Where did you go?PartC (說(shuō)課稿)-2023-2024學(xué)年人教PEP版英語(yǔ)六年級(jí)下冊(cè)
- 政府采購(gòu)評(píng)審專家考試試題庫(kù)(完整版)
- 合作投資酒店意向合同范例
- 安全教育教案大班40篇
- 叉車工安全培訓(xùn)資料
- 九年級(jí)英語(yǔ)教學(xué)反思
- 外研新標(biāo)準(zhǔn)初中英語(yǔ)七年級(jí)上冊(cè)冊(cè)寒假提升補(bǔ)全對(duì)話短文練習(xí)三附答案解析
- 《旅游消費(fèi)者行為學(xué)》-課程教學(xué)大綱
- YY/T 1117-2024石膏繃帶
- 蘇教版小學(xué)三年級(jí)科學(xué)上冊(cè)單元測(cè)試題附答案(全冊(cè))
- 2024年人教版初一語(yǔ)文(上冊(cè))期末試卷及答案(各版本)
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題及答案
評(píng)論
0/150
提交評(píng)論