酒店客房管理系统web系统开发.docx
《酒店客房管理系统web系统开发.docx》由会员分享,可在线阅读,更多相关《酒店客房管理系统web系统开发.docx(45页珍藏版)》请在冰豆网上搜索。
![酒店客房管理系统web系统开发.docx](https://file1.bdocx.com/fileroot1/2023-1/10/eb6c3419-11d6-4454-82c9-601fc9b3f248/eb6c3419-11d6-4454-82c9-601fc9b3f2481.gif)
酒店客房管理系统web系统开发
Web系统开发
设计题目:
酒店客房管理系统
指导教师:
黄潇
目录
目录1
第一章问题定义1
第二章可行性研究1
2.1系统建设目标:
1
2.2可行性分析1
2.2.1技术可行性1
2.2.2经济可行性2
2.2.3操作可行性2
2.2.4法律可行性2
第三章需求分析2
3.1系统功能分析2
3.2使用结构化方法进行系统分析2
3.2.1系统功能建模2
3.2.2酒店客房管理系统的E-R图5
3.3对系统进行面向对象分析7
3.3.1系统用例模型7
3.3.2系统对象模型8
第四章系统的概要设计9
4.1系统体系结构图9
4.2数据库设计10
第五章系统的详细设计及其实现11
5.1设计思想:
11
5.2界面设计:
11
5.3相关程序代码:
14
5.4程序流程图:
31
第六章系统测试31
6.1模块测试31
6.2系统测试32
第一章问题定义
今年来,我国人民生活水平显著提高,伴随着我国旅游业的高速发展,酒店行业的服务档次迫切需要提高。
在酒店行业竞争激烈的今天,要成为佼佼者,就必须与高新技术紧密结合。
传统的纯手工或简单的计算工具,已经不适应现代经济高速发展的要求,必须运用现代化管理手段,配备完善的自动化设备,提高客房的服务水平与质量,从而赢得高信誉,强实力,好效益!
酒店客房管理系统提供酒店客房科学、规范的现代管理模式,使酒店客房管理跨上一个新的台阶,一个先进的管理手段即高效率计算机管理方式引导酒店行业的发展,不仅能为酒店带来巨大的直接经济效益,而且还能提高酒店服务水准和员工工作效率,使酒店客房管理进入一个新层次,提高服务质量,改善酒店客房的形象。
酒店客房管理系统提供酒店客房科学、规范的现代管理模式,使酒店客房管理跨上一个新的台阶,一个先进的管理手段即高效率计算机管理方式引导酒店行业的发展,不仅能为酒店带来巨大的直接经济效益,而且还能提高酒店服务水准和员工工作效率,使酒店客房管理进入一个新层次,提高服务质量,改善酒店客房的形象。
随着社会服务行业的发展,使用管理软件来管理整个宾馆企业的要求也逐年升温,有条件的酒店或宾馆都采用了相关的酒店管理系统,以解决宾馆全凭原始的手工记录管理,效率低、易出错的缺陷。
宾馆行业对自身提供服务的质量和能力也有了更高的要求,宾馆信息管理系统正因此而越来越受到重视。
宾馆信息管理系统主要实现宾馆酒店的客房管理、客户信息管理、客户添加管理、客户修改管理、客户删除管理功能。
一个宾馆信息管理系统应该包括基本的客房信息管理、客房客户信息管理、入住退房信息管理等相关的信息管理。
我国酒店业利用计算机管理系统来加强管理、提高服务水平,虽然至今已有了20多年的历史,但起步发展较晚,只是一些浅层次应用,大多数还停留于七拼八凑的MIS系统水平,甚至还仅限于简单的电算化和信息发布阶段,与国际酒店业先进信息化应用的差距非常明显。
第二章可行性研究
2.1系统建设目标:
在现代的酒店等服务行业中,由于客流量巨增,传统的管理方法已经不能满足现代社会的需要,在运营中需要对客房资源、顾客信息、结算信息进行管理。
通过这套软件,无论各种等级的酒店,都可轻松进行管理,都具有非常实用的价值,酒店客房管理系统的开发无疑具有深远得意义。
酒店客房管理系统提供客房科学、规范的现代管理模式,使酒店客房管理跨上一个的台阶,以高效率计算机管理方式引导酒店行业的发展,为酒店带来直接的经济效益,提高酒店服务水准,改善酒店客房的形象。
2.2可行性分析
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决、是否值得去解决。
下面从四个方面分析本系统的可行性:
2.2.1技术可行性
本系统采用sqlserver进行后台数据库的管理、操作和维护,用进行前台界面设计、与后台数据库的接口、数据的录入、查询、浏览等。
由于sqlserver具有强大的数据库开发功能、方便快捷的数据库接口设计功能、使用的灵活、以及它们实际应用的广泛,充分说明本系统在技术方面可行。
2.2.2经济可行性
目前国内的酒店的网点已达数万家,然而有相当一部分还没有使用现代化的计算机管理软件,因而急需提高客房管理水平、管理质量和管理工作的效率,减少不必要的开支,降低成本,同时本系统成本较低,使用灵活,简单易学,因此,市场前景看好,在经济方面可行。
2.2.3操作可行性
该系统设计思路清晰,操作简捷,具有良好的用户界面,和较为完善的异常处理机制及信息提示机制,用户只需经过简单地培训就可使用,因而,在操作方面可行。
2.2.4法律可行性
本系统没有违反国家的相关法律规定,因此,在法律方面可行。
第3章需求分析
3.1系统功能分析
系统开发的总体任务是实现酒店各种信息的系统化,规范化和自动化管理,减少工作量,提高效率,增强可靠性。
系统功能分析是在系统开发设计的总体任务的基础上完成,本实例中的酒店客房管理系统需要完成的功能主要有:
1、客房信息管理:
包括房间编号、房间级别、房间类型、房间价格(元)、是否住人等信息的输入、删除、修改等。
2、客人信息管理:
包括客人姓名、登记号、身份证号、房间号、登记日期的输入、删除、修改等。
3、退房信息管理:
包括客人的退房日期、付款金额的输入、修改、删除等。
4、客房信息查询:
包括查询房间编号、房间级别、房间类型、房间价格(元)、是否住人等信息。
5、收费信息查询:
包括查询收费日期、付款金额。
6、其他特殊功能:
随时查询、汇总酒店客房和客人情况,并获得房间入住情况汇总报表;进行房价调整,房间增减。
3.2使用结构化方法进行系统分析
3.2.1系统功能建模
对用户需求进行分析,画出系统的数据流图:
顶层流图:
一层流图:
二层流图:
酒店操作
功能权限
交易记录
客房处理
客户管理
员工处理
图3.8
3.2.2酒店客房管理系统的E-R图
系统所需的数据项:
客户信息:
顾客编号,顾客姓名,顾客性别,顾客年龄,顾客身份证id,顾客联系方式;
员工信息:
员工id,账号,密码,姓名,级别;
客房信息:
主键,房间号,房间类型,押金,价格,状态,备注;
交易:
交易编号,客户账号,房间id,预订时间,入住时间,离店时间,消费,预订员工,入住员工,离店员工,状态;
酒店客房管理系统的E-R模型:
1.局部E-R图:
2.全局E-R图:
3.3对系统进行面向对象分析
3.3.1系统用例模型
参与者列表3.14
客户
出钱入住的人
员工
安排入住的人
管理员
管理整个系统的人
用例列表3.15
登录
进入管理页面
客户信息
客户登录信息
员工信息
员工信息展示
客房信息
客房信息展示
预定
预定房间
入住
入住房间
离店
离开房间
营业状况
展示营业状况
3.用例图
图3.16
3.3.2系统对象模型
系统类图
图3.17
第四章系统的概要设计
4.1系统体系结构图
图4.1
4.2数据库设计
根据E-R模型和数据库需求分析,本系统总共涉及6个数据表格。
包括:
客户信息表、员工信息表、客房信息统计表、交易表、功能表、权限表,本系统的数据表设计如下所示:
客户信息表4.2
Field
Type
Comment
cid
int(11)NOTNULL
顾客编号
cname
varchar(30)NULL
顾客姓名
csex
varchar(3)NULL
顾客性别
cage
int(11)NULL
顾客年龄
ccardid
varchar(30)NULL
顾客身份证id
cphone
varchar(20)NULL
顾客联系方式
员工信息表4.3
Field
Type
Comment
eid
int(11)NOTNULL
员工id
eaccount
varchar(20)NULL
账号
epwd
varchar(20)NULL
密码
epname
varchar(30)NULL
姓名
erank
int(11)NULL
级别
客房信息统计表4.4
Field
Type
Comment
rd
int(11)NOTNUL
主键
rid
int(11)NULL
房间号
rtype
varchar(10)NULL
房间类型(单、双、三人、四人)
rcash
int(11)NULL
押金
rprice
int(11)NULL
价格
rstatus
varchar(10)NULL
状态(空闲、预订、已住)
reg
varchar(255)NULL
备注
交易表4.5
Field
Type
Comment
dealid
int(50)NOTNULL
交易编号
dcid
int(11)NULL
客户账号
drid
int(11)NULL
房间id
dretime
dateNULL
预订时间
dintime
dateNULL
入住时间
doutime
dateNULL
离店时间
dconsum
int(20)NULL
消费
dempidre
int(20)NULL
员工id(预订)
dempidin
int(20)NULL
员工id(入住)
dempidou
int(20)NULL
员工id(离店)
dstatus
int(20)NULL
状态(1-预订2-入住3-空闲)
功能表4.6
Field
Type
Comment
zid
int(11)NOTNULL
子id
fname
varchar(30)NULL
功能名称
funurl
varchar(100)NULL
功能url
pid
int(11)NULL
父id
权限表4.7
Field
Type
Comment
rgrade
int(11)NULL
级别
funid
int(11)NULL
功能id
第5章系统的详细设计及其实现
5.1设计思想:
管理员登录成功后,显示主模块、主模块分菜单、显示页面,菜单提供系统所有功能模块的选择操作,点击下拉菜单的各菜单项,打开相应的操作模块。
常用菜单栏包括客房管理,客户管理、员工管理、功能管理、营业状况,此实际的基本目的是在于客房管理以及客户管理是酒店客房管理系统的最主要也是最关键的功能,放在此既易于寻找又方便操作。
而员工管理与功能模块的操作选择起来不是很方便,但是都利于实现客户预订房间,入住登记,离店结帐功能的实现。
5.2界面设计:
5.3相关程序代码:
Controllers(AccountController)
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Transactions;
usingSystem.Web;
usingSystem.Web.Mvc;
usingSystem.Web.Security;
usingDotNetOpenAuth.AspNet;
usingMicrosoft.Web.WebPages.OAuth;
usingWebMatrix.WebData;
usingHotel.Filters;
usingHotel.Models;
namespaceHotel.Controllers
{
[Authorize]
[InitializeSimpleMembership]
publicclassAccountController:
Controller
{
//
//GET:
/Account/Login
[AllowAnonymous]
publicActionResultLogin(stringreturnUrl)
{
ViewBag.ReturnUrl=returnUrl;
returnView();
}
//
//POST:
/Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
publicActionResultLogin(LoginModelmodel,stringreturnUrl)
{
if(ModelState.IsValid&&WebSecurity.Login(model.UserName,model.Password,persistCookie:
model.RememberMe))
{
if(model.UserName=="admin")
returnRedirectToAction("manager","stu");
else
returnRedirectToAction("login","stu");
}
//如果我们进行到这一步时某个地方出错,则重新显示表单
ModelState.AddModelError("","提供的用户名或密码不正确。
");
returnView(model);
}
publicActionResultguanli()
{
returnView();
}
//
//POST:
/Account/LogOff
[HttpPost]
[ValidateAntiForgeryToken]
publicActionResultLogOff()
{
WebSecurity.Logout();
returnRedirectToAction("Index","Home");
}
//
//GET:
/Account/Register
[AllowAnonymous]
publicActionResultRegister()
{
returnView();
}
//
//POST:
/Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
publicActionResultRegister(RegisterModelmodel)
{
if(ModelState.IsValid)
{
//尝试注册用户
try
{
WebSecurity.CreateUserAndAccount(model.UserName,model.Password);
WebSecurity.Login(model.UserName,model.Password);
returnRedirectToAction("Index","Home");
}
catch(MembershipCreateUserExceptione)
{
ModelState.AddModelError("",ErrorCodeToString(e.StatusCode));
}
}
//如果我们进行到这一步时某个地方出错,则重新显示表单
returnView(model);
}
//
//POST:
/Account/Disassociate
[HttpPost]
[ValidateAntiForgeryToken]
publicActionResultDisassociate(stringprovider,stringproviderUserId)
{
stringownerAccount=OAuthWebSecurity.GetUserName(provider,providerUserId);
ManageMessageId?
message=null;
//只有在当前登录用户是所有者时才取消关联帐户
if(ownerAccount==User.Identity.Name)
{
//使用事务来防止用户删除其上次使用的登录凭据
using(varscope=newTransactionScope(TransactionScopeOption.Required,newTransactionOptions{IsolationLevel=IsolationLevel.Serializable}))
{
boolhasLocalAccount=OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
if(hasLocalAccount||OAuthWebSecurity.GetAccountsFromUserName(User.Identity.Name).Count>1)
{
OAuthWebSecurity.DeleteAccount(provider,providerUserId);
scope.Complete();
message=ManageMessageId.RemoveLoginSuccess;
}
}
}
returnRedirectToAction("Manage",new{Message=message});
}
//
//GET:
/Account/Manage
publicActionResultManage(ManageMessageId?
message)
{
ViewBag.StatusMessage=
message==ManageMessageId.ChangePasswordSuccess?
"已更改你的密码。
"
:
message==ManageMessageId.SetPasswordSuccess?
"已设置你的密码。
"
:
message==ManageMessageId.RemoveLoginSuccess?
"已删除外部登录。
"
:
"";
ViewBag.HasLocalPassword=OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
ViewBag.ReturnUrl=Url.Action("Manage");
returnView();
}
//
//POST:
/Account/Manage
[HttpPost]
[ValidateAntiForgeryToken]
publicActionResultManage(LocalPasswordModelmodel)
{
boolhasLocalAccount=OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
ViewBag.HasLocalPassword=hasLocalAccount;
ViewBag.ReturnUrl=Url.Action("Manage");
if(hasLocalAccount)
{
if(ModelState.IsValid)
{
//在某些失败方案中,ChangePassword将引发异常,而不是返回false。
boolchangePasswordSucceeded;
try
{
changePasswordSucceeded=WebSecurity.ChangePassword(User.Identity.Name,model.OldPassword,model.NewPassword);
}
catch(Exception)
{
changePasswordSucceeded=false;
}
if(changePasswordSucceeded)
{
returnRedirectToAction("Manage",new{Message=ManageMessageId.ChangePasswordSuccess});
}
else
{
ModelState.AddModelError("","当前密码不正确或新密码无效。
");
}
}
}
else
{
//用户没有本地密码,因此将删除由于缺少
//OldPassword字段而导致的所有验证错误
ModelStatestate=ModelState["OldPassword"];
if(state!
=null)
{
state.Errors.Clear();
}
if(ModelState.IsValid)
{
try
{
WebSecurity.CreateAccount(User.Identity.Name,model.NewPassword);
returnRedirectToAction("Manage",new{Message=ManageMessageId.SetPasswordSuccess});
}
catch(Exceptione)
{
ModelState.AddModelError("",e);
}
}
}
//如果我们进行到这一步时某个地方出错,则重新显示表单
returnView(model);
}
//
//POST:
/Account/ExternalLogin
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
publicActionResultExternalLogin(stringprovider,stringreturnUrl)
{
returnnewExternalLoginResult(provider,Url.Action("ExternalLoginCallback",new{ReturnUrl=returnUrl}));
}
//
//GET:
/Account/ExternalLoginCallback
[AllowAnonymous]
publicActionResultExternalLoginCallback(stringreturnUrl)
{
AuthenticationResultresult=OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback",new{ReturnUrl=returnUrl}));
if(!
result.Is