99久久99久久精品免费看蜜桃,亚洲国产成人精品青青草原,少妇被粗大的猛烈进出va视频,精品国产不卡一区二区三区,人人人妻人人澡人人爽欧美一区

首頁 > 文章中心 > 正文

概論變換界面的酒店管理系統(tǒng)

前言:本站為你精心整理了概論變換界面的酒店管理系統(tǒng)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

概論變換界面的酒店管理系統(tǒng)

一、樹形控件

1.樹形節(jié)點(diǎn)存儲(chǔ)

數(shù)據(jù)庫中新建Tree_Initialization(用于存儲(chǔ)樹形控件中節(jié)點(diǎn)信息)表,一共有4個(gè)字段,分別為Node_Name(String型)、Node_ID(Integer型)、Node_Location(String型)、Node_Level(Integer型),可分別對(duì)樹形節(jié)點(diǎn)進(jìn)行新增、修改、查詢、刪除、統(tǒng)計(jì)等操作。下面就Tree_Initialization表中字段分別說明:Node_Name:String型,Node_Name表示含義為具體的房間名稱,組成由區(qū)-棟-房間號(hào)構(gòu)成,一共有三種類型的Node_Name,如表1所示,例如#C只表示C區(qū),#C-2只表示C區(qū)2棟,#C-2-002表示為C區(qū)2棟2號(hào)房間,在這里只顯示了#A區(qū)、#B區(qū)、#C區(qū)、#D區(qū)、#E區(qū)、#F區(qū)共6個(gè)片區(qū),在程序中,實(shí)際上可以往下繼續(xù)新增區(qū)域、棟和房間號(hào),區(qū)域個(gè)數(shù)限制10個(gè),棟數(shù)個(gè)數(shù)限制為10個(gè),房間號(hào)限制為100個(gè)。Node_ID:Integer型,Node_ID從數(shù)值1開始遞增,計(jì)算整個(gè)酒店的可用房間數(shù)量。Node_Location:String型,Node_Location表示節(jié)點(diǎn)的具體位置,一共有3種,分別為長(zhǎng)度=2、長(zhǎng)度=3、長(zhǎng)度=6,長(zhǎng)度為2的表示到區(qū),長(zhǎng)度為3的表示到棟,長(zhǎng)度為6的表示到房間號(hào),區(qū)、棟、房間號(hào)之間的邏輯關(guān)系通過字段Node_Location的String值來表示,如表1所示,例如Node_Name=”#C2-2-003”所對(duì)應(yīng)的字段Node_Location=”132003”,前面兩位”13”表示具體的區(qū),在表中對(duì)應(yīng)找到”13”所表示的區(qū)為#C區(qū),第三位數(shù)值”2”+前兩位”13”,對(duì)應(yīng)的”132”在表中可以找到對(duì)應(yīng)的區(qū)-棟,#C-2,最后三位003表示具體的房間號(hào),+前三位”132”在表中可以找到對(duì)應(yīng)的Node_Name=”#C2-2-003”。Node_Level:Integer型,Node_Level分為3層,第1層、第2層、第3層,第1層表示區(qū),第2層表示棟,第3層表示房間號(hào)。

2.樹形節(jié)點(diǎn)變更

將Tree_Initialization表中Node_Name、Node_ID、Node_Location和Node_Level4個(gè)字段配合使用,就可以實(shí)現(xiàn)樹形節(jié)點(diǎn)的新增、刪除、重命名等操作,例如,在主界面左側(cè)樹形節(jié)點(diǎn)上#C-4上點(diǎn)擊新建房間號(hào),連續(xù)點(diǎn)擊新增003,004房間號(hào)(這里假設(shè)#C-4棟下不存在003和004房間,因?yàn)榘凑粘绦蛟O(shè)置,在具體的某區(qū)某棟下,房間號(hào)是唯一值,不能重復(fù),但是#C-3棟和#C-4棟在程序中假定是不同的,即#C-3棟和#C-4棟下都可以存在001房間),Tree_Initialization表中變化如表2所示。表2Tree_Initialization更新表(部分節(jié)點(diǎn))界面上點(diǎn)擊新增房間003,004按鈕,相當(dāng)于在Tree_Initialization表中插入兩條新數(shù)據(jù),“#C-4-003、32,134006,3”和“#C-4-004、33,134007,3”,并且將之前#D-1-001和#D-1-002的Node_ID分別+2,修改至34,35,當(dāng)然這里插入和修改的數(shù)據(jù),都通過算法進(jìn)行判斷和計(jì)算,計(jì)算過程如下:

(1)從Tree_Initialization表中找出Node_Level=3的所有Node_Name值,sql.executeQuery("SELECTNode_Name-FROMTree_InitializationWHERENode_Level=3"),將所有Node_Name值與新建的房間號(hào)進(jìn)行對(duì)比,以防重復(fù)插入房間號(hào);

