资源描述
网上客房预订系统
学 院
专 业
班 级
学 号
姓 名
指导教师
教师职称
年
月
日
摘要
【摘要】
随着因特网技术的飞速发展,电子商务越来越趋于成熟并渗透到商业团体的各个领域。网上客房预订在技术上已经相当成熟,而且实用性非常强,市场潜力巨大。网上客房预订是网上交易一个特殊的方式之一,已经是全球经济发展不可逆转的趋势。随着网上客房预订的日益普及,政策法规的不断完善,技术水平的不断提高,网上客房预订必将成为商业交易的主要手段之一。
【关键词】 网上客房预订系统、在线预订、客房服务
目录
摘要 1
0 引言 1
1 系统分析 2
1.1 需求分析 2
1.2 可行性分析 2
2 总体设计 2
2.1 项目规划 2
2.2 系统功能结构图 3
3 系统设计 3
3.1 设计目标 3
3.2 开发及运行环境 4
3.3 编码设计 4
3.4 逻辑结构设计 4
4 前台主要功能模块详细设计 5
4.1 前台文件总体架构 5
4.2 网站导航设计 6
4.3 宾馆简介管理模块设计 7
4.4 客房服务管理模块设计 7
4.5 在线订房管理模块设计 8
4.6 意见反馈管理模块设计 11
4.7 公告栏模块设计 12
5 后台主要功能模块详细设计 13
5.1 后台总体架构 13
5.2 后台登录模块设计 14
5.3 管理首页/退出模块设计 16
5.4 网站管理模块设计 16
5.5 图片管理模块设计 19
附录A 参考文献 35
附录B 数据表 36
附录C 文件架构图 39
0 引言
信息时代的今天,宾馆、酒店业的特色经营和个性化管理日趋明显,管理趋于信息化、网络化,再加上国际、国内名优企业扩展力度的加大,宾馆、酒店业集团化步伐的加快,预示着传统宾馆、酒店正逐步向现代宾馆、酒店业方向转化。现代宾馆、酒店业最显著的一个特征就是通过计算机网络对企业进行信息化管理——这也是宾馆、酒店业经营者们的共识。网络信息化管理系统以信息量大、数据准确、速度快、管理全面等特点,获得了广大宾馆、酒店业管理者的一致认同,同时满足了客户通过网络服务,足不出户的预订房间、会议室、酒会等一系列活动的要求。并且,通过计算机网络对宾馆、酒店业进行管理,克服了人为管理中人为因素给企业管理带来的诸多不便,大大提高了宾馆、酒店的工作效率,为企业创造了更大的利润。
1 系统分析
1.1 需求分析
通过对宾馆、酒店业经营管理的调查研究,要求系统具有以下功能:
q 全面展示宾馆的服务功能及环境。
q 介绍宾馆自身、宾馆的地理位置、会展中心、餐饮美食、商务中心以及其他相关内容等信息。
q 存储客人的反馈留言信息。
q 全面展示宾馆的客房服务功能。
q 客人可通过网站直接在网上进行客房的预订。
q 提供宾馆所在地旅游景点的详细信息。
q 提供管理后台入口。
q 对网站初始化信息进行设置,提供查看服务器信息功能。
q 管理网站上传的图片信息。
q 管理所有网站信息展示内容。
q 对旅游景点的详细信息进行管理。
q 全面管理客人订房信息。
q 管理客人反馈留言信息。
q 管理客房服务信息。
q 系统运行稳定,具有强大的数据处理功能。
1.2 可行性分析
q 经济性
网站前台展示了整个宾馆的服务内容、宾馆的设施、硬件条件及一系列的相关信息,满足了全面展示宾馆自身形象的要求。设置“在线订房”功能模块,提供在线订房功能,满足客户通过网络预订房间的要求。通过网络对宾馆日常业务进行管理,大大的提高了房间的利用率,提高了宾馆的经营效率,使宾馆的经济效益最大化。
q 技术性
网站后台实现了对前台信息的管理功能。通过信息管理模块、图片管理模块,实现了不断更新宾馆各方面信息的要求。通过订单管理模块对客人的房间预订信息进行管理,更科学的按排宾馆自身的房间自然资源。管理客人的留言信息,及时和客人进行沟通。
2 总体设计
2.1 项目规划
网上客房预订系统是一个典型的数据库开发应用程序,由前台展示区和后台管理组成,规划系统功能模块如下:
q 前台展示区
前台展示区的主要功能是宾馆简介、地理位置、客房服务、会展中心、餐饮美食、商务服务、在线订房、意见反馈、其他、本地景点。
q 后台功能管理
后台功能管理的主要功能是初始化网站的基础信息、管理前台图片信息、宾馆相关的信息管理、景点管理、宾馆房间类型管理、订单管理、反馈信息管理和系统信息管理。
2.2 系统功能结构图
网上客房预订系统功能结构图,前台功能模块图如图1所示。
图1 系统功能结构图
后台功能模块如图2所示
图2 系统功能结构图
3 系统设计
3.1 设计目标
本系统是针对宾馆订房业务、和宾馆的服务介绍进行设计的,主要实现如下目标:
q 全面的展示了宾馆自然情况和服务内容。
q 介绍宾馆信息,帮助客人了解宾馆相关信息。
q 为客户提供宾馆所在地旅游景点的详细信息。
q 向客户全面提供宾馆客房信息。
q 实现了网上在线订房业务,方便客人订房。
q 实现了留言板功能,客人可随时通过网站填写反馈信息。
q 通过后台管理网站初始化信息。
q 实现了后台对前台信息、上传图片的管理功能。
q 管理前台景点信息。
q 通过后台管理宾馆客房信息。
q 通过后台管理人员可以管理客人订房信息。
q 管理人员可随时管理客人的反馈信息。
q 系统运行稳定、安全可靠。
3.2 开发及运行环境
硬件平台:
q CPU:P41.8GHz。
q 内存:256MB以上。
软件平台:
q 操作系统:Windows XP/ Windows 2000。
q 数据库:Access 2000。
q 浏览器:IE5.0,推荐使用IE6.0。
q Web服务器:IIS5.0。
q 分辨率:最佳效果1024×768像素。
3.3 编码设计
编码设计是数据库系统开发的前提条件,是系统不可缺少的重要内容。编码是指与原来名称对应的编号、符号或记号。它是进行信息交换、处理、传输和实现信息资源共享的关键。编码也用于指定数据的处理方法、区别数据类型,并指定计算机处理的内容等。
本系统内部信息编码采用了统一的编码方式情况。如下所示:
q 订单编号
订单单据编号为系统当前日期和5位数字编码的组合。例如:20060130001。
3.4 逻辑结构设计
本系统数据库采用SQLServer2000数据库,系统数据库名称为etwldbs。数据库etwldbs中包含7张表。由于篇幅所限,关于数据库中的数据表请参见附录B
4 前台主要功能模块详细设计
4.1 前台文件总体架构
1.模块功能介绍
前台页面主要包括以下功能模块:
q 网站导航:主要包括网站的旗帜广告条、主功能导航两部分。
q 宾馆简介模块:主要用于介绍宾馆地理位置、室内设施、宾馆大小等相关信息。
q 地理位置模块:主要用于介绍宾馆详细的地理位置以及乘车路线。
q 客房服务模块:主要用于介绍房价、房间类型、房间内部设施。
q 会展中心模块:主要用于介绍宾馆的整体楼层布局以及各楼层的相关功能。
q 餐饮美食模块:主要用于介绍宾馆的特色美食。
q 商务中心模块:主要用于介绍商务服务的具体内容。
q 在线订房模块:主要用于提供在线客房预订。
q 意见反馈模块:主要用于分页显示意见反馈信息。
q 公告栏:主要用于展示最新添加的本地景点。
q 其它模块:主要用于介绍宾馆的其他相关商务服务功能。
q 管理入口模块:主要包括登录后台管理入口。
3.前台页面运行结果
网站前台首页的运行结果如图4所示。
图4 前台页面运行结果
为了方便读者阅读本章内容,将前台页面的各部分说明以列表形式给出,如表1所示。
表1 前台首页解析
区域
名称
说明
对应文件
1
网站导航
主要用于显示网站的标题及为用户提供前台功能导航
index.asp
2
公告栏
主要用于展示最新添加的本地景点
open.asp
3
后台登录入口
管理员可以通过该入口登录后台
index.asp
4
展示区
用于展示相关功能的运行结果
index.asp
4.2 网站导航设计
导航是网站设计不可缺少的基础元素之一,它不仅是信息结构的基础分类,也是浏览者的网站路标。在此网站导航主要包括旗帜广告条、功能分类导航2部分。设计完成的网站导航页面的设计效果如图5所示。
图5 网站导航页面设计效果
1.功能分类导航条
用户可以通过功能分类导航条查看相应类别的信息,功能分类导航条主要通过传递参数来实现超链接。关键程序代码如下:
<A href="index.asp?Typeid=1">宾馆简介</A></TD> '通过传递参数Typeid实现超链接功能
<A href="index.asp?Typeid=2">地理位置</A></TD>
<A href="index.asp?Typeid=4">会展中心</A></TD>
<A href="index.asp?Typeid=5">餐饮美食</A></TD>
<A href="index.asp?Typeid=6">商务中心</A></TD>
<A href="index.asp?Typeid=7">其他</A></TD>
4.3 宾馆简介管理模块设计
宾馆简介管理模块的主要功能是介绍宾馆地理位置、室内设施、宾馆大小等相关详细信息介绍。宾馆简介页面的设计效果如图6所示。
图6 宾馆简介页面设计效果
宾馆简介页面,主要是根据传递的参数(本例为Typeid为参数名进行传递)查找相应的记录并显示。查询宾馆简介信息的程序代码如下:
<%
if request("Typeid")="" then '判断接收的Typeid是否为空值
Typeid=1 '设置默认值
else
Typeid=request("Typeid") '将接收到的Typeid值赋值给Typeid
end if
set rs=server.CreateObject("adodb.recordset")
sql="select * from news where Typeid="&Typeid&" order by Dateandtime desc" '通过时间进行降序排列
rs.open sql,conn,1,1
%>
<A href="index.asp?Typeid=1">宾馆简介</A> '传递参数Typeid
<A href="index.asp?Typeid=2">地理位置</A>
<A href="index.asp?Typeid=4">会展中心</A>
<A href="index.asp?Typeid=5">餐饮美食</A>
<A href="index.asp?Typeid=6">商务中心</A>
<a href="index.asp?Typeid=7">其他</a>
通过以下代码判断记录集是否为空,也就是判断是否有符合条件的记录,如没有符合条件的记录系统将给予提示。相关程序代码如下:
<% If not rs.eof Then %>
<%= rs("content") %>
<% Else %>
暂无信息
<% End If %>
通过以下代码显示宾馆简介内容:
<%= rs("content") %>
4.4 客房服务管理模块设计
客房服务管理模块的主要功能是介绍房价、房间类型、房间内部设施等,页面设计效果如图
8.7所示。
图7 客房服务管理页面设计效果
客房服务管理页面主要用于显示客房的相关信息,程序代码如下:
<%
set rs=server.CreateObject("adodb.recordset")'获取客房信息
sql="select * from fangjian "
rs.open sql,conn,1,1
function HTMLcode(fString)
if not isnull(fString) then
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P>")
fString = Replace(fString, CHR(10), "<BR>")
fString = Replace(fString, CHR(32), " ")
HTMLcode = fString
end if
end function
%>
<table width="97%" border="0" align="left" cellspacing="1" bgcolor="#000000">
<%
If not rs.eof Then
tol=rs.recordcount
for i=1 to tol
%>
<%
rs.movenext '向下移动记录指针
if rs.eof then exit for '判断当前记录指针是否到达记录尾
next
else
response.Write("暂无信息")
end if
%>
</table>
4.5 在线订房管理模块设计
在线订房管理主要用于在线预订客房,在进行在线订房时,所填写的登记信息必须真实有效,否则不能预期正确地进行客房预订。在线订房管理模块的页面设计效果如图8所示。
图8 在线订房管理页面设计效果
在线订房管理页面中要求输入的信息必须是真实有效的,系统将对输入的Email地址进行判断、同时还要判断到达时间与离开时间是否过期,代码如下:
<%
if month(date())<10 then '如果当前月份小于10则在当前月份前面加0
mon=0&month(date())
else
mon=month(date()) '获取当前系统月份
end if
if day(date())<10 then '如果当前日期小于10则在当前日期前面加0
da=0&day(date())
else
da=day(date()) '获取当前系统日期
end if
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from dd where time='"&date()&"'"
rs2.open sql2,conn,1,3
if not rs2.eof then
t=year(date)*1000000000+month(date())*10000000+day(date())*100000+rs2.recordcount+1
else
t=year(date)*1000000000+month(date())*10000000+day(date())*100000+1
end if
if request("post")<>"" then '判断是否接收表单值
call writ
end if
function writ
Email=request("email")
if request("name")="" or request("danwei")="" or request("sex")="" or request("email")="" or request("num")="" or request("guoji")="" or request("tel")="" or request("zhengjian")="" or request("shenfen")="" then
response.Write("<script language=javascript>alert('请把内容填写完整');location='javascript:history.go(-1)'</script>") '判断输入的Email格式是否正确
elseIf Instr(Email, "@") = 0 Or Right(Email, 1) = "@" Or Left(Email, 1) = "@" Then
response.write "<script language=JavaScript>" & chr(13) & "alert('请检查您的邮件地址是否正确!');" & "history.back()" & "</script>"
Response.End
else
mm=request("year")&"-"&request("month")&"-"&request("day") '获得到达时间
nn=request("year1")&"-"&request("month1")&"-"&request("day1") '获得离开时间
if datediff("d",mm,date())>0 then '判断达到日期和当前日期是否冲突
response.Write("<script>alert('日期已过');location='javascript:history.go(-1)'</script>")
response.end
end if
if datediff("d",mm,nn)<0 then
response.Write("<script>alert('开始日期和结束日期填写有误');location='javascript:history.go(-1)'</script>")
response.end
end if
set rs=server.CreateObject("adodb.recordset")
sql="select * from dd"
rs.open sql,conn,1,3
rs.addnew '通过addnew()方法添加在线订房详细信息
rs("name")=request("name") '添加在线订房人姓名
rs("sex")=request("sex")
rs("age")=request("age")
rs("shenfen")=request("shenfen")
rs("zhengjian")=request("zhengjian")
rs("guoji")=request("guoji")
rs("danwei")=request("danwei")
rs("dtime")=mm
rs("ltime")=nn
rs("num")=request("num")
rs("email")=request("email")
rs("tel")=request("tel")
rs("room")=request("room")
rs("beizhu")=request("beizhu")
rs("bianhao")=request("t")
rs("time")=date() '添加获取当前的日期和时间
rs.update
rs.close
response.Write("<script language=javascript>alert('提交成功');location='dingdan.asp'</script>")
end if
end function
%>
在线订房管理页面的运行结果如图9所示。
图9 在线订房管理页面运行结果
4.6 意见反馈管理模块设计
意见反馈管理模块主要包括留言的发布、留言与回复留言浏览2部分。单击“我要留言”超链接,可以进入意见反馈管理页面。
意见反馈管理页面所涉及到的相关程序代码如下:
<%
if request("post")<>"" then '判断是否接收到表单值
call writ
end if
function writ
Email=request("email") '接收输入的email地址
if request("name")="" or request("email")="" or request("ICQ")="" or request("liuyan")="" then
response.Write("<script language=javascript>alert&_
('请把内容填写完整');location='javascript:history.go(-1)'</script>")
elseIf Instr(Email, "@") = 0 Or Right(Email, 1) = "@" Or Left(Email, 1) = "@" Then
response.write "<script language=JavaScript>" & chr(13) & "alert('请检查您的邮件地址是否正确!');" & "history.back()" & "</script>"
Response.End
else
set rs=server.CreateObject("adodb.recordset")
sql="select * from guestbook"
rs.open sql,conn,1,3
rs.addnew
rs("name")=request("name") '获取添加人姓名
rs("sex")=request("sex")
rs("laizi")=request("laizi")
rs("email")=request("email") '获取添加人的email地址
rs("OICQ")=request("OICQ")
rs("ICQ")=request("ICQ")
rs("homepage")=request("homepage")
rs("liuyan")=request("liuyan")
rs("time")=now() '获取当前系统日期和时间
rs.update
rs.close
response.Write("<script language=javascript>alert('提交成功')</script>")
end if
end function
%>
4.7 公告栏模块设计
公告栏是用来发布网站最新公告信息的,目的是让浏览者了解网站的最新动态。公告栏信息分为首页滚动显示和具体信息展示两部分。
1.首页滚动显示
公告栏滚动显示功能模块位于前台主页的左侧,它可以将网站最新的公告信息展示给用户。公告栏滚动设计效果如图10所示。
图10 公告栏滚动显示功能页面设计效果
实现滚动显示主要是应用HTML中的Marquee标识符实现的。程序代码如下:
<marquee direction="up" scrollamount="3"
onMouseOver="this.stop()
" onMouseOut="this.start()" height=180>
<%
set rs3=server.CreateObject("adodb.recordset")
sql3="select * from news where Typeid=8 order by Dateandtime desc" '取出景点的相关信息
rs3.open sql3,conn,1,1
if not rs3.eof then
do while not rs3.eof
%>
<table width="100%" border="0">
<tr>
<td><span class="style3">☆</span>
<a href="#" onClick="window.open('open.asp?id=<%=rs3("Newsid")%>','',' '单击标题进入详细信息页面
scrollbars=yes,width=565,height=500')"><%=rs3("title")%></a>
</td>
</tr>
</table>
<%
rs3.movenext
loop
else
response.Write("<div align=center><font color=white>暂无信息</font></div>")
end if
%> </marquee>
公告栏滚动显示功能页面运行结果如图11所示。
图11 公告栏滚动显示功能页面运行结果
2.具体信息展示
滚动显示所有信息标题,这些信息是系统按照发布的时间降序排列的。当用户需要查看其详细信息时,单击其标题就可以进入详细信息页面。展示详细内容页面所涉及到的程序代码如下:
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from news where NewsId="&request("id") '显示具体信息详细页
rs.open sql,conn,1,1 '打开记录集
%>
<%= rs("content")%>'通过以下语句进行内容的输出
5 后台主要功能模块详细设计
5.1 后台总体架构
1.模块功能介绍
后台页面主要包括以下功能模块:
q 管理首页/退出模块:主要用于退出后台管理系统。
q 网站管理模块:主要包括更改初始信息、查看服务器信息。
q 图片管理模块:主要包括空间图片管理。
q 信息管理模块:主要包括宾馆简介管理、地理位置管理、会展中心管理、餐饮美食管理、商务中心管理、其他管理。
q 景点管理模块:主要包括旅游景点管理。
q 房间管理模块:主要包括房间类型、客房服务管理。
q 订单管理模块:主要包括订单管理、已确认订单、回复管理。
q 反馈管理模块:主要包括反馈信息管理。
q 系统信息管理模块:主要用于管理本网站的版权、技术支持。
3.后台页面运行结果
网站后台页面的运行结果如图12所示。
2
1
图12 网站后台页面运行结果
为了方便读者阅读此章节内容,将后台页面的各部分说明以列表形式给出,如表2所示。
表2 后台页面解析
区域
名称
说明
对应文件
1
后台管理导航
主要用于选择各种后台管理操作
admin/left.asp
2
后台功能管理区
主要用于进行各种后台管理操作
admin/quit.asp admin/user/change.asp admin/system/admin_server.asp admin/adminpic.asp admin/News/DEFAULT.ASP admin/product/addsort.asp admin/fguan.ASP admin/dg/subpass.asp admin/dg/submitsub.asp admin/dg/email.asp admin/guest/default.asp admin/left.asp
5.2 后台登录模块设计
管理员通过后台登录入口,进入后台登录模块。后台登录模块主要用于验证管理员的身份及验证码,设计效果如图13所示。
图13 后台登录模块设计效果
后台登录页面所涉及的HTML表单主要元素如表3所示。
表3 后台登录页面中涉及的HTML表单元素
名称
类型
含义
重要属性
form1
form
表单
method="post" action="inc/check.asp?action=login"
verifycode2
hidden
隐藏域
value="<%=session("verifycode")%>"
Submit
image
图像区域
value="提交" src="images/12_10.gif"
后台登录页面所涉及到的程序代码如下:
<%
dim verifycode,verifycode2
verifycode=trim(Request.Form("verifycode")) '接收验证码
verifycode2=trim(Request.Form("verifycode2"))
if verifycode<>verifycode2 then '判断输入的验证码与随机产生的验证码是否一致
response.write"<SCRIPT language=JavaScript>alert('您输入的验证码不正确。');"
response.write"location.href='../index.asp'</SCRIPT>"
else
session("verifycode")="" '清空验证码
if request("action")="login" then '判断是否接收表单值
admin_name=request("admin_name") '接收用户名
admin_pass=request("admin_pass") '接收用户密码
set rs=server.createobject("adodb.recordset")
sql="select * from admin where admin_name='"&admin_name&"' and admin_pass='"&admin_pass&"'"
rs.open sql,conn,1,3
if rs.eof then
response.write "<br><br><br><br><font size=2><center>
对不起,您输入的用户名、密码或验证码有误,请重新输入,谢谢!
<br><br>本软件建议您使用IE6.0以上版本,分辨率:1024*768<br><br>
否则一切后果与本软件无关,特此声明!在此<a href=../index.asp>返回</a></font>"
else
session("admin_name")=request("admin_name") '创建session("admin_name")阶段变量
response.redirect "../manage.asp" '跳转到指定的页面
end if
rs.close '关闭已打开的记录集
set rs=nothing
conn.close
set conn=nothing '将不用的对象释放掉
end if
end if
%>
5.3 管理首页/退出模块设计
管理首页/退出模块主要用于退出后台管理系统,并将Session变量清空,代码如下:
<%
session("admin_name")="" '将Session变量清空
response.redirect "../index.asp"
%>
5.4 网站管理模块设计
1.网站管理模块文件架构
网站管理模块主要包括更改初始信息、查看服务器信息2部分。
2.更改初始信息模块设计
更改初始信息模块主要用于修改用户名、密码、公司名称。更改初始信息模块的设计效果如图14所示。
图14 更改初始信息模块设计效果
更改初始信息页面所涉及到的程序代码如下:
<%
set rs=server.createobject("adodb.recordset")
if request("action")="change" then
sql="select top 1 * from admin"
rs.open sql,conn,3,3
rs("admin_name")=request("admin_name") '修改用户名
rs("admin_pass")=request("admin_pass") '修改用户密码
rs.update
rs.close
response.write "您的更改已成功"
elseif request("action")="change2" then '判断是否接收到表单值
sql="select top 1 * from admin"
rs.open sql,conn,3,3
rs("mingcheng")=request("mingcheng")
rs.update
rs.close
response.write "您的更改已成功"
else
sql="select top 1 * from admin" '显示第一条记录
rs.open sql,conn,3,3
%>
.........
<% end if%>
更改初始信息页面的运行结果如图15所示。
图15 更改初始信息页面运行结果
3.查看服务器信息管理模块设计
查看服务器信息管理模块可以查看不同服务的相关信息,如服务器的IP地址、显示站点路径、服务器的CPU数量等。查看服务器信息管理页面的设计效果如图16所示。
图16 查看服务器信息管理页面设计效果
查看服务器信息管理模块所涉及到的程序代码如下:
<td width="30%" valign=middle> 显示客户发出的所有HTTP标题 </td>
<td width="70%"><%=request.ServerVariables("All_Http")%></td>
</tr>
<tr>
<td width="30%" valign=top> 检取ISAPIDLL的metabase路径 </td>
<td width="70%"><%=request.ServerVariables("APPL_MD_PATH")%></td>
</tr>
展开阅读全文