?? 基于c_的連鎖酒店管理系統的設計與實現[1].txt
字號:
計算機與現代化
2006年第
8期
J ISUANJ I YU XIANDAIHUA總第
132期
文章編號
:100622475 (2006) 0820113203
基于
C#的連鎖酒店管理系統的設計與實現
胡建華
,楊 軍
(江西旅游商貿職業學院計算機系
,江西南昌
330039)
摘要
:介紹了基于
C#開發連鎖酒店管理系統
,采用
Web Service技術實現
,提供了一種全新的連鎖酒店管理系統模型。
關鍵詞
:C# ;連鎖酒店管理系統
;Web Service
中圖分類號
:TP311. 52 文獻標識碼
:A
Design and Realization of Chain Cabaret Management System Based on C # Technology
HU Jian2hua , YANGJun
tice with Web service technology. Also , a new model of the chain cabaret management system is provided.
Abstract :This paper introduces development of the chain cabaret management system based on C # technology , which is put into prac2
酒店服務業的迅速發展,出現了連
(Computer Department , Jiangxi Tourism and Commerce College , Nanchang 330039 , China)
Key words : C # ; chain cabaret mangement system ; Web Service
開一家酒店。它的主要要求有
:
0 引 言①各酒店能互相查詢空房情況
,進行即時調劑
,
隨著旅游業、最大限度地提高入住率。比如一家酒店已經住滿
,若
鎖酒店這種經營模式。即一個老板在同一個城市建還有客人來
,可即時查詢到另兩家酒店是否有滿足客
設或收購了幾家酒店
,使他的服務容量得到了成倍的人要求的空房
,若有則立刻就能夠預訂
,并有專車送
提高。如何構建一個功能較為全面的、低成本、高效客人前往住宿。
益、可擴展的連鎖酒店管理系統成為目前需要研究的②集團公司高層管理人員在外地也能及時地了
問題。解各個酒店的各項業務情況。比如入住情況、空房情
國內現有的酒店管理系統都是針對單個酒店開況、預訂情況等。
發的
,各酒店之間信息彼此孤立。這樣就會產生一家③收購的兩家酒店原來都有完整的酒店管理系
酒店因客滿而跑客
,而另一家連鎖店卻空房的現象
,統
,集團公司不想再投入新的硬件及軟件系統
,而希
無法發揮連鎖經營的作用。望新系統能夠兼容原來的系統
,并且能協調工作。
本文將
Web Services技術引入到連鎖酒店管理中④各個酒店內部的歌舞廳、餐廳、桑拿等部門都是獨
來。因為相對于傳統的分布式技術
,Web Services具立的
,但憑酒店的住宿卡能刷卡消費
,實現一卡通。
有松耦合、跨平臺的特點。利用它不需要更改酒店原
來的軟、硬件平臺及管理系統就能輕松實現酒店間的2 解決方案與實現方法
信息共享
,快速構建一個高效、開放、互動型強的連鎖在前面提到的這四種需求當中
,都處在一個異構
酒店管理系統。既節約了成本
,又實現功能
,可起到環境中
,也就是說
,客戶在各個單獨的系統模塊中
,已
事半功倍的效果。
經建立了完善的軟件架構。現在需要做的就是有效
1 問題的提出地去溝通這些系統
,而不是去重新設計。在保留現有
資源的基礎上
,我們實際上是去整合多個異構系統
,
某家集團公司收購了南昌兩家酒店
,并且還要新而不是去重構它們
,而這恰恰就是
Web Service的特
收稿日期
:2006203222
作者簡介
:胡建華
(19712),男
,江西南昌人
,江西旅游商貿職業學院計算機系副教授
,碩士
,研究方向
:軟件工程
,數據庫技術
;
楊軍
(19822),男
,江西萍鄉人
,助講
,本科
,研究方向
:數據庫開發。
114
計 算 機 與 現 代 化
2006年第
8期
Com. Parameters[″
Direction. Input ;
Com. Parameters [″
tion. Input ;
長
,所以我們決定通過
Web Service來解決這個案例。
Web Service本質上就是一個異構平臺下的遠程
過程調用
(RPC -Remote Procedure Call)。Web Service
服務首先是一種提供服務的應用程序邏輯
;其次它建
立在被普遍接受的標準協議之上
,因此它可以被任意
的系統和開發語言所支持
;最后
,它主要由程序代碼
使用
,而不是最終用戶。
在異構的環境中
,存在著各種各樣的硬件設備和
操作系統
,運行著使用不同語言、不同技術開發的應
用程序。但是這些異構系統之間卻存在著一個共同
之處
,即它們使用標準的
HTTP協議連接到
Internet
上
,并傳送著標準的
HTML頁面。正是這些標準的使
用
,Internet才會如此迅速地發展
,而
Web Service服務
正是建立在標準的協議和規范之上。任何系統
,只要
支持這些標準的協議和規范
,就可以使用
Web Service
服務
,因此
Web Service服務天生就具有跨平臺的特
性。
Web Service的體系結構如圖
1。
鑒于
Web Service的這種特點
,我們把
SOAP消息
附加在
HTTP消息中傳遞
,并通過被各種平臺廣泛支
持的
XML來描述數據。
3 實現方法
我們以遠程預定模塊為例
,闡述
Web Service的
實現方法。
該模塊包括服務端和客戶端
,服務端提供遠程查詢
和遠程預定方法
,而客戶端訪問由服務端提供的方法。
3. 1 服務器端
首先
,創建一個用
Visual C #描述的
ASP. NET
Web服務。在
Visual Studio. NET中
,Web服務由兩個
部分組成
:入口點和實現代碼。這兩部分分開存放于
兩個文件中
,其入口點對應于
. asmx文件
,而實現
Web
服務功能的代碼位于后臺代碼文件
. asmx. cs中。把
這兩個部分分開存放的好處是后臺代碼文件將被預
先編譯成程序集
,在請求時可以直接裝入執行
,這可
以提高應用程序的性能。遠程預定的代碼如下
:
[ WebMethod ]
public int HotelReserve ( string strRoomID , string strRoomType ,
string strRoomPrice)
{SqlConnection Con = new SqlConnection(connStr) ;
//訪問指定的存儲過程
“pHotelReserve”,完成預定
SqlCommand Com = new SqlCommand(″pHotelReserve″,Con) ;
Com. CommandType = CommandType. StoredProcedure ;
//設置輸入參數
Com. Parameters. Add ( newSqlParameter (″@RoomID″, SqlDb2
Type.VarChar,20)) ;
Com. Parameters. Add ( new SqlParameter (″@ RoomType″,
SqlDbType.VarChar,20)) ;
Com. Parameters. Add ( new SqlParameter (″@ RoomPrice″,
SqlDbType.VarChar,20)) ;
Com. Parameters. Add ( new SqlParameter (″@ ReserveID″,
SqlDbType.VarChar,20)) ;
Com. Parameters[″@RoomID″]. Value = strRoomID ;
Com. Parameters[″@RoomType″]. Value = strRoomType ;
Com. Parameters[″@RoomPrice″]. Value = strRoomPrice ;
//預訂編號由函數
GetNewID()獲得
Com. Parameters[″@ReserveID″]. Value = GetNewID() ;
Com. Parameters[″@RoomID″]. Direction = ParameterDirection.
Input ;
Com. Parameters [
@RoomRoomPrice″@RoomType″]. Direction = ParameterDirec2
tion. Input ;
″]. Direction = Parameter2
@ReserveID″]. Direction = ParameterDirec2
//設置輸出參數
Com. Parameters. Add ( new SqlParameter (″@Result″, SqlDb2
Type.SmallInt)) ;
Com. Parameters [″@Result″]. Direction = ParameterDirection.
Output ;
Com. ExecuteNonQuery() ;
//返回結果
,1表示成功執行
,0表示預訂不成功
return Com. Parameters[″@Result″].Value. ToString() ;}
3. 2 客戶端
我們要想建立客戶端去訪問
Web Service的話
,
必須通過兩個步驟。首先
,定位
Web服務并生成相
應的
Web服務代理類
;然后
,在客戶程序中把代理類
實例化
;最后
,調用實例化的對象
,去訪問
Web Service
提供的方法。其過程和部分代碼實現如下
:
①輸入
WSDL文檔地址。
②根據輸入的
WSDL文檔的地址獲取
WSDL文
檔的內容。
WebRequest req = WebRequest. Create(uri) ;
WebResponse result = req. GetResponse() ;
③使用相應的類從
WSDL文檔生成
C#源代碼。
CodeNamespace cns = new CodeNamespace(″HotelReserve″);
//創建對象用來生成代理類源程序
CodeCompileUnit ccu = new CodeCompileUnit() ;
ccu. Namespaces. Add(cns) ;
ServiceDescriptionImporter sdi = new ServiceDescriptionImporter
() ;
sdi.AddServiceDescription(sd,null,null) ;
sdi. ProtocolName =protocalName;
//從指定命名空間導入
115
2006年第
8期
胡建華等
:基于
C#的連鎖酒店管理系統的設計與實現
sdi.Import (cns,ccu) ;
④對生成的源代碼進行相應的修改
,以使之符合
要求
CSharpCodeProvider cscp = new CSharpCodeProvider() ;
CompilerParameters cp = new CompilerParameters() ;
cp.OutputAssembly = assfileName ;
//導入程序集
cp. ReferencedAssemblies.Add(″System. dll″);
cp. ReferencedAssemblies.Add(″System. Xml. dll″);
cp. ReferencedAssemblies.Add(″System. Web. Services. dll″);
cp. ReferencedAssemblies.Add(″System.Data. dll″);
⑤使用相應的類編碼源代碼
,并把它保存在一個
臨時的程序集文件
(. dll)中。
ICodeCompiler icc = cscp. CreateCompiler() ;
//編譯源代碼并生成程序集
CompilerResults cr = icc. CompileAssemblyFromDom ( cp ,
ccu) ;
if (true = = cr. Errors. HasErrors)
{ StringBuilder sb = new StringBuilder() ;
類對象。
/ /獲取程序集中的所有類型
Type[ ] types = asm. GetTypes() ;
foreach(Type t in types)
{if (t.Base Type = = typeof (System. Web. Services. Protocols.
SoapHttpClientProtocol) )
//如果找到代理類就訪回它所對應類型的對象實例
{ return asm. CreateInstance(t. FullName) ;} }
⑦實例化代理類對象
,為程序提供訪問
Web Ser2
vice的途徑。
HotelReserve HR = new HotelReserve() ;
⑧利用
Web Service提供的公共方法進行預定。
Int intResult = HR. HotelReserve ( strRoomID , strRoomType , str2
RoomPrice) ;
If (intResult = = 1 )
MessageBox. Show (″預定成功″
,″提示″
,MessageBoxButtons.
OK,MessageBoxIcon. Information) ;
Else if (intResult = = 0)
MessageBox. Show (″預定不成功″
,″提示″
, MessageBoxBut2
tons.OK,MessageBoxIcon. Information) ;
4 結束語
foreach
⑥從臨時的程序集文件加載程序集并生成代理
Assembly asm = Assembly. LoadFrom(assfileName) ;
(CompilerError ce in cr. Errors)
向服務構架—
需要跨平臺的系統中
,它是目前最流行的面
{ sb.Append(ce. ToString()) ; ——SOA的基礎。
Web Service促進開源
sb.Append(System. Environment.NewLine) ;} 軟件的發展。發展開源軟件是時代的潮流
,也是國家
throw new Exception(sb. ToString()) ;}安全的需要。總之
,web Services技術有很高的使用
目前
Web Service技術主要應用在實時性要求不
是很高、
價值
,它值得我們不斷地研究發展。
參考文獻
:
[1] 陸昆侖
,李旭東
,吳媛靜
. Web Service編程
:用
C# .NET開發
網絡服務
[M].北京
:北京希望電子出版社
,2003.
[2] 蔡月茹
. Web Service基礎教程基礎教程繁更
[M].北
京
:機械工業出版社
,2005.
(上接第
112頁)
圖
8 質量評估界面
3 結束語
采用關系數據庫技術
,以
Windows為操作系統平
臺
,采用面向對象的數據庫編程語言實現了該系統。
應用該系統的使用使日處理水樣由手工管理時的
4
至
5批上升到日處理
30多批
,大大提高了工作效率
,
提高數據的準確性和可靠度
,提高管理水平。
參考文獻
:
[1] 沈惠璋
,等. Visual Foxpro 6. 0面向對象的程序設計
[M].
北京
:清華大學出版社
,1999. 1~295
[2] 吳迪
,等. Visual Foxpro 6. 0函數手冊
[M].北京
:清華大
學出版社
,2001. 1~313.
[3 ] 吳迪
,等. Visual Foxpro 6. 0命令手冊
[M].北京
:清華大
學出版社
,2001. 1~356.
[4 ]
DZ/ T 013022002 ,地質礦產實驗室測試質量管理規范
[ S].
[5] GB853721995 ,飲用天然礦泉水標準
[ S].
[6] GB1732321998 ,瓶裝飲用純凈水標準
[ S].
[7] GB5749285 ,生活飲用水衛生標準
[ S].
[8] DB41/ 27922001 ,瓶裝飲用凈水標準
[ S].
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -