酒店管理系统程序设计报告.docx
《酒店管理系统程序设计报告.docx》由会员分享,可在线阅读,更多相关《酒店管理系统程序设计报告.docx(67页珍藏版)》请在冰豆网上搜索。
酒店管理系统程序设计报告
上海电力学院
软件工程实训报告
题 目:
酒店预订管理系统
学号:
********姓名:
陈铭豪
院 系:
计算机科学与技术学院
专业年级:
软件工程2012级
2015年5月19日
课程题目:
酒店预订管理系统
1.课程目标:
建立基于B/S架构的酒店预订系统,使酒店业运作的更加可靠、快捷和高效。
本系统是针对酒店的具体业务而开发的。
业务管理以旅客上网预订房间为核心,为旅客提供高效的服务,减免手工处理的繁琐与误差,及时、准确的反映酒店的情况。
系统具体有以下特点:
•系统具有高可靠性、安全性、操作性。
•模块化结构,可根据业务需要,十分方便的进行添加、删除、修改和快速查询的功能。
•直观的图形用户界面,更加简便快捷.
•系统的实用性:
本系统的开发成本低,功能针对酒店的实际功能,实用性强,可维护性好.
2.可行性分析报告
2.1系统基本要求
2.1。
1客房预定管理
利用计算机进行预订业务操作是指应用管理信息系统中的预定功能模块接受和处理客人的订房信息,并随客房状况实施有效控制.通常计算机处理预定信息的功能体现在以下具体内容。
●1接受客户提前预定房间,并登记好客户的姓名,订房要求,预定时间,联系方式等信息
●2每项预定纪录都可通过姓名、预定时间,联系方式等方式查询.
●3可更改或取消预定记录,并对更改和取消进行存档记录。
自动为客人建立账单。
●4预订单生成入住登记表
●5随时显示客房状况,包括出租率、房态、可售房、住店人数、当日预抵离房数等
2。
1.2查询管理
该模块主要对住客信息及历史资料进行查询.根据前厅部管理要求及对客服务的需要,系统中的查询功能应做到快捷、准确和高效,同时应具有多种方式的查询途径.
●按各种条件查询现住及离店的客人信息
●按各种条件查询,包括房间号、姓名、地区等 3)可查询本日的客流量 4)客房占用情况查询
2。
2项目的目标
主要目标是实现对酒店内部管理的电子化自动化,提高酒店的办公效率,使管理更加严谨规范,为高质量服务的酒店提供保证,提高酒店的经济效益。
实现工作流的自动化,以及流程的实时监控与跟踪;实现文档管理的自动化,并可按权限进行查询使用;实现信息集成,将各种业务系统的数据集成;可对客户资源进行管理;可实现公司所有的信息和协同进行集中管理。
2.3可行性认证
2.3。
1社会可行性分析
社会上已有很多成功开发酒店信息系统的企业,社会需要酒店管理的现代化和信息化。
酒店信息系统开发和运行与国家的政策法规不存在任何冲突和抵触之处。
另外,酒店信息系统所采用的操作操作方便灵活。
该操作系统容易学习,掌握。
因此该系统具有可行性。
2.3.2技术可行性分析
酒店管理信息系统所需要的数据库编程技术,以及前台设计能力,以当前的学生能力而言可以完成一定程度的设计
2.3。
3经济可行性分析
课程设计故暂时不做评估。
2。
3。
4运行可行性分析
对该系统的运行所带来的影响进行估计和评价,同时要考虑现有管理人员是否能满足新系统带来的工作要求,分析在给定的时间内是否能完成开发任务。
2.4可行性分析结论
通过经济、技术和社会等方面的可行性分析,可以确定本系统的开发是可行的,可以立即开发。
3。
需求分析
3。
1基本需求
经过对酒店预订流程的大概了解及对网上提供的预定系统的参考和交流,此系统应有如下功能:
1)管理端有如下功能:
●管理员的管理;
●处理订单;
●添加新资源;
●资源的修改;
●资源的查询;
2)客户端有如下功能:
●客户注册和登录;
●浏览酒店提供的各种预订资源,并根据自己需要下订单;
●客户注册成功后可以下达订单;
●客户登录后可以查看自己已提交订单的处理情况;
●用户登录后可以修改自己的订单并对订单处理;
3.2对需求的规定
用列表的方式,逐项定量和定性地叙述对系统所提出的功能要求,说明输入什么量、经怎么样的处理、得到什么输出,说明系统的容量,包括系统应支持的终端数和应支持的并行操作的用户数等指标。
角色名称
功能
输入量
处理
输出
(1)管理员
输入管理员编号和密码登陆后可对预定信息进行增删改查
通过数据库连接对管理员登录和信息的增删改查做出对应操作
显示管理员登录成功或失败的信息和对订房信息的增删改查做出对应操作
(2)会员
输入会员号和密码
通过数据库验证会员号和密码的正确性
验证正确进入到酒店订房界面,输入错误将显示错误信息
(3)订房
输入订房的相关信息,例如:
丁夫人信息和房型,价位等
提交或重置输入的相关信息
提交成功,或重新输入相关信息
(4)房型
进入订房界面后选择要预定的房型
(5)订房明细
3.3基本需求类图
图3.3.1基本需求类图
4。
概要设计
4。
1实体图及E—R图
对于酒店住房管理,我们可以将客人实体抽象出来,根据所要实现的功能设计,可建立它们之间的关系,进而实现逻辑结构功能。
酒店客房预订管理系统可以划分的实体有:
用户登录信息实体、客人基本信息实体、房间基本信息实体、住店管理信息实体、预订房间管理信息实体.用E-R图一一描述这些实体.
4。
2数据库设计数据库设计
表栏的清单
名称
代码
房型编号
roomCode
房型名称
roomName
房间大小
roomSpace
床1宽
bedWide1
床2宽
bedWide2
网络
net
卫浴
bathroom
早餐
breakfast
备注
note
房型照片
roomPhoto
房型价格
roomPrice
优惠价
salePrice
房号
roomNumber
房型编号
roomCode
入住状态
aviliable
房型
r_oomCode
来宾姓名
clientName
身份证号
clientID
来宾性别
clientGender
用户编号
userNumber
用户名
userCode
用户密码
userPWD
用户昵称
userID
用户姓名
userName
用户手机号
userPhone
用户邮箱
userEmail
用户性别
userGender
出生日期
userBirth
订单编号
orderCode
订单用户
o_userNumber
订单姓名
orderName
订单手机
orderPhone
订单时间
orderDate
订单房型
o_roomCode
到店时间
arriveTime
订单人数
orderNumber
入住时间
checkIn
离店时间
checkOut
图片编号
photoCode
图片地址
photoAddress
图片类型
photoType
文章编号
articleCode
文章类型
articleType
文章标题
articleTitle
文章正文
articleValue
管理员编号
adminCode
管理员用户名
adminID
管理员密码
adminPWD
管理员姓名
adminName
房号
roomNumber
身份证号
clientID
入住单号
checkCode
入住时间
checkTime
表索引的清单
名称
代码
唯一的
群集器
主要的
外键
候选键
表格
roomType_PK
roomType_PK
TRUE
FALSE
TRUE
FALSE
FALSE
房型
roomInfo_PK
roomInfo_PK
TRUE
FALSE
TRUE
FALSE
FALSE
房间
derive_FK
derive_FK
FALSE
FALSE
FALSE
TRUE
FALSE
房间
clientInfo_PK
clientInfo_PK
TRUE
FALSE
TRUE
FALSE
FALSE
来宾
registeredUser_PK
registeredUser_PK
TRUE
FALSE
TRUE
FALSE
FALSE
注册用户
oderInfo_PK
oderInfo_PK
TRUE
FALSE
TRUE
FALSE
FALSE
订单
sitePhoto_PK
sitePhoto_PK
TRUE
FALSE
TRUE
FALSE
FALSE
网站宣传图
article_PK
article_PK
TRUE
FALSE
TRUE
FALSE
FALSE
文章
admin_PK
admin_PK
TRUE
FALSE
TRUE
FALSE
FALSE
管理员
checkIn_PK
checkIn_PK
TRUE
FALSE
TRUE
FALSE
FALSE
入住
checkIn2_FK
checkIn2_FK
FALSE
FALSE
FALSE
TRUE
FALSE
入住
checkIn_FK
checkIn_FK
FALSE
FALSE
FALSE
TRUE
FALSE
入住
引用的清单
名称
代码
父表格
子表格
入住
checkIn2
房间
入住
入住
checkIn
来宾
入住
衍生
derive
房型
房间
表的清单
名称
代码
入住
checkIn
房型
roomType
房间
roomInfo
文章
article
来宾
clientInfo
注册用户
registeredUser
管理员
admin
网站宣传图
sitePhoto
订单
orderInfo
5。
详细设计
5.1用例设计
图5.1。
1酒店管理用例图
图5。
1。
2酒店管理用例详细图
图5.1。
3会员用例图
5。
1。
1用例描述如下:
用例编号:
001
用例名:
注册用户
用例描述:
本用例用于游客的注册和个人信息的填写。
参与者:
游客
前置条件:
网上酒店预定系统正常运行期间.
后置条件:
用例成功后,添加一名新用户。
基本路径
1.当游客希望注册个人信息以使用本系统时,用例启动;
2.系统转到用户注册页面,提示用户输入个人信息;
3.用户输入个人信息;
4。
系统检查信息是否由有效,将信息存入数据库;
5.注册成功返回界面;
扩展点
1a.如果用户输入的注册信息无效,系统显示错误信息并转到错误页面,用户重新填写信息;或者取消注册,用例结束
用例编号:
002
用例名:
浏览主页
用例描述:
本用例用于游客在网上酒店预定系统中浏览主页。
参与者:
游客
前置条件:
网上酒店预定系统正常运行期间.
后置条件:
无
基本路径
1。
当游客进入本系统时,用例启动;
2。
进入本用例,浏览网上酒店预定系统中的资源;
扩展点
1a。
可以将套间加入订单管理。
用例编号:
003
用例名:
预定管理
用例描述:
本用例用于会员在网上酒店预定系统中将需预定的套间加入订单管理中。
参与者:
会员
前置条件:
网上酒店预定系统正常运行期间。
后置条件:
用例成功后,订单管理中套间状态发生变化
基本路径
1。
当会员浏览某本预定系统提出加入订单管理时,用例启动;
2.系统将所浏览图书加入购物车;
扩展点
1a.会员.可以管理预定。
1a1。
会员可以添加预定。
1a2。
会员可以删除订单管理中的套间。
用例编号:
004
用例名:
个人订单管理
用例描述:
本用例用于会员查看个人相关信息。
参与者:
会员
前置条件:
会员登录。
后置条件:
用例成功后,可以查看个人订单和取消订单。
基本路径
1。
会员提出查询订单时,用例启动;
2.系统列出所有有关该会员的相关信息(注册信息);
扩展点
1a.会员可以查看订单信息;
1a1.会员取消订单;
用例编号:
005
用例名:
提交订单
用例描述:
本用例用于会员提交订单信息.
参与者:
会员
前置条件:
会员登录.
后置条件:
用例成功后,订单提交到系统员工接受订单并作相关处理。
基本路径
1.会员进入网上酒店预定系统会员提交订单界面,并在界面中提交订单;
2。
界面将会员提交的订单信息传递给控制对象;
3.控制对象向数据库中提交订单信息数据;
4.控制对象将成功提交的订单信息返回界面;
5.会员在界面获得订单提交成功的信息;
扩展点
1a.提交订单错误。
1a1.会员所选套间无房。
用例编号:
006
用例名:
前台管理员登录
用例描述:
前台管理员根据所注册的用户名和密码,登录到网上酒店预订系统.
参与者:
前台管理员
前置条件:
网上酒店预订系统正常运行期间。
、
后置条件:
如果管理员登录成功,该管理员可以对网上酒店预订系统进行相关操作;若登录不成功,该管理员不能进入网上酒店预订系统.
基本路径
1.前台管理员希望通过网上酒店预订系统进行某一项操作;
2.前台管理员登录系统,在登录页面输入自己的用户名和密码并提交;
3.系统将前台管理员提交的用户名和密码传递到的数据库中检查用户合法身份的方法中,该方法将用户信息与数据库中的用户信息进行比较,检查用户信息中是否存在此员工的信息,系统记录并显示当前登录用户;
4.检查通过,将验证结果返回到登录界面显示;
5.前台管理员在登录界面获得验证结果;
扩展点
1a.系统标识码有效性检查失败
1a1。
前台管理员重新输入识别码;
1a2.前台管理员离开或重新输入账号;
1b.前台管理员输入无效次数超过限制(不超过3次),系统显示提示信息,用例终止。
用例编号:
007
用例名:
主页管理
用例描述:
本用例用于前台管理员管理套间信息。
参与者:
前台管理员
前置条件:
员工登录。
后置条件:
用例成功后,套间信息被添加、修改或删除.
基本路径
1。
前台管理员提出查看套间信息时,用例启动;
2。
系统列出所有符合该管理员要求的资源;
3.管理员提出所要执行的操作;
4。
如果前台管理员需要修改套间信息则修改套间信息,需要删除套间信息则删除套间信息,需要添加套间信息则添加套间信息;
5.保存信息;
扩展点
1a。
系统没有所需套间的有关信息;
1a1.系统没有查到套间的信息;
1a2.系统弹出错误信息提示没有该套间信息;
1a3。
系统返回继续查询其他套间的信息;
2a.添加的数据为非法数据
2a1。
系统显示输入错误提示信息
2a2。
当前用户重新添加套间信息或退出系统或返回进行其他操
用例编号:
008
用例名:
订单管理
用例描述:
本用例用于前台管理员管理订单。
参与者:
前台管理员
前置条件:
前台管理员登录。
后置条件:
用例成功后,用户订单处理为已预定.
基本路径:
1.前台管理员提出符合该前台管理员要求的订单时,用例启动;
2。
系统列出所有符合该前台管理员要求的订单;
3.前台管理员提出所要执行的操作;
4。
如果前台管理员需要修改订单信息则修改订单信息,需要删除订单信息则删除订单信息;
5.保存信息;
扩展点:
无
用例编号:
009
用例名:
查看客房信息
用例描述:
本用例用于前台管理员管理客房。
参与者:
前台管理员
前置条件:
前台管理员登录。
后置条件:
用例成功后,可查询管理相关信息。
基本路径:
1。
前台管理员提出符合该前台管理员要求的套间信息时,用例启动;
2。
系统列出所有符合该前台管理员要求的功能;
3.前台管理员提出所要执行的操作;
4。
如果前台管理员需要查询入住情况则查看入住信息,需要管理退房则删除该套间信息;
5。
保存信息;
扩展点:
无
5。
2时序图
图5。
2.1会员登录时序图
图5.2.2会员登录序列图
图5。
2。
3酒店查询序列图
图5.2.5查询房型数据
图5.2。
5查询房型数据
图5.2。
6管理会员
图5。
2。
7管理会员
图5.2.8订房序列图
图5.2。
9更改会员资料
图5。
2.10更改会员资料
图5。
2。
11查询订房资料
图5。
2.12查询订房资料
图5。
2。
13订房明细序列图
图5。
2.14计算房价序列图
图5。
2.15查询房型数据序列图
图5。
2。
16送订房电子邮件序列图
图5.2.16获取房型信息序列图
5。
3页面设计及核心代码
5.3。
1主页面模块
主要使用ASP.NET实现页面
通过CSS设计以及Bootstrap的使用,成功的实现了以冷色调为基础,友好扁平式设计的主页面.
通过调用header以及footer来实现页面代码的复用。
〈%@RegisterTagPrefix="uc1”TagName=”Header”Src="header.ascx"%>
〈uc1:
headerid="Header1”runat="server"〉〈/uc1:
header>
通过后台代码实现了登陆的验证以及表单的隐藏
order。
Visible=false;
protectedvoidButton1_Click(objectsender,EventArgse)
{
if(Session["userName"]==null)
{
Response.Write(””);
}
else
{
order。
Visible=true;
}
}
5。
3。
2登陆以及注册模块
通过重写CSS文件以及JS文件,使得在同一个表单内实现登陆,找回密码,注册等功能
〈scriptsrc="js/bootstrap.min。
js">
〈scripttype=”text/javascript">
functionshowLogin(){
$("#forgot”)。
hide();
$(”#signup")。
hide();
$(”#login”).show();
}
functionforgot(){
$("#forgot1”)。
css("width",”268");
$("#signup”).hide();
$("#login”).hide();
$("#forgot").show();
}
functionshowSignup(){
$("#signup1").css("width","268”);
$(”#signup2”)。
css(”width”,"268”);
$(”#signup3”)。
css(”width","268”);
$("#signup4")。
css("width",”268”);
$("#forgot”)。
hide();
$("#login").hide();
$(”#signup").show();
}
〈/script〉
5。
3.3房型查看页面
5.3.4*****预约时间是否合法判定算法******
本系统的重点也是核心算法.
描述:
通过读取系统时间,当前订单时间以及数据库中预约时间,将他们放进数组,然后进行字符串的裁切,然后通过冲突数量计数器与总房间数进行比较,从而得出是否存在空房在规定时间可以入住的结论。
核心算法代码:
stringroomtype=dropRoom1。
SelectedValue.ToString();
stringcheckin=datepicker。
Value.ToString();
stringcheckout=datepicker1。
Value。
ToString();
stringnumber=country。
Value.ToString();
stringuserid="";//获取当前session
if(Session["username"]!
=null)
{
if(Session["username”]。
ToString()!
="")
{
userid=Session["username"]。
ToString();
}
}
stringphone=orderPhone。
Value。
ToString();
stringname=orderName.Value。
ToString();
stringarrivetime=arriveTime.Value.ToString();
stringordertime=DateTime。
Now。
ToString();
stringusercode=””;//通过session内的用户名获取相应的用户编号
stringconstr=@"DataSource=MSI—PC;InitialCatalog=HMS;PersistSecurityInfo=True;UserID=jojo;Password=jojo";
SqlConnectioncon=newSqlConnection(constr);
con。
Open();
SqlCommandcmd=newSqlCommand();
cmd.Connection=con;
stringsql=”select*fromregisteredUserwhereuserCode='"+Session[”userName"]+”’";
cmd。
CommandText=sql;
SqlDataReaderdr=cmd。
ExecuteReader();
while(dr.Read())
{
usercode=dr[0].ToString();//dr["userCode”].ToString();
}
dr。
Close();
intcount=0;//计算现有某房型的房间数
SqlCommandcmd3=newSqlCommand();
stringsql3="select*fromroomInfowhereroomCode='”+roomtype+”'";
cmd3。
CommandText=sql3;
SqlDataReaderdr3=cmd。
ExecuteReader();
while(dr3。
Read())
{
count++;
}
dr3。
Close();
//取得月·日组成的时间字符串
stringnowmon=ordertime;//2015-05-268:
37:
11
nowmon。
Substring(6,7);
stringnowday=ordertime;
nowmon.Substri