1、存档号:114082127 学号:200804021028石家庄铁路职业技术学院毕业设计基于PHP的酒店网站管理系统系 部 信息工程系 专业名称 计算机网络 指导教师 刘洋 学生姓名 卢志芳 二一年 十二月石家庄铁路职业技术学院信息工程系2011届毕业生毕业设计任务书题目名称基于PHP的酒店网站管理系统课题来源自拟指导教师刘洋起止日期2010年11月29日 至 2010年 12月31 日设计内容、主要技术参数与工作量(计算说明书、论文字数、图纸张数、外文翻译、计算机应用)本系统主要为酒店管理设计和开发的,其目的在于实现在线预订,留言管理,以及网站前台设计,网站后台管理,酒店管理系统:(1)在线
2、预订。用户可以在本网站在线预订,输入预订人的详细信息和入住人的信息,入住时间以及预计退房时间,点击预订,可传入数据库预定表中。(2)在线留言。客户能够在线留言,输入留言的人的信息,留言内容,点击提交,进入数据库留言表中,管理人员可根据留言情况向用户反馈的信息作出回应。(3)网站后台管理。这部分内容主要实现用户管理(添加、删除、修改)、客房管理、酒店动态管理、留言管理(4)酒店管理系统。酒店管理人员可以对客户预订、入住、退房等行为进行管理、查询。也可以对酒店的房间状态进行查询。课题要求及目标该系统制作完成后,即投入使用,因此要求系统的美观性、健壮性、安全性、可维护可管理性都要很好,以便使系统能长
3、期进行工作。使用的工具软件PHP、网页开发工具提交的设计资料软件、毕业论文(至少3000字)进 度 计 划阶段日期计划完成工作量指导教师检查意见11月29日-12月3日(1周)选题、教师讲解、需求分析12月6日-12月10日(1周)完成概要设计,如数据库设计、框架设计、等12月13日-12月24日(2周)完成详细设计,基本完成程序功能12月27日-12月31日(1周)系统完善与改进,撰写毕业论文 网络与通信 教研室2010年11月28日摘 要随着互联网和宽带上网的普及,Internet网站在中国异军突起,并日益渗透到人们的日常生活中。网站是运用现代通信技术、计算机和网络技术进行的一种社会形态,
4、其目的是通过互联网满足人们的需求。在信息高度发达的今天,酒店业务涉及的各个工作环节已不再仅仅是传统的住宿、结算业务,而是更广、更全面的服务性行业代表。酒店作为一个服务性行业,从客房的营销即客人的预定开始,到入住登记直到最后退房结账,整个过程应该能够体现以宾客为中心,提供快捷方便服务,给宾客感受一种顾客至上的享受,提高管理水平,简化各种复杂操作,在最短时间内完成酒店业务规范操作,这样才能令旅客舒适难忘。因此,采用全新的计算机管理系统,将成为提高酒店的管理效率,改善服务水准的手段之一。关键词:在线预订 在线留言 PHP 空房查询 预定查询目 录第一章 绪论11.1引言11.2开发背景及意义1第二章
5、 系统分析及关键技术介绍22.1功能需求分析22.2 采用的关键技术22.2.1 PHP技术22.2.2 JavaScript技术32.2.3 MYSQL介绍4第三章 系统详细设计63.1 后台数据库设计63.2 处理流程设计93.2.1 网上预订流程93.2.2 用户留言流程93.2.3 管理员登录流程93.2.4 管理员处理预订信息流程103.2.5 管理员处理留言流程11第四章 系统模块实现124.1前台模块实现124.1.1首页124.1.2提交订单信息124.1.3访客留言174.2后台模块实现184.2.1空房查询184.2.2预定查询194.2.3入住查询204.2.4退房查询2
6、14.3系统调试与测试224.3.1系统调试224.3.2系统测试23结束语24参考文献25第一章 绪论1.1引言中国目前正在以前所未有的规模在进行国际化的进程,酒店行业也在进行深刻的变革,如何与国际接轨,不断提高酒店的竞争力,提高酒店的品牌形象,是酒店行业普遍关注的课题。随着酒店信息化管理的进一步深入开展,越来越多的新技术被应用于酒店信息管理系统中。如何让人们的需求得到满足?在线预订酒店管理系统应运而生。酒店管理系统无疑是酒店管理中非常重要的环节。1.2开发背景及意义随着科学技术的进步和信息化时代的到来,管理信息系统在各个领域都得到广泛的应用。尤其是它在企业管理和计算机应用领域的重要性日益显
7、现。它不仅已经成为教育教学专业的核心课程,而且也是企业管理和计算机应用领域的一门重要的技术。在经济全球化的激烈竞争中,方便、快捷的管理手段已经成为所有管理部门的迫切要求。酒店作为社会需求的实体,更应该通过信息资源的深入开发和广泛利用,不断提高生产、经营、管理、决策的效率和水平,进而提高酒店经济效益和综合竞争力,实现从传统管理向现代管理的转变。新的信息系统使酒店有机会重新设计它的组织结构、职责权限、产品工艺、梳理工作流程等,从而提高酒店的生产率、劳动效益和经济效益。第二章 系统分析及关键技术介绍2.1功能需求分析需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题
8、的分析,规划出系统的功能模块,即定义用例。这个步骤是对理解需求的升华,直接关系到该系统的质量。 经过开发者同客户的需求分析后,确定酒店客房管理系统的功能模块(用例)包括:网上预订、网上留言、留言管理、客房预订管理、客房类型管理、客房信息管理、客户信息管理。 酒店系统完全采用Web方式,由前台网站和后台管理两个部分组成。前台作为与用户直接交互的可视化界面,方便客房在线预订以及在线留言等。 前台在考虑功能实现的同时,也考虑了操作的简洁和方便性,目的是让大多数客户能够轻松地享受网上预订给他们带来的便利。2.2 采用的关键技术2.2.1 PHP技术PHP 最初是1994年Rasmus Lerdorf创
9、建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要且增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQ
10、L的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言
11、,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,成分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率
12、的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。2.2.2 JavaScript技术Javascript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。 Javascript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素
13、和更加精彩的内容。 运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司 Navigator 30以上版本的浏览器都能支持 Javascript程序,微软公司 Internet Explorer 30以上版本的浏览器基本上支持Javascript。微软公司还有自己开发的Javascript,称为JScript。 Javascript和Jscript基本上是相同的,只是在一些细节上有出入。 Javascript短小精悍, 又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。 同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。Jav
14、aScript 使网页增加互动性。JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。JavaScript 的特点是无穷无尽的。2.2.3 MYSQL介绍MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。 由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而
15、备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C+、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。 MySQL开发组计划于2001年中期公布MySQL4.0版本。在这个版本中将有以下新的特性被提供:新的表定义文件格式、高性能的数据复制功能、更加强大的全文搜索功能。在此之后,MySQL开发着希望提供安全的
16、数据复制机制、在BeOS操作系统上的MySQL实现以及对延时关键字的定期刷新选项。随着时间的推进,MySQL将对ANSI 92/ANSI 99标准完全兼容。 MYSQL特点:1. 使用核心线程的完全多线程。这意味着它能很容易地利用多CPU(如果有)。 2. 可运行在不同的平台上。3. 多种列类型:1、 2、 3、4、和 8 字节长度的有符号/无符号整数(INT)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SET和ENUM类型。 4. 利用一个优化的一遍扫描多重联结(one-sweep multi
17、-join)非常快速地进行联结(join)。 5. 在查询的SELECT和WHERE部分支持全部运算符和函数。6. 通过一个高度优化的类库实现SQL函数库并且像他们能达到的一样快速,通常在查询初始化后不应该有任何内存分配。 7. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数( COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、 MAX()和MIN() )。 8. 支持ANSI SQL的LEFT OUTER JOIN和ODBC语法。 9. 你可以在同一查询中混用来自不同数据库的表。10. 一个非常灵活且安全的权限和口令系统,并且它允许基于
18、主机的认证。口令是安全的,因为当与一个服务器连接时,所有的口令传送被加密。第三章 系统详细设计3.1 后台数据库设计房间表主要有房间号、房间类型、房间状态等。如表3.1所示:表3.1 room列名数据类型长度允许空主键Room_idint11否RoomNumvarchar15否Style_idvarchar11否Statetinyint1否房间类型表主要有房间描述、房间类型、房间价格等。如表3.2所示:表3.2 roomstyle列名数据类型长度允许空主键Style_idint11否RoomStyletext否Mianjitext11否Desint1否Thumbvarchar5000否Pric
19、edecimal(7,0)否预定表主要是预定人的信息和入住人的信息。如表3.3所示:表3.3 book列名数据类型长度允许空主键Order_idint11否Style_idint11否OrderNamevarchar12否OrderPhonechar11否PersonNamevarchar12否PersonCardvarchar18否StartTimedate否LeaveTimedate否ArriveTimetime否OrderNumint30否Requirestext否入住表主要是入住人的详细信息。如表3.4所示:表3.4 check_in列名数据类型长度允许空主键Come_idint11否
20、StartTimedate否RoomNumvarchar15否PersonNamevarchar12否PersonCardvarchar18否PersonPhonevarchar11否LeaveTimedate否FuFeidecimal(7,0)否退房表主要是查询酒店以前入住的顾客的信息。如表3.5所示:表3.5 check_out列名数据类型长度允许空主键Out_idint11否StartTimedate否RoomNumvarchar15否PersonNamevarchar12否PersonCardvarchar18否PersonPhonevarchar11否LeaveTimedate否Fu
21、Feidecimal(7,0)否留言表主要是顾客对酒店提出的意见,管理人员及时给顾客满意的回复。如表3.6所示:表3.6 message列名数据类型长度允许空主键Message_idint11否Themetext是Contenttext否Peoplevarchar12是Companyvarchar20是Addrvarchar50是Telvarchar12是Phonevarchar18否Faxvarchar12是Codevarchar6是E_mailvarchar20是Timedate否新闻表主要是为前台动态提供的。如表3.7所示:表3.7 news列名数据类型长度允许空主键idint4否new
22、stitlevarchar20否newscontentlongtext否faburenvarchar15否newstimedate否管理员表主要是管理员登录的,记载用户名和密码的信息。如表3.8所示:表3.8 user列名数据类型长度允许空主键idint4否usernamevarchar12否userpassvarchar12否3.2 处理流程设计3.2.1 网上预订流程浏览网页选择房型预定房间提交订单填写信息图3.1 网上预定流程进入留言页面输入留言内容提交返回上一页面重置3.2.2 用户留言流程图3.2 用户留言流程用户是否存在核对密码是否正确是是否否登录入口3.2.3 管理员登录流程取得
23、用户名和密码将userID存入session中登录成功图3.3 管理员登录流程3.2.4 管理员处理预订信息流程查询预订房间预定表客人入住登记收 银查询预订信息计算费用图3.4 管理员处理预订信息流程3.2.5 管理员处理留言流程进入留言页面查看留言内容作出相应回复返回图3.5 管理员处理留言流程第四章 系统模块实现4.1前台模块实现4.1.1首页当进入网站时,首先出现的是本网站的首页,首页包括本网站前台用户的所有功能菜单,界面美观,网页的中间是一个flash使得界面更美观,界面如图4.1所示。图4.1 网站首页4.1.2提交订单信息其中最为重要的就是前台的JavaScript验证部分,首先选
24、择房间类型如图4.2所示:图4.2 房间类型展示主要代码如下:include (class/class_roomstyle.php);include (class/class_room.php);$roomstyle=new roomstyle;$room=new room;$result=$roomstyle-roomstyle_sel_all();$result_count=count($result);$pagesize=10;$pagecount=ceil($result_count/$pagesize);$pageno=$_GETno;if(!isset($pageno) $page
25、no=1;$step=$pagesize*($pageno-1);for($i=$step;$i$pagesize-1+$step) break; $row=$result$i; $style_id=$rowStyle_id; $roomstyle1=$rowRoomStyle; $mianji=$rowMianji; $price=$rowPrice; $a=$room-getstate($style_id);然后输入:入住日期,离店日期,房间数,预订人信息,入住人信息等如图4.3所示:图4.3 输入预定信息处理:通过post方式提交到第二步输出:显示第二步的页面界面如图4.4所示:图4.4
26、 客户订单显示主要代码(主要是js的判断):function check() if(!checkno(starttime,入住日期不能为空!,1) return false; if(!checkno(leavetime,离店日期不能为空!,1) return false; if(!checkno(ordername,您的姓名不能为空!,1) return false; else if(!checkno(ordername,姓名不能少于2个字符!,4) return false; if(!checkno(orderphone,您的电话不能为空!,1) return false; else if(
27、!checkno(orderphone,手机号格式不正确!,2) return false; if(!checkno(personname,入住人姓名不能为空!,1) return false; if(!checkno(personname,姓名不能少于2个字符!,4) return false; if(!checkno(personcard,入住人身份证不能为空!,1) return false; else if(!checkno(personcard,身份证格式不正确!,3) return false; return true; function checkno(name,info,opt
28、ion)/option:1-检查空值 2-检测手机号格式 3-检测身份证号格式 4-姓名不能少于2个字符 var obj=document.getElementById(name); switch(option) case 1: if(obj.value = ) alert(info); return false; break; case 2: var reg = /10-910$/; if(!reg.test(obj.value) alert(info); return false; break; case 3: var reg2=/d15|d17(?:d|x)$/; if(!reg2.te
29、st(obj.value) alert(info); return false; break; case 4: if(obj.value.length2) alert(info); return false; break; return true;4.1.3访客留言顾客进入网站留言界面时,可以对酒店不满意的地方提出意见,我们专门解决,并及时给顾客满意的回复。如图4.5所示:图4.5 顾客留言界面4.2后台模块实现4.2.1空房查询店内员工可根据客房类型查询所剩空房。如图4.6所示:图4.6 空房查询主要代码:include(./class/class_room.php);$select1=tr
30、im($_POSTselect1);$roomstyle= new roomstyle;$roomstyle-RoomStyle=$select1;$row=$roomstyle-roomstyle_sel_bystyle();$style_id=$row0Style_id;$room=new room;$room-Style_id=$style_id;$result1=$room-room_selbystate();$result_count1=count($result1);4.2.2预定查询当客人入住时,店员可根据省份证号查询预订信息,给客人入住登记。如图4.7所示:图4.7 预定查询主
31、要代码:include (./class/class_roomstyle.php);include (./class/class_order.php);$personcard= trim($_POSTshenfen);$book=new book;$book-PersonCard=$personcard;$row=$book-order_sel_byshenfen();$styleid=$row0Style_id;$ordername=$row0OrderName;$orderphone=$row0OrderPhone;$personname=$row0PersonName;$personca
32、rd=$row0PersonCard;$starttime=$row0StartTime;$arrivetime=$row0ArriveTime;$leavetime=$row0LeaveTime;$ordernum=$row0OrderNum;$requires=$row0Requires;$roomstyle=new roomstyle;$roomstyle-Style_id=$styleid;$rows=$roomstyle-roomstyle_sel_byid();$roomstyle1=$rows0RoomStyle;$styleid1=$rows0Style_id;4.2.3入住查
33、询客人退房时,员工根据房号查询入住人的信息,点击退房按钮,数据库自动更新。如图4.8所示:图4.8 入住查询主要代码:include(./class/class_db.php);include (./class/class_ruzhu.php);$roomnum1= trim($_POSTroomnum);$ruzhu=new ruzhu;$ruzhu-RoomNum=$roomnum1;$row=$ruzhu-ruzhu_sel_byroomnum();$personname=$row0PersonName;$personcard=$row0PersonCard;$personphone=$
34、row0PersonPhone;$starttime=$row0StartTime;$leavetime=$row0LeaveTime;$roomnum=$row0RoomNum;$price=$row0FuFei;4.2.4退房查询图4.9 退房查询主要代码(分页显示):include (./class/class_tuifang.php);$tuifang=new tuifang;$result=$tuifang-tuifang_sel_byall();$result_count=count($result);$pagesize=1;$pagecount=ceil($result_coun
35、t/$pagesize);$pageno=$_GETno;if(!isset($pageno) $pageno=1;$step=$pagesize*($pageno-1);for($i=$step;$i$pagesize-1+$step) break; $row=$result$i;$personname=$rowPersonName;$personcard=$rowPersonCard;$personphone=$rowPersonPhone;$starttime=$rowStartTime;$leavetime=$rowLeaveTime;$roomnum=$rowRoomNum;$pri
36、ce=$rowFuFei;4.3系统调试与测试4.3.1系统调试在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。4.3.2系统测试软件测试是保证软件质量,提高软件可靠性的最主要的活动之一。它实施对软件规格说明、设计规格说明和编码的最终审核。软件测试的目的是以最少的人力、物力和时间投入,尽可能多地找出软件中潜在的各种错误和缺陷。测试
37、的结果为软件可靠性分析提供了依据。设计测试用例的方法一般有两种:黑盒法以及白盒法。本次测试采用的是黑盒测试,将大部分可能的值来检查系统程序的正确性,并通过测试得到的结果进行必要的调试和功能改进。结束语经过了一个月左右的学习和设计,在指导老师的帮助下我们终于完成了基于PHP在线预订、酒店管理系统的制作。在这期间我明白了我所学的实在是太少了,自己的能力是多么的有限和不足,然而我并不会灰心和气馁,我会继续执着一颗不断求学的信心,来继续以后的学习之路或工作之路,从而来完善自己的不足,使自己在以后的学习或工作中得到更好的学习和锻炼,同时在这次设计中,我也学到了很多知识也有很多感受,从对PHP等各种工具的
38、功能不是很了解到上网查资料学习,遇到问题不懂而老师不在时就上网提问,再到对各方面都比较熟练,我深深体会到:对知识的学习既要深入,又要博览;既要整体把握,又要细致入微。这次设计是我在大学期间完成的最大的项目,是由我们三人共同完成的,正是由于她们的帮助和支持,设计才能顺利完成。每个人在设计中都起了必不可少的一部分,从讨论到分工合作,每一处都体现着团队的合作精神。本次毕业设计就要画上一个句号了。可是它本身对我的影响却远远没有结束。我从本次毕业设计中学到了很多的东西。通过我们三人的努力以及老师同学的帮助,我在知识水平和解决实际问题的能力上,有了很大的提高。我的动手能力也得到了提高,我坚信它必将会对我们
39、未来走上工作岗位产生积极的影响。参考文献1王军.MYSQL4从入门到精通.电子工业出版社2袁勤勇.Apache Server2.0 技术参考大全.清华大学出版社3王石,杨英娜.精通PHP+MySQL应用开发.人民邮电出版社4贺民.PHP技术内幕.中国水利水电出版社石家庄铁路职业技术学院毕 业 设 计 (论文)评 定 表姓名卢志芳学号200804021028存档号114082127系别信息工程系专业计算机网络班 级40821毕业论文(设计)题目基于PHP的酒店网站管理系统指导教师评语:签名: 年 月 日 1毕业设计评定成绩:指导教师签名: 年 月 日2答辩成绩:答辩小组组长签名:年 月 日3毕业设计综合成绩:指导教师签名:年 月 日备注:1.“毕业设计评定成绩”一项由指导教师根据毕业设计过程的表现及毕业设计说明书评定,满分100分。2.“答辩成绩”一项由答辩小组根据答辩情况评定,满分100分。3.“毕业设计综合成绩”=“毕业设计评定成绩”70%+“答辩成绩”30%。