【文章內(nèi)容簡介】
ual Basic ,SQL Server 2000,Access 2003 關(guān)系模式形成以及規(guī)范 :PW(user,pwd,power)。Empl(eid,ename,eage,esex,eaddress,etel,ejob,ejtime,ejage)。Fix(Fid,fname,froom,fstatue,ffdate,fpay,fman,fuser)。Gmanage(Gid,gname,gtype,gnum,gprice,guse,gsum,gdate,guser,gdw)。Roomlogin(Rid,rname,rtype,rdescribe,rprice,rstatue,ruser)。Reminder(remid,remname,remdate,remtype,remstatue,remuser)。Smanage(Sid,sreason,sin,sout,ssum,sdate,sman,sp,suser)。Cmanage(umber,ame,cictype,cium,csex,caddress,ctel,cmember,croom,ctype,cprice, cindate,cintype,coutdate,cya,cyaadd,cstatue,cchange,creason,cmtel,cmmeeting,cmcar,cmdamage,cmother,cmshould,cmpay,cmback,cuser)。 :1) 各分量都是不可分割的數(shù)據(jù)項(xiàng)。滿足第一范式;2) 每一個關(guān)系中的非碼屬性都完全函數(shù)依賴于碼,符合第二范式;3) 每個關(guān)系中的主屬性不傳遞依賴關(guān)系中的每個關(guān)系鍵,符合第三范式;4) 關(guān)系中所有非主屬性對每個碼都是完全依賴,且所有主碼對于每個不包含它的碼也是完全函數(shù)依賴,沒有任 何屬性完全函數(shù)依賴非碼的任何一組屬性四、創(chuàng)建數(shù)據(jù)庫 1)創(chuàng)建數(shù)據(jù)庫,讓數(shù)據(jù)庫可以動態(tài)增長 create database hotel on (name=hotel_data,filename=39。E:\39。,size=5mB,maxsize=20mb,filegrowth=10%)log on(name=hotel_log,filename=39。E:\39。,size=2mb,maxsize=5mb,filegrowth=1mb)go 2)創(chuàng)建PW用戶表 use hotel go create table pw (user char (12) not null primary key, Pwd char(8) not null, Power char(1) not null ) go 3)創(chuàng)建客房登記表RoomLogin create table roomlogin (rid char (12) not null, Rname char(20) not null primary key, Rtype char(10) not null Rdescribe char(100), Rprice money not null, Rstatue char(8) not null, Ruser char(12) not null,) go 4)同上創(chuàng)建提醒表Reminder、物品表Gmanage、維修表fix、員工表Empl、帳務(wù)表Smanage、客戶如住表Cmanage五、程序以及調(diào)試和使用說明 [說明:進(jìn)入登陸界面后,系統(tǒng)會自動加載已有的用戶,讓用戶選擇自己的帳戶進(jìn)行登陸,密碼 輸入三次后關(guān)閉窗口;用控件屬性設(shè)置來實(shí)現(xiàn)用戶定義的完整性:密碼最大長度為8。用戶名錯誤,或密碼錯誤,系統(tǒng)都會對其進(jìn)行提醒,以達(dá)到正確輸入,本程序設(shè)置一超級用戶:admin,權(quán)限為1,其他用戶的權(quán)限均為0。超級用戶能對押金進(jìn)行追加,其他用戶必須在超級用戶協(xié)助下才能完成押金追加] 主面板[說明:主界面用VB中的MDIForm,多入口提供給用戶操作,包括菜單欄、工具欄(可選擇顯示和不顯示)、側(cè)邊欄(可隱藏)、主面板Panel(提供操作員最常用的操作,節(jié)約時間),在狀態(tài)欄可以顯示系統(tǒng)時間和當(dāng)前用戶以及需要維修的房間數(shù)。實(shí)現(xiàn)了所有要求的功能] [說明:提供兩種風(fēng)格供用戶選擇。在vb模塊里有一函數(shù)change(),一變量保存當(dāng)前風(fēng)格類型,當(dāng)每次show一窗口時,就會調(diào)用該函數(shù)通過變量判斷是顯示那種風(fēng)格] [說明:在主面板上的快速入口上點(diǎn)擊房態(tài)查詢,顯示當(dāng)前房間入住圖形界面。直觀、方便。點(diǎn)擊房間能顯示在該房間入住過的客戶。嵌入的查詢語句為:select umber,ame,cictype,cium,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatue from cmanage where croom=39。 amp。 Command1(Index).Caption amp。 39。,Command1(Index).Caption為當(dāng)前按下的要查詢的房間按鈕的名稱] 入住登記和預(yù)定房間 [說明:點(diǎn)登記,系統(tǒng)自動在 roomlogin表中rstatue=39??臻e39。的房間名字添加到 房間號碼的下拉列表中,供客戶選擇房間,用戶可以選擇現(xiàn)開/預(yù)定當(dāng)用戶選擇下拉列表中的一個房間時,系統(tǒng)自動將roomlogin中該房間的標(biāo)準(zhǔn)類型,價格自動加載顯示,房間狀況一目了然。其他用戶自定義完整性約束都通過對控件的屬性設(shè)置來完成,當(dāng)用戶輸入數(shù)據(jù)破壞完整性時,系統(tǒng)會發(fā)出警告,以保持?jǐn)?shù)據(jù)庫的完整性] 調(diào)房,住宿、退宿查詢 [說明:通過入口可以打開窗體。當(dāng)客戶需要調(diào)整房間時,點(diǎn)登記后,系統(tǒng)自動加載已入住客戶的房間和空閑的房間號碼,當(dāng)用戶選擇要調(diào)房的客戶時,系統(tǒng)自動加載客戶的信息。選擇目標(biāo)房間時候,系統(tǒng)自動加載房間信息。用戶確定調(diào)房后,系統(tǒng)修改數(shù)據(jù)庫:原房間狀態(tài)改為空閑,目標(biāo)房間改為入住。原住房產(chǎn)生的費(fèi)用將加在新入住房間上,而提醒表中原房間改為現(xiàn)房間。因而需要修改三個表:Cmanage,roomlogin,:select umber,ame,cictype,cium,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatue from cmanage,其他查詢語句雷同,此后不在贅述。在文本框里輸入要查詢的姓名,MSFlexGrid空間將會顯示查詢結(jié)果,嵌入的查詢語句為: select umber,ame,cictype,cium,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatue from cmanage where ame like 39。 amp。 amp。 *39。] 掛帳,結(jié)帳,日報(bào)表,追加押金[說明:,當(dāng)用戶選擇客戶號碼時候,系統(tǒng)自動加載客戶信息,用戶添加押金后,保存時系統(tǒng)對cmanage表進(jìn)行修改,保存數(shù)據(jù);結(jié)帳窗體。系統(tǒng)自動加載已入住還沒退房的房間號,用戶選擇要退房的房間號,系統(tǒng)加載客戶信息以需付款和明細(xì)供核對,確定結(jié)帳后,系統(tǒng)將對 cmanage表,smanage,reminder,roomlogin進(jìn)行修改,以保持?jǐn)?shù)據(jù)庫的參照完整性。如果是掛帳,用戶可以選擇掛帳,在客戶結(jié)帳的時候,調(diào)出掛帳結(jié)帳窗體,系統(tǒng)自動加載掛帳的單位,用戶選擇掛帳單位,系統(tǒng)自動加載需還金額。掛帳結(jié)帳只對smanage表操作。而日報(bào)表顯示smange里的信息,提供按日期查找的方法,打印當(dāng)天的帳務(wù)明細(xì)。查詢的嵌入sql語句為:select sreason,sin,sout,ssum,sdate,sman,sp,suser from smanage where sdate = amp。 amp。 。在該處開始一直調(diào)試不出,后來發(fā)現(xiàn)在sql語句中對日期要加來格式說明是日期型的。 [說明:打開該窗體,左邊有一組option選項(xiàng)。當(dāng)選報(bào)修時候,系統(tǒng)自動加載空閑的房間號。如果為入住的房間報(bào)修,則需先調(diào)房退房后才能報(bào)修,總不能讓客戶住在需維修的房間中吧。確定報(bào)修后。系統(tǒng)將在reminder表中增加一條需提醒事項(xiàng),即需維修事項(xiàng),傳遞 房間號 和維修狀態(tài) 給 reminder表做為關(guān)鍵字。在主窗體中便會有提示需要維修的房間,可以通過房態(tài)查詢,查看需要維修的房間號。維修完后要進(jìn)行登記,選擇登記后,系統(tǒng)加載當(dāng)前狀態(tài)為 維修的房間,記錄維修費(fèi)用和維修員,確定后,系統(tǒng)將操作 roomlogin和reminder表,保持?jǐn)?shù)據(jù)庫系統(tǒng)的參照完整性] ,添加員工,修改密碼[說明:只有管理員,即超級用戶才能添加操作員和員工,但是普通擁護(hù)可以修改自己的密碼。添加操作員的代碼為: If And And = (pwd) Then If Then (pwd) = MsgBox (密碼修改成功,退出操作員密碼修改!) = True Unload Me Else MsgBox (請輸入新密碼!!) End If Else If = Then MsgBox (請輸入操作員!) Else If (user) Then = MsgBox (無此操作員,請重新輸入!) End If End If If = Then MsgBox (請輸入操作員原密碼!) Else If (pwd) Then MsgBox (原密碼錯誤,請重新輸入原密碼!) End If End If End If 這是才用 DAO ,這是另一種方法對數(shù)據(jù)庫操作cr = insert into pw values(39。 amp。 amp。 39。,39。 amp。 amp。 39。 ,39。039。) cr 這是直接用嵌入sql語句來插入記錄。兩種效果都一樣]六、總結(jié) 兩周的日日夜夜的奮戰(zhàn),終于達(dá)到了預(yù)定的效果,完成了該信息系統(tǒng)的設(shè)計(jì)和程序編寫。在??茖W(xué)校,曾學(xué)過VB語言,也開發(fā)過很多程序,所以vb語言成為首選。雖然其編寫