(2)從Tree_Initialization表中查找Node_Namelikenode.getUserObject()中Node_ID字段中的最大值,sql.execute-Query("SELECTmax(Node_ID)asnumFROMTree_Initializa-tionwhereNode_Namelike"+s_room);

(3)向Tree_Initialization表插入數(shù)據(jù),"INSERTIN-TOTree_InitializationVALUES("+"''''"+t_floor+Node_Name+"''''"+","+"''''"+(max_number+1)+"''''"+","+"''''"+String_Node_Location_New+"''''"+","+"''''3''''"+")";其中變量t_floor+Node_Name和String_Node_Location_New在程序其它處通過手段獲取或者計(jì)算所得,在這里不詳細(xì)說明其獲取值的具體方法;

(4)修改Tree_Initialization表中其他房間號(hào)的Node_ID值,這里修改的是Node_ID值大于某個(gè)值X(在此處X=32)的房間號(hào),將值++,"UPDATETree_Initializa-tionSETNode_ID=Node_ID+1whereN-ode_Name="+"''''"+String_Node_Name+"''''",程序中每當(dāng)新增一個(gè)房間號(hào)時(shí),Node_ID值都做一個(gè)自增加運(yùn)算。以上描述的是在某區(qū)某棟下新增房間號(hào)的過程,其實(shí)新增某區(qū)或者在某區(qū)下新增某棟,其算法思想都如上所述,僅僅是某些字段值需要改變,在這里不再表述。同理,筆者在實(shí)現(xiàn)對(duì)某區(qū)、某棟、某房間號(hào)的重命名、刪除等節(jié)點(diǎn)操作時(shí),其算法思想也如新增節(jié)點(diǎn)操作相似,目的就是保持Tree_Initialization表中各節(jié)點(diǎn)之間的邏輯關(guān)系。所有對(duì)樹形節(jié)點(diǎn)的變更操作均要由系統(tǒng)后臺(tái)管理員(系統(tǒng)分為前臺(tái)操作員和后臺(tái)管理員,這里可以限定前臺(tái)操作員的變更權(quán)限)來完成。

3.樹形節(jié)點(diǎn)讀入

在啟動(dòng)系統(tǒng)過程中,從數(shù)據(jù)庫中讀入界面信息(這里僅僅寫出讀入樹形控件節(jié)點(diǎn)信息)的源代碼實(shí)現(xiàn)如下:publicstaticvoidcreateNodes(){try{//連接數(shù)據(jù)庫代碼,此處省略ResultSetrs=sql.executeQuery("SELECTNode_ID,Node_Name,Node_LocationFROMTree_InitializationorderbyNode_Locationasc");while(rs.next()){Strings=rs.getString("Node_Location");StringchildName=rs.getString("Node_Name");intnumber=rs.getInt("Node_ID");if(s.length()==1){node[number]=newDefaultMutableTreeNode(child-Name);}else{if(s.length()<=3){node[number]=newDefaultMutableTreeNode(childName);Stringparents=s.substring(0,s.length()-1);ResultSetrs1=sql1.executeQuery("SELECTNode_IDFROMTree_InitializationwhereNode_Location="+"''''"+par-ents+"''''");while(rs1.next()){intparentNumber=rs1.getInt("Node_ID");node[parentNumber].add(node[number]);}}else{node[number]=newDefaultMutableTreeNode(childName);Stringparents=s.substring(0,s.length()-3);ResultSetrs1=sql1.executeQuery("SELECTNode_IDFROMTree_InitializationwhereNode_Location="+"''''"+par-ents+"''''");while(rs1.next()){intparentNumber=rs1.getInt("Node_ID");node[parentNumber].add(node[number]);

二、總結(jié)

在開發(fā)酒店管理系統(tǒng)的過程中,筆者不但實(shí)現(xiàn)了系統(tǒng)界面樹形控件的變更,還將界面中的菜單控件,按鈕控件信息等都保存至數(shù)據(jù)庫中,通過系統(tǒng)管理員的操作,就可實(shí)現(xiàn)系統(tǒng)的界面更改。將系統(tǒng)界面信息保存至數(shù)據(jù)庫中,這樣對(duì)系統(tǒng)界面的維護(hù)就像對(duì)客戶信息維護(hù)那樣,在系統(tǒng)界面中,通過對(duì)數(shù)據(jù)庫增刪改查命令實(shí)現(xiàn)系統(tǒng)界面的維護(hù),這樣一來也可使得系統(tǒng)界面在今后軟件的使用過程中處于一個(gè)動(dòng)態(tài)管理維護(hù)的過程中,這是一個(gè)不錯(cuò)的方法,并且也適用于其他的管理信息系統(tǒng)中。

作者:王柔徐鵬單位:南昌師范高等專科學(xué)校江西省科學(xué)技術(shù)情報(bào)研究所