酒店管理信息系统毕业论文.doc
目 录摘 要3关键词3前言4第一章 绪论51.1选题背景51.2 系统搭建的目的和意义51.3 课题内容简述51.4 开发环境及工具介绍61.4.1 系统开发工具61.4.2 数据库开发工具6第二章 系统分析72.1 需求分析72.2 可行性分析7第三章 总体设计83.1 项目规划83.2 系统功能结构图8第四章 系统设计94.1 设计目标94.2 开发及运行平台94.3 逻辑结构设计94.3.1 数据表概要说明104.3.2 主要数据表的结构10第五章 前台主要功能模块详细设计125.1 前台模块功能介绍125.2 工作人员登录模块125.3 顾客订/退房模块135.4 顾客入住登记模块175.5 信息确认系统195.6 顾客查找功能20第六章 后台主要功能模块详细设计226.1 后台模块功能介绍226.2 管理员登录模块226.3 客房信息管理模块246.3.1 客房信息的修改/删除246.4 顾客信息管理模块266.5 工作人员信息管理模块276.5.1 工作人员信息的修改/删除276.5.2 工作人员信息的添加29结束语31致谢32参考文献33摘 要:酒店管理信息系统面对强大的信息量可以轻松的管理,减少了在管理上面物力和人力,有利于宾馆提高工作效率和宾馆效益。面对庞大的信息量,酒店在正常运营中需要对客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解保个环节中信息的变更,有利于提高管理的效率.通过这样的系统,可以做到信息的规范管理、需要统计和快速的查询,从而减少在管理方面的工作量。采用ASP来编写,一个系统的开发建立数据库是至关重要的。本课题数据库采用的是Access2003,通过建立数据源,ASP站点与后台的数据库连接运行。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点,设计思想、难点技术和解决方案。关键词:数据库,ASP,Access2003,客房信息管理酒店管理信息系统前言随着我国加入世界贸易组织,酒店服务业与国际市场接轨已成为大势所趋,酒店要迎接这场挑战,就必须提高整体竞争能力,提高整体竞争能力必须变革酒店的管理模式,提高管理水平,实施信息化建设无疑是实现这一目的的必由之路和明智之举。目前,我国酒店服务业信息化管理的进程缓慢,跟国外的酒店相比管理依然落后。在激烈的酒店业竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?这就需要提供最好的服务,提供最完善的设施和最先进的技术。一个成功的酒店,其经营者不仅要提高服务水平和服务质量,从而提高客房占有率和回头率,还要有好的工作效率,并控制成本。在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人和更好地管理酒店。 一套优秀的酒店管理信息系统应该是一套适用于星级宾馆使用的优秀系统,操作简单、灵活性好、系统安全性高、运行稳定,是管理者的理想选择。我的毕业设计题目就是设计一个小型酒店管理信息系统,在前期的考察和分析之后,对系统进行了设计,虽然受水平所限,实践经验十分匮乏,独立完成一套完备的优秀的酒店管理信息系统有很大的难度,但是我努力在实践中巩固以及整理自己在大学期间所学的知识,尽量把这个系统设计的更好。第一章 绪论1.1选题背景酒店业是一个前景广阔而又竞争激烈的行业。改革开放以来,我国的酒店业迅速发展,已经成为一个具有相当规模的产业。由于我国的旅游业迅速发展,通过调查,我国在2020年将成为世界上第四大旅游国家;同时我国加入世界贸易组织,酒店业将完全开放,这个时候,我国的酒店业将面临着前所未有的机遇和挑战。但是,现在甚至还有一些酒店还停留在由人工操作和管理阶段,这样已经无法适应当前的发展趋势。因此,要想使酒店的工作质量和效率提高,采用先进的计算机网络通信技术改变酒店业务模式,实现酒店业务管理的自动化已经成为一种必然。1.2 系统搭建的目的和意义对酒店整个来说,对酒店经营状况起决定作用的是酒店的服务管理水平。如何利用先进的管理手段来提高酒店的管理水平成为酒店业务发展的当务之急。面对信息时代的机遇和挑战,利用科技手段提高酒店的管理无疑是一条行之有效的途径。虽然计算机管理并不是酒店管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对酒店的业务管理提供强有力的支持。因此,采用全新的计算机网络和酒店业务管理系统,已成为提高酒店的管理效率,使作业人员与管理系统之间灵活互动,实现流畅的工作流衔接,帮助酒店有效地进行业务管理,释放最大价值。酒店业务管理系统在达到在节省人力资源成本的同时,可以提高业务效率,并能够及时、准确、迅速地满足顾客服务的需求。1.3 课题内容简述毕业设计选题酒店管理信息系统,主要研究了两个方面的内容:酒店业务的管理(划分为,客户界面部分,经理界面部分,前台职员界面部分。),客户服务部分(动态网站)。1.4 开发环境及工具介绍1.4.1 系统开发工具本系统是基于ASP动态建设完成,下面对ASP进行初步的认识:ASP的全称是:Active Server Pages,是在服务器端脚本编译环境,使用它可以创建和运行动态、交互的Web服务器应用程序。ASP可以与HTML页、脚本命令和ActiveX组件组合创建交互的Web页和基于Web的功能强大的应用程序。ASP应用程序很容易开发和修改。1.4.2 数据库开发工具在本次数据库中,本人采用了微软的Access2003数据库。Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。 Access能够存取 Access/Jet、Microsoft SQL Server、Oracle,或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的"进阶用户"则能使用它来开发简单的应用软件。虽然它支援部份面向对象(OO)技术,但是未能成为一种完整的面向对象开发工具。第二章 系统分析2.1 需求分析通过调查,要求系统具有以下功能:l 由于操作人员的计算机知识普遍较差,因此要求有良好的人机界面。l 由于该系统的使用对象多,因此要求有较好的权限管理。l 基础信息的管理(包括工作人员的管理,客房管理和顾客信息管理)l 通过计算机能够直接查看客房入住情况l 完善客房信息,对客房信息进行管理。l 数据计算自动完成,尽量减少人工干预。l 系统退出。2.2 可行性分析通过计算机网络系统对酒店进行全面的管理,满足了酒店现代化信息管理的要求。l 经济性酒店运营过程中信息的系统化管理和权威的数据统计,为酒店的经营决策者提供了大量的、权威的科学依据;强大的结算功能,简化了员工的日常工作,提高了工作效率,避免了人工管理过程中数据易错所带来的一系列的连锁反应,提高了酒店的经济效益。l 技术性在高系统配置、高网络带宽服务的情况下,各个级别的管理员很容易通过网站对其操作规范内的系统内容信息进行操作管理,完全满足日常经营和管理的要求。第三章 总体设计3.1 项目规划酒店管理信息系统是一个典型的数据库开发应用程序,由基础信息模块、工作人员管理模块、客房信息管理模块、顾客信息管理模块等部分组成,各模块的功能如下。l 基础信息模块该模块主要管理客房信息查询、顾客入住信息登记和顾客基本信息查询。l 工作人员管理模块该模块主要管理工作人员信息,包括工作人员信息修改、添加工作人员。l 客房信息管理模块该模块主要管理客房信息,包括客房信息的修改和添加新客房。l 顾客信息管理模块该模块主要管理顾客信息,主要是顾客信息的删除。3.2 系统功能结构图该系统的功能结构图,如图3.1所示。酒店管理信息系统工作人员登录管理员登录客房信息查询顾客入住信息登记顾客基本信息查询客房信息管理工作人员管理顾客信息管理工作人员信息修改添加工作人员工作人员信息删除客房信息修改客房信息删除顾客信息查询顾客信息删除图 3.1 系统功能结构图第四章 系统设计4.1 设计目标本系统是针对中小型酒店信息管理来进行设计的,主要实现如下目标。l 系统采用人机对话方式,界面美观友好、信息查询灵活、方便、快捷、准确,数据存储安全可靠。l 键盘操作,快速响应。l 强大的入住登记功能。l 全面的客房信息查询功能。l 管理员可以设置工作人员的信息。l 数据保密性强。l 系统最大限度地实现了易维护性和易操作性。l 系统运行稳定、安全可靠。4.2 开发及运行平台l 硬件平台Ø CPU:Pentium 4, 1.8GHz。Ø 内存:256MB以上。l 软件平台Ø 操作系统:Windows XP / Windows vista / Windows 7。Ø 数据库:Microsoft Office Access。Ø 浏览器:IE浏览器7.0及更新版本。Ø 分辨率:最佳效果 1440×900 像素。4.3 逻辑结构设计本系统采用Microsoft Office Access数据库,系统数据库名称为db1。数据库db1中包含5张表。下面分别给出数据表概要说明和各个数据表的结构。4.3.1 数据表概要说明为了使读者对本系统后台数据库中的数据表有一个更清晰的认识,在此设计了一个数据表结构图,如图4.1所示,该数据表结构图包含了系统的所有数据表。图4.1 数据表结构图4.3.2 主要数据表的结构l admin (后台管理员表) 后台管理员表主要用于系统后台管理员登录,该表结构如表4.1所示表4.1 admin表的结构l customer(顾客登记信息表) 顾客登记信息表主要用于顾客入住登记信息的记录,该表结构如表4.2所示表4.2 customer 表的结构l rooms(酒店客房信息表) 酒店客房信息表主要用于记录客房详细信息,该表结构如表4.3所示。表4.3 rooms表的结构l roomtype(酒店客房标准表) 酒店客房标准表主要是规范酒店客房的类型,该表结构如表4.4所示表4.4 roomtype表的结构l worker(工作人员信息表) 工作人员信息表主要用于记录工作人员的详细信息,该表结构如表4.5所示。表4.5 worker表的结构第五章 前台主要功能模块详细设计5.1 前台模块功能介绍前台页面主要包括以下功能模块。l 工作人员登录模块:主要用于酒店工作人员登录。l 顾客订/退房模块:主要用于顾客的订房和退房。l 顾客入住登记模块:主要实现顾客的入住信息登记。l 信息确认系统:主要用于顾客的入住信息确认及缴费功能。l 顾客查找功能:主要实现顾客简单信息的查找。5.2 工作人员登录模块在酒店中信息的安全性是非常重要的,管理人员会分配给工作人员系统登录帐户以方便管理人员的管理,工作人员在登录时查询worker表的数据寻找并验证相匹配的数据,如果存在相对应的数据工作人员便可以登录网站。下面先看一下工作人员登录时的代码验证部分。代码如下:例程 5-1 checklogin.asp<%LANGUAGE="VBSCRIPT" CODEPAGE="65001"%><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http:/www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>酒店管理信息系统</title></head><body><!-#include file="connect.inc"-> 连接数据库<%aname=request("aname")pwd=request("pwd")set rs=server.CreateObject("adodb.recordset")rs.open "select * from worker where wname='"&aname&"' and pwd='"&pwd&"'",conn 按登录名和密码进行查询if not rs.eof then 如果输入信息正确session("aname")=anamesession("id")=rs("id")response.Redirect("index.asp") 转到主页else%><script>alert("您的用户名或密码输入错误!请重新输入!");history.back();</script>如果输入错误则提示后返回重新输入<% End If %></body></html>5.3 顾客订/退房模块顾客订/退房模块主要功能是显示未订出的客房信息和已订出的客房信息,其页面设计效果如图5.1所示。图5.1 顾客订/退房模块效果图客房信息展示页面中主要是按客房房号升序排列来显示客房信息。关键程序代码如下:例程 5-2 checkin.asp<form id="form1" name="form1" method="post" action=""> <%set rs=server.CreateObject("adodb.recordset")rs.open"SELECT rooms.roomnum,rooms.roomid,roomtype.typename,roomtype.area,roomtype.bednum,roomtype.hair,roomtype.hphone,roomtype.htv,roomtype.price,rooms.note,rooms.putup FROM rooms INNER JOIN roomtype ON rooms.roomtype = roomtype.typeid where rooms.putup=0",conn根据rooms.roomtype = roomtype.typeid显示数据以及根据rooms.putup=0来判断客房的订/退信息if rs.eof thenelsedo until rs.eof %> <tr> <td height="20" align="center" valign="middle"><span class="STYLE13"><%= rs("roomnum") %></span></td> <td height="20" align="center" valign="middle"><span class="STYLE13"><%= rs("typename") %></span></td> <td height="20" align="center" valign="middle"><span class="STYLE13"><%if rs("hair")=1 then response.Write("Y") Y代表是 else response.Write("N") N代表否 end if %></span></td> <td height="20" align="center" valign="middle"><span class="STYLE13"><%if rs("htv")=1 then response.Write("Y") else response.Write("N") end if %></span></td> <td height="20" align="center" valign="middle"><span class="STYLE13"><%if rs("hphone")=1 then response.Write("Y") else response.Write("N") end if %></span></td> <td height="20" align="center" valign="middle"><span class="STYLE13"><%= rs("area") %></span></td> <td height="20" align="center" valign="middle"><span class="STYLE13"><%= rs("bednum") %></span></td> <td height="20" align="center" valign="middle"><span class="STYLE13"><%= rs("price") %></span></td> <td align="center" valign="middle"><span class="STYLE13"><%= rs("note") %></span></td> <td height="20" align="center" valign="middle" id="word"><span class="STYLE13"><a href="checkin_ok.asp?id=<%= rs("roomid") %>">订房</a></span></td> </tr> <% rs.movenextlooprs.closeset rs=nothingend if %> </table></form><hr /><form id="form2" name="form2" method="post" action=""> <%set rt=server.CreateObject("adodb.recordset") rt.open "SELECT rooms.putup,customer.dates,customer.flag,customer.id,customer.indate,customer.custid,customer.zprice,rooms.roomnum,customer.roomtype,customer.sex,customer.custnam FROM rooms INNER JOIN customer ON rooms.roomnum=customer.roomnumb where (putup=1 and flag='1') order by roomnum",conn 根据flag=1来判断已订出的客房if rt.eof then 显示订房顾客的基本信息以及实现退房功能elsedo until rt.eof %> <tr> <td align="center" valign="middle"><%= rt("roomnum") %></td> <td align="center" valign="middle"><%= rt("roomtype") %></td> <td align="center" valign="middle"><%= rt("custnam") %></td> <td align="center" valign="middle"><% if rt("sex") then response.Write("M") else response.Write("F") end if%></td> <td align="center" valign="middle"><%= rt("custid") %></td> <td align="center" valign="middle"><%= rt("indate") %></td> <td align="center" valign="middle"><%= rt("dates") %></td> <td align="center" valign="middle"><%= rt("zprice") %></td> <td align="center" valign="middle" id="word"><span class="STYLE13"><a href="checkout.asp?roomnum=<%= rt("roomnum") %>&id=<%= rt("id") %>">退房</a></span></td> 实现顾客的退房功能 </tr> <% rt.movenextloopend if %> </table> <% 'ra.movenext 'loop %></form>5.4 顾客入住登记模块顾客入住登记模块主要是实现顾客订房后的个人信息录入。其网页设计效果图如图5.2所示。图5.2 顾客入住登记模块效果图其主要实现代码如下:例程5-3 checkin_ok.asp<!-#include file="connect.inc"-> 连接数据库<% id=request("id") 获取idset rs=server.CreateObject("adodb.recordset")rs.open "SELECT roomtype.typename, roomtype.price, rooms.roomnum FROM rooms INNER JOIN roomtype ON rooms.roomtype = roomtype.typeid where roomid="&id,conn%>5.5 信息确认系统信息确认系统主要是为了确定顾客的登记信息正确以及缴纳房费以确定订房,其网页设计效果图如图5.3所示。图5.3 信息确认系统的效果图其主要实现代码如下:例程5-4 check.asp<!-#include file="connect.inc"-><p align="center" class="STYLE1">信息登记确认</p><hr /><form id="form1" name="form1" method="post" action="check_ok.asp"><input type="hidden" name="aname" value=<%= request("aname") %> /> 创建隐藏域以方便传递顾客姓名<input type="hidden" name="custid" value=<%= request("custid") %> /> 创建隐藏域以方便传递顾客身份证号码<input type="hidden" name="sex" value=<%= request("sex") %> />创建隐藏域以方便传递顾客性别<input type="hidden" name="note" value=<%= request("note") %> />创建隐藏域以方便传递顾客预留备忘<%id=request("id")indate=request("indate") 获取入住时间aday=request("aday") 获取入住天数set rs=server.CreateObject("adodb.recordset")rs.open "SELECT roomtype.typename, roomtype.price, rooms.roomnum FROM rooms INNER JOIN roomtype ON rooms.roomtype = roomtype.typeid where roomid="&id,conn%>5.6 顾客查找功能顾客查找功能主要是为了方便顾客的查找以及显示一些基本的顾客信息,其网页设计效果图如图5.4所示。图5.4 顾客查找功能效果图其主要实现代码如下:例程5-5 search_ok.asp<!-#include file="connect.inc"-> 连接数据库 <% custnam=request("custnam") 获取顾客姓名 set rs=server.CreateObject("adodb.recordset") rs.open "select * from customer where (custnam like '%"&custnam&"%' and flag='1' )",conn 在数据库中根据获取的顾客名进行查找 %> <% if rs.eof then 显示查到的顾客的基本信息 else do until rs.eof %> <tr> <td width="80" height="20" align="center" valign="middle"><%= rs("custnam") %></td> <td width="80" height="20" align="center" valign="middle"><% if rs("sex") thenresponse.Write("M")elseresponse.Write("F")end if %></td> <td height="20" align="center" valign="middle"><%= rs("roomnumb") %></td> <td height="20" align="center" valign="middle"><%= rs("indate") %></td> <td height="20" align="center" valign="middle"><%= rs("dates") %></td> <td height="20" align="center" valign="middle"><%= rs("zprice") %></td> </tr> <% rs.movenextlooprs.closeset rs=nothingend if %>第六章 后台主要功能模块详细设计6.1 后台模块功能介绍后台页面主要包括以下功能模块。l 管理员登录模块:主要实现管理人员的登录。l 客房信息管理模块:主要实现客房信息的修改、删除和添加功能。l 顾客信息管理模块:主要实现顾客信息的删除功能。l 工作人员信息管理模块:主要实现工作人员信息的修改、删除和添加功能。6.2 管理员登录模块管理员登录模块主要是为了实现验证后台管理人员的功能,其登录网页页面设计效果图如图6.1所示。图6.1 管理员登录模块效果图其采用Javascript脚本代码以判断管理员的登录名、密码和验证码是否输入主要实现代码如下:例程6-1 admin/login.asp<script language="javascript">function check()var x=code.innerTextif(form1.admin.value="") 如果管理员姓名未输入则出入提示并跳至输入文本框 alert("请输入管理员姓名!"); form1.admin.select(); return false; if(form1.pwd.value="") 如果管理员密码未输入则出入提示并跳至输入文本框 alert("请输入管理员密码!"); form1.pwd.select(); return false; if(form1.code.value="") 如果验证码未输入则出入提示并跳至输入文本框 alert("请输入验证码!"); form1.code.select(); return false; if(form1.code.value.toUpperCase()!=x) 如果验证码错误则提示错误并跳至输入文本框 alert("验证码输入错误!"); form1.code.select(); return false; return true;</script>其验证码实现代码如下:例程6-2 inc/chkcode.asp<% response.CacheControl="no-cache" response.Expires=0 response.ExpiresAbsolute=now()-1待添加的隐藏文字内容2 const stringar="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" dim randar,strlength strlength=len(stringar)-1 randomize for i=1 to 4 randar=randar&Mid(stringar,int(Rnd*strlength+1),1) next response.Write(randar) %>6.3 客房信息管理模块 客房信息管理模块主要是为了实现客房信息的修改、删除和添加客房。6.3.1 客房信息的修改/删除客房信息的修改/删除主要是为了调整客房基本信息,以实现系统信息的准确性,其网页设计效果图如图6.2所示。图6.2 客房信息的修改/删除效果图客房信息修改的主要代码如下:例程6-3 admin/Hmsg_all_alter_ok.asp<!-#include file="connect.inc"-> 连接数据库<%id=request("roomid") 获取id roomtype=request("roomtype") 获取客房类型 note=request("note") 获取客房备注 set rs=server.CreateObject("adodb.recordset") rs.open "select * from rooms where roomid="&id,conn,2,2 修改客房信息 rs("roomtype")=roomtype rs("note")=note rs.update%><script>alert("信息修改成功!");location.replace("Hmsg_all.asp");</script> 修改成功后跳转至Hmsg_all.asp客房信息删除的主要代码如下:例程6-4 admin/Hmsg_all_del.asp<!-#include file="connect.inc"-> 连接数据库<% id=request("id") 获取客房id set rs=server.CreateObject("adodb.recordset") rs.open "delete * from rooms where roomid="&id,conn 根据客房id删除客房信息%><script>alert("操作成功,已删除信息!");location.replace("Hmsg_all.asp");</script> 删除成功后跳转至Hmsg_all.asp6.4 顾客信息管理模块顾客信息管理模块的主要功能是为了实现顾客信息的删除,其网页设计效果图如图6.3所示。图6.3 顾客信息管理模块效果图其主要实现代码如下:例程6-5 admin/Cmsg_del.asp<!-#include file="connect.inc"-><% id=request("id") 获取顾客id conn.execute "delete from customer where id="&id 根据顾客id删除顾客信息 response.Redirect("Cmsg.asp") 删除成功后跳转至Cmsg.asp%>6.5 工作人员信息管理模块工作人员信息管理模块主要实现工作人员的修改、删除和添加新工作人员信息。6.5.1 工作人员信息的修改/删除工作人员信息的修改/删除主要是为了实现对工作人员信息的更改和删除,以保证系统的安全性。其网页设计效果图如图6.4所示。图6.4 工作人员信息的修改/删除效果图工作人员信息修改的主要实现代码如下:例程6-6 admin/Wmsg_gl_alter_ok.asp<!-#include file="connect.inc"-> 连接数据库<% id=request("id") wxm=request("wxm") wname=request("wname") pwd=request("pwd") wid=request("wid") addr=request("addr") phone=request("phone") if request("sex")="M" then sex=1 else sex=0 end if set rs=server.CreateObject("adodb.recordset") rs.open "select * from worker where id="&id,conn,2,2 根据id修改信息 rs("wxm")=wxm rs("wname")=wname rs("pwd")=pwd rs("wid")=wid rs("addr")=addr