📄 基于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 + -