版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
asp酒店房间预约系统设计+论文本酒店房间预约系统按照用户部分和管理员部分划分了两块,它们所实现的功能如下。1.用户部分预约房间:预约某个时间的某一房间。用户登陆:通过用户名和密码核实登陆用户身份。用户注册:检测用户提供的信息并注册用户。查询房间信息:按照用户提出的条件列出查询结果。取消房间预约:取消某一到期且未付款的有效预约。查询预约信息:查询该用户的预约信息。阅览用户留言:调用用户留言并显示。注销用户:结束用户会话,保证安全。2.管理员部分给站长留言:检查用户留言的正确性并保存。删除房间:根据用户提交的信息删除指定的房间。添加房间:添加新的房间,注册详细信息。删除无用留言:删除需要处理的留言。删除无用或错误的预约信息。确认已付款用户的预约:当用户付款后对指定预约进行标记。修改房间信息:对于存在的某房间信息进行修改更新。安全注销。房间预约统计和用户统计。目录摘要随着国内经济形势持续发展,国内酒店业进入难得的发展高峰期,使得中外资本家纷纷将目光投向中低端市场。然而,中国酒店业的区域结构不合理、竞争手段不足和市场对经济型酒店的需求日益显露,以及2008年北京奥运会、2010年上海世界博览会对酒店业的积极影响等诸多力量的交织,使得中国酒店市场演变成了一个淘金圣地。
在信息高度发达的今天,酒店制度的改革已经成为一种更广泛、全面的潮流。该“酒店房间预约系统设计”是基于Access2003数据库、ASP程序设计的基础上实现的。该系统可以保存和处理多个酒店的名称、星级和地址等基本信息以及每个酒店的房间信息,同时可以保存和处理客户的订单信息,并且对于这些系统提供了相应的查询功能,而且有完善的多用户安全功能。保证在我国经济持续发展、信息时代日益更新的今天,服务行业依然蒸蒸日上。前言随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。酒店客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使酒店客房管理更先进、更高效、更科学,信息交流更迅速。酒店房间预约系统是酒店经营管理中不可缺少的部分,它的内容对于经营的决策者和管理者来说都至关重要,所以酒店房间预约系统应该能够为用户提供充足的信息和快捷的预约手段。酒店预约基本都是需要通过电话或客户直接到酒店进行,由于预约记录多是人为完成,容易造成失误和遗漏,管理效率比较低,特别是顾客比较多的季节,传统的预约方式已经基本不能满足要求。远程预约系统是一种全新的网络预约方式,通过互联网突破了时间和空间限制实现了便捷快速的预约与管理功能。本系统具有房间信息查询、预约房间和取消预约等功能。第二章编程环境基础知识2.1ASP基础概述ASP,全称ActiveXServerPage,它提供了一个在服务器端执行脚本指令(包括HTML、VBScript、JavaScript等),通过这种环境,用户可以创建和运行Web应用程序。
ASP文件就是在普通的HTML文件中嵌入VBScript或JavaScript脚本语言。ASP是一个服务器端脚本编写环境,用于创建动态的交互式Web服务器应用程序。在ASP动态网页中,不仅可以包含服务器端代码,也可以使用ASP内建对象和服务器组件,此外还可以包含服务器端文件。2.2ASP脚本语言——VBScript2.2.1VBScript的概述VBScript是程序开发语言VisualBasic家族的最新成员,可以将灵活的脚本应用于更广泛的领域,包括MicrosoftInternetExplorer中的Web客户端脚本和MicrosoftInternetInformationServer中的Web服务器端脚本。
VBScript脚本语言有以下主要特点:
(1)易学易用。
(2)ActiveX脚本。
(3)其他应用程序和浏览器中的VBScript。2.2.2VBScript代码的基本格式一般的ASP程序都是将VBScript代码放在服务器端执行的,有两种方法:方法一:<%VBScript代码%>方法二:<ScriptLanguage=”VBScript”Runat=”Server”>VBScript代码</Script>2.2.3条件语句1.If……Then……Else语句用于判断条件是Ture或False,并且根据判断结果指定要运行的语句。2.SelectCase语句是If……Then……Else……EndIf语句多条件时的另外一种形式,其语句的语法如下:SelectCase变量或表达示2.2.4循环语句1.For……Next循环是一种强制型的循环,用语将语句块运行指定的次数。在循环体中使用计数器变量,该变量随每次循环增加或减少。2.Do……Loop循环Do循环也是根据某个条件是否成立来决定能否执行相应的循环体部分。与while循环不同的是:While循环只能在初始位置检查条件是否成立;而Do循环可以有两种格式,既可以在初始位置检验条件是否成立,也可以在执行一遍循环体后的结束位置判断条件是否成立,能否进入下一次循环。3.While……Wend语句While循环用于对条件进行判断,如果条件成立,可以循环执行循环体,直到循环结束为止。结束循环的条件是用于判断的条件不成立。与For循环最大的差别在于:For循环用于循环次数己知的情况,执行一定次数后即可结束循环;而While循环用于不知道循环次数,但可以用一个条件来进行判断是否结束。所以对于循环次数有限,可以用条件限制的情况,使用While循环较好,且使用比较灵活。4.ForEach...Next循环该语句对集合中的每个元素进行一次循环,直到集合中无更多的元素时,执行Next后面的语句。2.2.5过程在VBScript中将过程分为两类:子过程和函数过程。子过程也称为Sub过程,函数过程也称为Function过程。二者的区别在于:Sub过程没有返回值,相当于其他程语言中的过程;Function过程有返回值,相当于其他编程语言中的函数。1.Sub过程的声明Sub过程的声明语法:
[Public][Private]Sub过程名[(参数表)]
[语句块]
[ExitSub]
[语句块]
EndSub2.Function过程是由一系列VBScript语句所组成,这些语句是以Function语句作为该过程的开头标记,以EndFunction语句作为结束。Function过程的声明语法:[Public][Private]Function过程名[(参数表)]
[语句块]
[过程=表达式]
[ExitFunction]
[语句块]
[过程=表达式]
EndFunction与Sub过程的基本相同,不同之处是:
1)函数有返回值。它的返回值就是通过“过程=表达式”语句传递的。
2)可以在函数内部任何地方把返回值赋给函数名,而且允许存在任意次这样的赋值。如果不指定返回值,那么数值函数返回0,字符串函数返回“”,对象函数返回Nothing。ASP内置基本对象Request负责从用户端接收信息Response负责传送信息给用户Session负责存储个别用户的信息,以便重复使用Application负责存储数据以供多个用户重复使用Server负责控制ASP的运行环境ObjectContext供ASP程序直接配合MicrosoftTransactionServer进行分布式的事务处理需求分析3.1功能需求酒店预约基本都是需要通过电话或客户直接到酒店进行,由于预约记录多是人为完成,容易造成失误和遗漏,管理效率比较低,特别是顾客比较多的季节,传统的预约方式已经基本不能满足要求。远程预约系统是一种全新的网络预约方式,通过互联网突破了时间和空间限制实现了便捷快速的预约与管理功能。本系统具有房间信息查询、预约房间和取消预约等功能。本酒店房间预约系统按照用户部分和管理员部分划分了两块,它们所实现的功能如下。用户部分用户注册:检测用户提供的信息并注册用户。用户登陆:通过用户名和密码核实登陆用户身份。预约房间:预约某个时间的某一房间。查询预约信息:查询该用户的预约信息。取消房间预约:取消某一到期且未付款的有效预约。查询房间信息:按照用户提出的条件列出查询结果。给站长留言:检查用户留言的正确性并保存。注销用户:结束用户会话,保证安全。管理员部分阅览用户留言:调用用户留言并显示。删除无用留言:删除需要处理的留言。添加房间:添加新的房间,注册详细信息。删除房间:根据用户提交的信息删除指定的房间。修改房间信息:对于存在的某房间信息进行修改更新。确认已付款用户的预约:当用户付款后对指定预约进行标记。删除无用或错误的预约信息。房间预约统计和用户统计。安全注销。3.2性能需求a硬件环境:Windows2000server是一个功能强大的操作系统,要让系统发挥应有的良好的性能,安装Windows2000server的计算机所需的最小配置应为:CPU:要求是奔腾以上处理器。内存:建议最少有256MB内存。硬盘:硬盘分区有足够的可用空间来执行安装程序b软件环境:操作系统:WindowsXP服务器平台:IIS5.0浏览器:IE5.0应用软件DreamweaverMXc开发语言:Vbscript总体设计4.1系统模块结构设计系统设计主要包括功能模块的划分和系统流程的分析。根据客户的需求总结系统主要完成的功能,以及将来拓展需要完成的功能,然后根据设计好的功能划分出系统的功能模块,这样方便程序员管理和维护,最后设计出系统的流程。接下来,就详细介绍系统设计的前期准备。4.1.1功能模块划分酒店房间预约系统应该具有用户注册登录、查看预约房间、留言、管理员综合管理等功能。根据对该系统的功能需求分析可以画出系统功能模块图。本系统将功能划分为用户和管理员两部分,图1所示是用户部分的功能模块图。用户模块包括注册、登录和注销3个功能子模块,注册模块提供用户注册成为酒店房间预约系统的会员,拥有预约房间的功能,而只有登录的用户方可以进行房间的预约,因此登录模块提供会员登录功能。为了防止其他用户私自修改用户信息,同时又设计了注销功能模块。房间模块包括查看房间、查询房间、查看预约、预约房间和取消预约等功能。通过查看或者输入条件查询房间,可以获得房间的具体信息,如果为登录用户,此时可以进行房间的预约操作,用户觉得不满意,可以通过取消预约模块取消预约,同时用户可以通过查看预约模块查看用户所有的预约信息。留言模块为用户提供一个发表自己看法的场所,如果遇到什么困难或者不满意的地方。可以通过该模块发表。管理端部分的功能如图2所示。管理员登录模块提供管理员登录的入口,只有成功登录后,才可以执行管理员操作。添加房间功能模块为管理员提供添加新的房间的功能,此时,管理员可以输入详细的房间信息。如果房间出现问题或者该房间已经不存在,管理员可以通过删除房间模块把该房间删除。当房间信息发生改变时,管理员可以通过修改房间信息模块对房间的信息进行修改。管理员可以通过阅读留言模块查看用户发表的留言,并可以进行回复和删除等操作。用户的预约只有等管理员确认后方可生效,管理员就是通过预约管理模块对用户的预约信息进行管理的,包括确定预约和删除预约等。管理员操作结束时需要通过注销登录模块注销登录,防止系统信息被篡改。第六章、管理功能模块有关管理员操作的各个页面必须在管理员登入后方可进入,因此,在这些页面的头部都加入了管理员登入验证代码。1.登入模块登入模块是管理员进入管理系统的入口,通过核实管理员名和密码来核实管理员身份,图10所示管理员页面。。2.查看和管理留言页面模块留言功能是为了提供与用户的交互活动而设计的,它包括生成留言列表、阅读留言和删除留言3大部分。生成留言列表为了使管理员及时了解用户意见和建议,该系统把查看留言列表页面设置为管理员登录后的首页面,如图11所示。该功能由administrator.asp文件实现,见程序清单10图11留言列表见程序清单10生成留言列表核心代码administrator.asp(2)阅读留言模块当管理员在留言列表中单击留言标题时会弹出阅读流言界面,如图12所示。阅读留言代码的实现比较简单,直接读取数据库留言表word中的留言信息,并构造删除留言链接,其实现代码见程序清单11图12阅读留言g%>3.维护房间信息模块维护房间模块包括显示房间列表、删除房间和修改房间信息3个功能。显示房间列表图13所示为房间列表的显示页面。从图中可以看出,可以对房间进行删除或修改操作。房间列表的功能实现是由文件damin_room.asp完成的,其代码见程序清单14图13房间列表删除房间当酒店因为某种原因不能提供预约时,管理员可以将该房间从数据库中删除,删除功能的实现是文件del.asp来实现的,程序清单14是实现删除功能的代码。图15删除房间成功页面当管理员成功删除指定房间后会显示删除成功界面,如图15所示。修改房间信息修改房间信息的功能是修改存在于数据库中的房间信息,包括房间名称、房间类型和费用,但是不能修改房间ID。修改房间信息功能有admin_edit.asp和admin_editchk.asp两个文件来完成。第一个文件用来接受管理员填写的更新信息,第二个用来检查数据并写入数据库中。图16所示是填写房间信息表单的页面。图16修改房间信息 %>4.添加房间模块该功能模块的实现是由文件admin_addnew.asp完成的。添加房间的页面如图17所示。其实实现代码比较简单就不再详细论述。当管理员正确提交了要添加新房间的信息后就会出现如图18所示的成功提示,该功能是由文件admin_addnewchk.asp完成的,其实现代码见程序清单16图17添加新房间5.预约管理模块预约管理模块包括确认预约和删除预约两部分,确认预约是指在用户已经对指定的预约付款后,管理员在预约数据库中将对应的预约信息修改为为已付款操作;删除预约用于在数据库预约表中出现错误预约或恶意预约后,由管理员强制将其删除。确认预约页面酒店房间预约系统规定,用户不能取消已经付款的预约,因为这些预约已经被认为是有效预约。同样,管理员不能删除已经付款的预约。预约列表界面是确认预约页面的一部分,它将为管理员显示所有为付款的预约,并提供“确认预约”和“删除”超链接。图19所示是显示预约列表页面,图20所示是预约确认成功提示信息页面,它们的实现都由文件admin_chk.asp完成,它们的实现代码见程序清单17图19预约列表图20预约确认删除预约页面图21所示是删除页面成功的提示信息。该功能的实现是由文件chkcancel.asp完成的,在用户面取消预约模块中还会看到该文件的出现,它们的实现都是由该文件完成的。详细代码见程序清单186.统计模块统计模块的功能分为用户统计和预约统计两部分,主要是方便管理员对该酒店运行合理管理。这些功能的实现都是由文件admin_total.asp完成的,请参考程图5-22预约统计图23用户统计第七章、.用户功能模块用户功能模块主要包括用户登录、用户注册、发表留言、浏览房间信息、查看房间信息、预约房间、取消预约等功能。1.首页设计图24所示用户进入网站看到的界面,包括了简单的房间统计,及用户登录系统等功能。图24网站首页程序清单20所示是首页实现的核心代码,即文件index.asp<%dimrs_user,roomdimrs_user_total,room_totalSetrs_user=Server.CreateObject("ADODB.Recordset")sql="SELECTuser_nameFROMuser_reg"rs_user.Opensql,hotel_conn,3,2Setroom=Server.CreateObject("ADODB.Recordset")sql="SELECTroom_idFROMroom"room.Opensql,hotel_conn,3,2If(rs_user.RecordCount=-1)Then rs_user_total=0 rs_user.movefirst While(Notrs_user.EOF) rs_user_total=rs_user_total+1 rs_user.MoveNext Wendelse rs_user_total=rs_user.RecordCountEndIfIf(room.RecordCount=-1)Then room_total=0 room.movefirst While(Notroom.EOF) room_total=room_total+1 room.MoveNext Wendelse room_total=room.RecordCountEndIf%><%If(room_total=-1)Thenroom_total=0While(Notroom.EOF)room_total=room_total+1room.MoveNextWendIf(room.CursorType>0)Thenroom.MoveFirstElseroom.RequeryEndIfIf(room_numRows<0Orroom_numRows>room_total)Thenroom_numRows=room_totalEndIfroom_first=1room_last=room_first+room_numRows-1If(room_first>room_total)Thenroomd_first=room_totalEndIfIf(room_last>room_total)Thenroom_last=room_totalEndIfEndIf%><% ifnotisempty(session("user_name"))then setrs_user_name=server.CreateObject("adodb.recordset") sql="select*fromuser_regwhereuser_name='"&session("user_name")&"'" rs_user_name.opensql,hotel_conn,3,1 response.Write("欢迎您,"&session("user_name")&" <br>") endif %><%setrs_user_name=Nothingrs_user.Close()Setrs_user=Nothingroom.Close()Setroom=Nothing%>2.注册登录模块该模块分为注册和登录两个功能模块。注册模块图25所示用户注册页面,是由文件reg.asp来实现的。他不需要连接数据库,主要功能是收集信息并传递给reg2.asp文件进行数据有效性验证。图25用户注册页面程序清单21生成年、月、日序列reg.asp部分代码<!--生成年--> <selectname="byear"class="select_filed"id="byear"tabindex="7"> <%fori=1940toyear(date)-3%> <optionvalue="<%=i%>"><%=i%></option> <%next%></select>年 <!--生成月--><selectname="bmonth"class="select_filed"id="bmonth"tabindex="8"> <%fori=1to12%> <optionvalue="<%=i%>"><%=i%></option> <%next%></select>月 <!--生成日--><selectname="bday"class="select_filed"id="bday"tabindex="9"> <%fori=1to31%> <optionvalue="<%=i%>"><%=i%></option> <%next%></select>日</div></td>文件reg.asp接收到的信息传递给reg2.asp文件进行验证,其实现代码见程序清单22所示<%dimerr(9)dimname,psw,psw2,sex,byear,bmonth,bday,tel,emaildimrs_test_name,rs_username=request("name")psw=request("psw")psw2=request("psw2")sex=request("sex")byear=request("byear")bmonth=request("bmonth")bday=request("bday")tel=request("tel")email=request("email")ifis_name(name)then setrs_test_name=server.CreateObject("adodb.recordset") sql="select*fromuser_regwhereuser_name='"&name&"'" rs_test_name.opensql,hotel_conn,3,2 ifnot(rs_test_name.eoforrs_test_name.bof)thenerr(2)="这个用户名已经存在"else err(1)="用户名只能使用字母、数字和下划线"endififlen(name)>12thenerr(3)="用户名不能超过12个字符"iflen(name)<4thenerr(3)="用户名不能少于4个字符"ifpsw<>psw2thenerr(4)="两次输入的密码不一致"iflen(psw)>16thenerr(5)="密码不能超过16位"iflen(psw)<4thenerr(5)="密码不能少于4位"iflen(tel)>15thenerr(6)="电话号码不能超过15个字符"iflen(tel)<7thenerr(6)="电话号码不能少于7个字符"iflen(email)>50thenerr(7)="Email最多只能有50个字符"ifnotis_email(email)thenerr(8)="Email地址错误"ifnot(isdate(byear&"-"&bmonth&"-"&bday))thenerr(9)="生日您没有选择或生日日期无效"fori=1to9iferr(i)<>""thenhaveerr="yes"next%> <% setrs_user=server.CreateObject("adodb.recordset") rs_user.open"select*fromuser_reg",hotel_conn,3,2 rs_user_total=(rs_user.RecordCount)+1 If(rs_user.RecordCount=-1)Then rs_user_total=0 While(Notrs_user.EOF) rs_user_total=rs_user_total+1 rs_user.MoveNext Wend endif rs_user.addnew rs_user("user_name")=name rs_user("psw")=psw rs_user("sex")=sex rs_user("age")=datediff("yyyy",byear&"-"&bmonth&"-"&bday,date) rs_user("email")=email rs_user("tel")=tel rs_user("byear")=byear rs_user("bmonth")=bmonth rs_user("bday")=bday rs_user.update session("user_name")=name %>登录模块登录模块主要是由文件login.asp来实现的。其登录核心代码见程序清单23.通过user_id和psw接收用户在首页填写的用户和密码,并打开数据库在user_reg用户信息表中查询,如果找到了相应的记录则将用户名写入session(“user_name”),并给变量haverr赋值为0作为显示正确登录的标识。程序清单23用户登录验证login.asp部分代码<%user_id=request.Form("user_name")psw=request.Form("psw")setrs_user=server.CreateObject("adodb.recordset")sql="select*fromuser_regwhereuser_name='"&user_id&"'andpsw='"&psw&"'"rs_user.opensql,hotel_conn,3,2ifnot(rs_user.eoforrs_user.bof)then session("user_name")=rs_user("user_name") haveerr=0else haveerr=1endif%>3.查看房间模块查看房间信息是酒店应该提供一个必要功能。图26所示是查看房间页面的示意图,从图中可以看出在该页面显示了房间名称、房间类型、费用和预约操作。图26查看房价在查看房间页面room.asp中首先要打开房间信息表room来获取信息,然后通过循环来逐条列出房间信息,见程序清单24见程序清单24显示房间信息核心代码room.asp<% setrs_room=server.CreateObject("adodb.recordset") sql="select*fromroom" rs_room.opensql,hotel_conn,3,2 rs_room.movefirst while(notrs_room.eoforrs_room.bof) %><tr><tdclass="text"><divalign="left"><%=rs_room("room_id")%></div></td><tdclass="text"><divalign="left"><%=rs_room("name")%></div></td><tdclass="text"><divalign="left"><%=rs_room("type")%></div></td><tdclass="text"><divalign="left"><%=rs_room("cost")%></div></td><tdclass="text"><divalign="left"> <ahref="preengage.asp?room_id=<%=rs_room("room_id")%>">我要预约</a> </div></td></tr> <% rs_room.movenext wend %>4.查询房间模块当房间信息过多的时候,用户为了快速获得满足自己要求的房间就比较麻烦。本系统设计了查询功能,方便用户输入条件获得需求房间。图27所示为了一个简单查询结果的页面。实现代码见程序清单25图27查询房间程序清单25查询功能实现代码search.asp<%set_room=request.Form("set_room")set_cost=request.Form("set_cost")%><formname="form1"method="post"action=""><tablewidth="533"border="0"class="table_small"><tr><tdcolspan="2"> </td></tr><tr><tdcolspan="2"class="text_title"><divalign="left">请给出查询条件:</div></td></tr><tr><tdcolspan="2"class="table_title"> </td></tr><tr><tdcolspan="2"class="text"><divalign="left"><p>查看所有费用上限<selectname="set_cost"class="select_filed2"id="set_cost"><optionselected>不作要求</option><option>50元</option><option>200元</option><option>400元</option><option>600元</option><option>600元以上</option></select>的<selectname="set_room"class="select_filed2"id="set_room"><optionselected>所有</option><option>总统套房</option><option>观光二人间</option><option>标准间</option><option>普通二人间</option><option>单人间</option><option>普通四人间</option><option>其他</option></select>房间</p></div></td></tr><tr><tdwidth="341"class="text"> </td><tdwidth="121"class="text"><divalign="center"><inputname="search"type="submit"class="button_"id="search"value="查询"></div></td></tr></table></form><% ifset_room=""andset_cost=""then response.End() else %> <% setrs_search=server.CreateObject("adodb.recordset") sql="select*fromroom" '如果输入查询条件,构造where结构 ifnot(set_cost="不作要求"andset_room="所有")then sql=sql&"where" endif ifset_room<>"所有"then sql=sql&"type='"&set_room&"'" endif ifset_cost<>"不作要求"andset_room<>"所有"then sql=sql&"and" endif ifset_cost="50元"then sql=sql&"cost<=50" elseifset_cost="200元"then sql=sql&"cost<=200" elseifset_cost="400元"then sql=sql&"cost<=400" elseifset_cost="600元"then sql=sql&"cost<=600" elseifset_cost="600元以上"then sql=sql&"cost>600" endif 'response.Write(sql) '打开房间数据库 rs_search.opensql,hotel_conn,3,2 ifrs_search.eoforrs_search.bofthen searchok=0 else searchok=1 endif %> <tablewidth="533"border="0"class="table_small"><tr><tdcolspan="4"> </td></tr><tr><tdcolspan="4"class="text_title"><divalign="left">查询结果: <% ifsearchok=1then response.Write("查看所有开放于"&set_time&"的"&set_room&"房间,费用上限"&set_cost) endif %> </div></td></tr><tr><tdcolspan="4"class="table_title"> </td></tr> <%Ifsearchok=0Then%><tr><tdcolspan="4"class="text_error"><divalign="left">●没有找到符合要求的房间</div></td> </tr> <%Else%><trclass="text_title"><tdwidth="145"><divalign="left">房间名称</div></td><tdwidth="112"><divalign="left">房间类型</a></div></td><tdwidth="136"><divalign="left">费用(元/小时)</div></td><tdwidth="118"><divalign="left">使用时间</div></td></tr> <% rs_search.movefirst while(notrs_search.eof) %><trclass="text"> <%urltext="preengage.asp?room_id="&rs_search("room_id")%><td><divalign="left"><ahref="<%=urltext%>"><%=rs_search("name")%></a></div></td><td><divalign="left"><%=rs_search("type")%></div></td><td><divalign="left"><%=rs_search("cost")%></div></td><td><divalign="left">24小时</div></td></tr> <% rs_search.movenext Wend %>5预约房间和取消预约模块预约是本系统的核心所在,该模块接收用户提交的房间编号和预约时间,并判断房间在指定时间内是否空闲,最后给出用户预约结果,如果预约成功则要将信息写入数据库。图28所示是预约房间界面,图29显示房间预约成功图28预约房间图29预约成功界面由preengage.asp文件获取的表单信息给chkpre.asp文件处理。本系统要求用户提出预约时刻要比开始使用时间提前24小时,因此首先由chkpre.asp判断用户提交的时刻是否符合要求,然后查询数据库中该房间在这个时间是否空闲,最后给出预约成功的提示,并将预约信息写入数据库,代码见程序清单26<%dimroom_id,pyear,pmonth,pday,ptime,chkok,errdimrs_preengage,rs_room,rs_saveroom_id=request.Form("room_id")pyear=request.Form("pyear")pmonth=request.Form("pmonth")pday=request.Form("pday")ptime=request.Form("ptime")%><% ifnotisdate(pyear&"-"&pmonth&"-"&pday)then err=1 endif iferr=1then %> <%="<title>出现错误!</title>"%><% setrs_preengage=server.CreateObject("adodb.recordset") sql="select*frompreengagewhereroom_id="&room_id&"andbeginhour="&ptime sql=sql&"andpyear="&pyear&"andpmonth="&pmonth&"andpday="&pday rs_preengage.opensql,hotel_conn,3,2 ifrs_preengage.eoforrs_preengage.bofthen chkok=1 else chkok=0 endif ifchkok=1then setrs_save=server.CreateObject("adodb.recordset") sql="select*frompreengage" rs_save.opensql,hotel_conn,3,2 setrs_room=server.CreateObject("adodb.recordset") sql="select*fromroomwhereroom_id="&room_id rs_room.opensql,hotel_conn,3,2 rs_save.addnew rs_save("user_name")=session("user_name") rs_save("room_id")=room_id rs_save("datetime")=now() rs_save("cost")=rs_room("cost") rs_save("pyear")=pyear rs_save("pmonth")=pmonth rs_save("pday")=pday rs_save("beginhour")=ptime rs_save.update rs_save.movelast %> <%="<title>预约成功</title>"%> <%="<title>预约未被接受!</title>"%>取消预约模块的实现和管理端删除模块使用一个文件,这里就不再详细论述。6.查看预约模块用户在预约房间后会有查询预约情况的需求,查询页面主要由文件mine.asp实现,如图30所示。程序清单27是查看预约信息的核心代码。图30查看预约程序清单27查看预约的关键代码<%dimrs_preengage,rs_grounddimtime_outsetrs_preengage=server.CreateObject("adodb.recordset")sql="select*frompreengagewhereuser_name='"&session("user_name")&"'"rs_preengage.opensql,hotel_conn,3,2%><body><divalign="center"><tablewidth="706"height="281"border="0"class="table_big"><tr><tdvalign="top"><divalign="center"> <!--#includefile="include/head.asp"--><br><tablewidth="605"border="0"class="table_small"><tr><tdcolspan="7"> </td></tr><tr><tdcolspan="7"class="text_title"><divalign="left">我的预约信息</div></td></tr><tr><tdcolspan="7"class="table_title"> </td></tr> <%Ifrs_preengage.eoforrs_preengage.bofThen%><tr><tdcolspan="7"class="text"><divalign="left">您还没有进行任何预约!</div></td></tr> <%Else%> <trclass="text"><tdwidth="105"><divalign="left">房间名称</div></td><tdwidth="68"><divalign="left">房间类型</div></td><tdwidth="50"><divalign="left">费用</div></td><tdwidth="69"><divalign="left">预约日期</div></td><tdwidth="86"><divalign="left">预约时间</div></td><tdwidth="117"><divalign="left">状态</div></td><tdwidth="80">操作</td></tr> <% rs_preengage.movefirst while(notrs_preengage.eof) setrs_room=server.CreateObject("adodb.recordset") sql="select*fromroomwhereroom_id="&rs_preengage("room_id") rs_room.opensql,hotel_conn,3,2 %><trclass="text"><td><divalign="left"><%=rs_room("name")%></div></td><td><divalign="left"><%=rs_room("type")%></div></td><td><divalign="left"><%=rs_room("cost")%></div></td><td><divalign="left"><%=rs_preengage("pyear")&"-"&rs_preengage("pmonth")&"-"&rs_preengage("pday")%></div></td><td><divalign="left"><%=rs_preengage("beginhour")&":00-"&(rs_preengage("beginhour")+1)&":00"%></div></td><td><divalign="left"> <% Ifrs_preengage("paid")=1Then response.Write("已经付款") else response.Write("尚未付款") endif time_out=datediff("d",now,rs_preengage("pyear")&"-"&rs_preengage("pmonth")&"-"&rs_preengage("pday")&""&rs_preengage("beginhour")&":00:00") iftime_out<0then response.Write("已经过期") else response.Write("尚未到期") endif %> </div></td><td> <%ifrs_preengage("paid")=0andtime_out>0then%> <ahref="cancel.asp?preengage_id=<%=rs_preengage("preengage_id")%>">取消预约</a> <%endif%> </td></tr> <% rs_preengage.movenext wend %> <%EndIf%>7.留言模块留言模块是给用户发表意见和看法的场所。图31所示为发表留言界面。程序清单28是留言功能实现的代码主要部分。图31发表留言界面程序清单28留言功能实现部分代码lword.asp<%dimtitle,word,check,lwordtitle=request.Form("title")word=request.Form("word")iftitle=""andword=""then lword=1else check="" iftitle=""thencheck="●没有输入留言标题<br>" ifword=""thencheck=check&"●没有输入留言内容<br>" iflen(title)>50thencheck=check&"●标题超过50个字符<br>" iflen(word)>250thencheck=check&"●留言超过250个字符<br>"endif%><body><divalign="center"><tablewidth="706"height="281"border="0"class="table_big"><tr><tdvalign="top"><divalign="center"> <!--#includefile="include/head.asp"--><%Iflword=1Then%> <br><formname="form1"method="post"action=""><tablewidth="532"border="0"class="table_small"><tr><tdcolspan="4"> </td></tr><tr><tdcolspan="4"class="text_title"><divalign="left">站长留言</div></td></tr><tr><tdcolspan="4"class="table_title"> </td></tr><trclass="text"><tdwidth="40"class="text"><divalign="left">标题:</div></td><tdcolspan="3"class="text"><divalign="left"><inputname="title"type="text"class="textfield"id="title"></div></td></tr><trclass="text"><tdvalign="top"class="text"><divalign="left">内容:</div></td><tdcolspan="3"valign="top"><divalign="left"><textareaname="word"class="textfield2"id="word"></textarea></div></td></tr><tr><tdcolspan="4"valign="top"> </td></tr><tr><td> </td><tdwidth="58"> </td><tdwidth="51"><inputname="lword"type="submit"class="button_"id="lword"value="留言"></td><tdwidth="361"><divalign="left"><inputname="reset"type="reset"class="button_"id="reset"value="清空"></div></td></tr><tr><tdcolspan="4"> </td></tr></table></form><%Else%> <%Ifcheck<>""Then%> <br><tablewidth="480"border="0"class="table_small"><tr><td> </td></tr><tr><tdclass="text_title"><divalign="left">留言错误!</div></td></tr><tr><tdclass="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44774-2024汽车信息安全应急响应管理规范
- 2024年度桥梁拆除工程承包合同
- 2024年度知识产权许可合同许可项目与许可费用
- 2024年度电商平台物流配送合同
- 2024年度智能家居产品买卖及安装合同2篇
- 《铁路知识学习材料》课件
- 2024年度技术开发合作合同:科技公司与研发团队共同开展新技术研究的协议
- 2024年度手机销售合同市场推广及售后服务
- 工业网络控制技术 课件 项目3 简单CPU通信应用
- 2024年度环保科技公司污染治理合同3篇
- 奢沟小学2024年春季学期法治副校长进校园开展安全、法制知识讲座实施方案
- 道法珍惜师生情谊教学课件 2024-2025学年统编版道德与法治七年级上册
- 《唱:隆里格隆 》教学设计苏少版四年级音乐下册(五线谱)第七单元 奇妙人声
- 学术英语智慧树知到答案2024年南开大学
- 奇妙的透镜说课课件-2024-2025学年沪粤版物理八年级上学期
- 农民工欠薪调解协议书模板
- 2024至2030年中国消防行业市场发展规模及投资机会分析报告
- 商铺出售回购协议书范本
- 港口液体危化品装卸管理人员理论考试题库-上(单选题)
- 电玩城消防应急疏散预案
- 人工智能技术应用专业调研报告
评论
0/150
提交评论