信息系统开发技术课程设计JSP宾馆管理系统.docx
《信息系统开发技术课程设计JSP宾馆管理系统.docx》由会员分享,可在线阅读,更多相关《信息系统开发技术课程设计JSP宾馆管理系统.docx(57页珍藏版)》请在冰豆网上搜索。
![信息系统开发技术课程设计JSP宾馆管理系统.docx](https://file1.bdocx.com/fileroot1/2023-3/19/93859920-5448-4bb7-a5a1-c81f8f6d6024/93859920-5448-4bb7-a5a1-c81f8f6d60241.gif)
信息系统开发技术课程设计JSP宾馆管理系统
学号
(信息系统开发技术A课程设计)
设计说明书
应用JSP创建宾馆管理系统
起止日期:
2014年5月16日至2014年5月22日
学生姓名
///
班级
成绩
///
指导教师(签字)
经济与管理学院
2014年5月22日
《信息系统开发技术A》课程设计分工及成绩评定
组员
承担主要任务
学习态度
10%
说明书撰写质量与格式符合程度
40%
技术水平与实际能力
40%
软件应用能力
10%
总评
成绩
学号:
系统实现(前台实现、后台实现)、设计说明书审定和定稿
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
姓名:
学号:
总体设计(总流程设计)、详细设计(数据库设计)、设计说明书相应部分的编写
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
姓名:
学号:
详细设计(系统设计之数据流程、业务流程及用例设计)、设计说明书相应部分的编写
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
姓名:
学号:
系统分析(需求分析和可行性分析)、总体设计(总体功能设计)、设计说明书相应部分编写
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
优良中
及格不及格
姓名:
1系统分析
1.1系统需求分析
1.1.1系统需求背景
随着旅游事业的蓬勃发展和宾馆业务的不断扩大,加上当今社会经济与科学技术的发展,我国服务行业取得了巨大的发展,使得人们对宾馆的需求也随之提高,这就对于宾馆管理的现代化、科学化的要求也就不断迫切起来。
如何利用先进的管理手段,提高现阶段宾馆的管理水平,已成为宾馆发展的当务之急。
现代化的宾馆组织庞大,服务项目多,信息量大,要想提高服务质量和管理水平,进而促进经济效益,必须借助计算机技术来进行现代化的信息管理。
电子计算机科学的飞速发展,给宾馆计算机应用带来了蓬勃生机,出现了宾馆计算机管理信息系统、安全保卫系统、电子门锁系统、宾馆信息服务系统、客房电脑保险系统以及计算机娱乐系统。
计算机在宾馆中的应用,已深入到宾馆的各个部门,特别是在信息处理领域,计算机已成为最重要的工具。
在宾馆现代管理理论中,宾馆管理信息系统已成为宾馆现代科学管理的重要内容,是宾馆经营必不可缺少的现代科学工具。
也就是说,怎样在原有的基础上再进行简化,使其具有操作简单、灵活性好、系统安全性高、运行稳定等特点是我们的宾馆管理系统的设计方向。
1.1.2系统需求目的
宾馆在正常的运营中需要对客房资源、住客信息、结算信息进行管理,利用宾馆管理信息系统可以及时了解各个环节中信息的变更,有利于提高管理效率。
简而言之,宾馆管理系统就其表现形式看就是对宾馆大量的常规性信息的输入、存储、处理和输出过程,其作用主要表现在以下几个方面:
(1)快速办理住客从预定到入住到退房的整个过程,实现住客在酒店消费自动化;
(2)准确无误地记录住客的每笔消费记录;
(3)实时、快速、准确提供客房动态;
(4)方便查询住客的消费情况;
(5)完善、全面的综合查询;
(6)系统运行稳定可靠、各项维护功能齐全、易于维护;
不难看出,本系统主要为了更好地加强宾馆管理员对房间的管理,给宾馆管理员提供一个井然有序的管理平台,提高效率和服务质量。
同时也为客户提供选择、查询客房的类型与客房的资源,和进行挑选的快捷需求。
避免了管理员的重复操作,大大的减少了管理人员的工作量,提高了工作效率,也可以更好的满足住客的需要。
1.1.3系统需求功能
通过需求目的知道,一个宾馆管理系统功能应包括:
住客结算信息管理、客房类型信息管理、客房资源管理、住客信息管理、用户管理五个模块。
系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。
主要完成功能:
(1)有关客房标准的制定、标准信息的输入,修改和查询,包括客房编号、客房类型、床位数量、住房单价、是否有空调、电视机、电脑、电话以及单独卫生间等。
(2)剩余客房信息的查询等。
(3)订房信息的输入,修改和查询,包括客房编号、客房类型、客房单价、住客姓名、住客身份证号码、入住日期、折扣、押金、备注信息等。
(4)结算信息的输入,修改和查询,包括客房编号、客房类型、客房单价、住客姓名、住客身份证号码、入住日期、折扣、退房日期、押金、备注信息等。
(5)住客信息的输入,修改和查询,包括住客姓名、住客身份证号、住客性别、客房编号、押金、入住时间、备注等。
(6)用户信息的输入,修改和查询,包括用户编号、用户身份、密码
1.2系统可行性分析
可行性分析是根据系统要求和系统目标从经济/技术和运行等方面进行可行性论证。
系统要求:
宾馆管理系统必须包括宾馆的可预订资源的详细信息和用户所下订单的基本信息,并可对这些基本信息进行查询和管理。
系统目标:
宾馆管理系统的目标是实现宾馆资源管理的信息化,提高资源信息的维护性能,提高工作的效率,从而为宾馆带来更好的的利益。
1.2.1经济可行性
开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。
1.2.2技术可行性
本系统采用JSP开发语言,调试相对简单,当前的计算机硬件与软件配置也完全能满足开发的需求,因此在技术上是绝对可行的。
1.2.3运行可行性
运行可行性是对组织结构的影响,包括现有人员、机构和环境对系统的适应性及人员培训补充计划的可行性。
当前信息化技术已经相当普及,各类使用人员都具备一定的操作能力,所以在运行上是可行性的。
2开发环境及工具
2.1JSP技术
JavaServerPages技术是一个纯Java平台的技术,它主要用来产生动态网页内容。
在传统的网页HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页;Web服务器接收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户;JSP是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网页。
JSP在多个方面加速了动态的Web页面的开发:
1.程序写一次,到处可以运行。
JSP在设计时,充分考虑到应用平台的无关性;依赖于Java的可移植性,JSP得到目前许多流行操作平台的支持,可在Apache、NetScape、IIS等服务器上执行。
2.执行速度快。
JSP页面只需编译一次转化为Java字节代码,其后一直驻留于服务器内存中,加快了对JSP页面的响应速度;若不考虑JSP页面第一次编译所花的时间,则JSP的响应速度要比ASP快得多。
JSP技术是用Java语言作为脚本语言的,跨平台、成熟、健壮、易扩充的Java技术使得开发人员操作起来更简单。
2.2TOMCAT服务器
Tomcat服务器是ApacheGroupJakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。
Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。
2.3MYSQL数据库
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。
大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
3总体设计
3.1总体功能设计
系统界面采用Web方式,界面应简洁明了,用户可方便浏览和查找客房信息。
该系统的用户有两种类型:
一是管理员,二是顾客,两者应具有不同的权限。
3.1.1客户端(前台)
宾馆顾客:
预订系统对一般用户来说分为两类,分别为未注册用户(普通用户)和注册用户(会员)。
(1)未注册用户:
只能在线浏览,查询客房信息,不能进行预订服务。
(2)注册用户:
此用户能够在网页上查询客房信息、预订服务、退订服务等,并且有客户的个人信息,方便客户进行预订。
3.1.2管理端(后台)
系统管理员:
管理系统后台功能,对系统、数据库进行维护。
预订系统对系统管理员来说,系统管理员是一级用户,他的权限最大,主要是维护系统、管理用户的信息,为了使系统及时有效运行,系统管理员还需要对数据进行存储备份,以防止因为某些网络恶意导致系统瘫痪、数据丢失带来的不必要的麻烦。
宾馆管理系统(Hotel)
管理端(后台)---houtai.jsp(houtai.jsp)
客户端(前台)---shouye.jsp(shouye.jsp)
图1:
总体功能设计
3.2总流程设计
宾馆管理信息系统主要有两个流程:
3.2.1用户流程设计
用户需要使用账号和密码通过登录界面登录宾馆管理信息系统。
登陆后进入系统主窗体,可以对用户个人信息,个人客房预定与结算进行操作,退出系统时返回登陆页面。
3.2.2管理员流程设计
宾馆管理人员可以通过不同的身份验证进入宾馆管理信息系统,进行客房管理、客房资源管理、住客订房管理、住客结账管理、住客信息管理等进行操作,简化流程,方便操作。
图2:
总体流程设计
4详细设计
4.1数据库设计
4.1.1概念结构设计
4.1.2逻辑结构设计
将上面的E-R图进行分析后,形成如下的逻辑关系:
(1)结算信息(住客姓名,身份证号,客房编号,入住日期,退房日期,押金,折扣,实缴金额,备注)
(2)客房资源(客房编号(主码),客房类型,剩余客房量,客房单价,预定情况,备注)
(3)客房类型信息(客房编号(主码),单价,床位数量,空调,电话,电脑,电视,卫生间,客房类型)
(4)用户(用户ID(主码),身份,密码)
(5)住客(住客姓名,身份证号(主码),性别,客房编号,押金,入住时间,备注)
4.1.3物理结构设计
根据逻辑结构分析确定系统需要设置五个表(包括表结构):
表1用户管理表(SUser):
列名
数据类型
长度
值
说明
UserID(主码)
varchar
10
Notnull
管理用户ID
Identity
varchar
10
Notnull
管理者身份
Password
varchar
10
Notnull
密码
表2客房类型信息管理表(RoomType):
列名
数据类型
长度
值
说明
UserID
varchar
10
Notnull
管理用户ID
IDnumber
varchar
20
Notnull
住客身份证号
RoomID(主码)
varchar
4
Notnull
客房编号
Price
float
8
Notnull
客房价格
Bednumber
int
4
Notnull
床位数目
Air
varchar
2
Notnull
是否有空调
Telephone
varchar
2
Notnull
是否有电话
Computer
varchar
2
Notnull
是否有电脑
TV
varchar
2
Notnull
是否有电视
Bathroom
varchar
2
Notnull
是否有卫生间
RoomType
varchar
50
Notnull
房间类型
表3客房资源管理表(Room):
列名
数据类型
长度
值
说明
UserID
varchar
10
Notnull
管理用户ID
IDnumber
varchar
20
Notnull
住客身份证号
RoomID(主码)
varchar
4
Notnull
宾馆统一安排的房间号
Roomtype(外码)
varchar
50
Notnull
房间类型
Reroom
varchar
20
Notnull
客房剩余情况
Price
float
8
Notnull
客房价钱
Book
varchar
2
Notnull
已预订、未预定
Diction
varchar
50
Null
客房信息的补充
表4住客结算信息表(Settle):
(注:
其中主码为(身份证号,房间号,入住日期))
列名
数据类型
长度
值
说明
UserID
varchar
10
Notnull
管理用户ID
Costname
varchar
10
Notnull
住客姓名
IDnumber
varchar
20
Notnull
住客身份证号码
RoomID
varchar
4
Notnull
客房编号
Indata
varchar
50
Notnull
入住日期
Outdata
varchar
50
Null
退房日期
Margin
float
8
Notnull
押金
Discount
float
8
Null
会员折扣或宾馆活动
Money
float
8
Null
实缴金额
Diction
varchar
50
Null
信息的补充
表5住客信息管理表(customer)
列名
数据类型
长度
值
说明
UserID
varchar
10
Notnull
管理用户ID
IDnumber(主码)
varchar
20
Notnull
住客身份证号
Costname(外码)
varchar
10
Notnull
住客姓名
Sex
varchar
2
Notnull
男女
RoomID
varchar
4
Notnull
客房编号
Margin
Float
8
Notnull
押金
Indata
varchar
50
Notnull
入住时间
Diction
varchar
50
Null
住客信息的补充
4.2系统设计
4.2.1系统数据流程设计
图3:
数据流程图设计
4.2.2系统业务流程设计
图4:
第一层业务流程图
图5:
第二层业务流程图
图5:
第三层业务流程图
4.2.3系统用例图设计
5系统实现
除必要的功能代码(如:
WEB页面链接数据库的相应代码、JSP动态交互代码等)会在报告里给出,其余界面的代码会以附录的形式列出,以达到主要内容的精简。
系统的实现分为前台实现和后台实现:
前台的实现主要针对用户的相应操作,其主要用到基本的HTML语言,JSP应用主要是在有交互页面中使用;后台的实现主要针对管理员的相应操作,其主要用到链接数据库的一系列操作。
下面分别详细阐述它们的实现:
5.1前台实现
前台首页是客户进入本系统的第一个界面,用户在此页面可以查询宾馆有哪些资源分组,并可以通过导航到达具体的资源页面,也可以实现注册和登录的功能。
我们所做的前台特点是:
简洁、大方、用户可轻松的找到自己想要的内容。
5.1.1首页设计实现效果
注:
本宾馆管理系统的前台设计(即首页设计)及具体功能设计是仿照粤海(国际)酒店管理集团有限公司()的网站做,在此以做说明。
5.1.2首页实际实现效果
本系统采用在浏览器主窗体中的中上部设置导航栏,分别为首页、预定房间、查询房间、客户留言、后台管理,5个导航,通俗易懂的概括了本系统主要功能。
其中普通用户只能操作最基本浏览客房信息,会员和系统管理员有各自相应操作权限,在本报告的3总体设计中已经详细介绍过,这里不再赘述,详见3总体设计,此页面的链接地址为:
HTTP:
//localhost:
8080/Hotel/shouye.jsp。
下面为实现图:
为了使读者更容易理解与使用,下面将具体的页面(包括名称、功能、对应文件)做以说明,并以表格的形式列出,方便查看,给出下表:
表6:
前台页面描述
区域
名称
功能
对应文件
1
网站LOGO
主要用于宣传企业知名度和认识度
html/top.htm
2
网站导航
主要用于显示网站为用户提供的前台功能导航
shouye.jsp
3
时间栏
主要用于展示现在的时间
shijian2.jsp
4
用户登录入口
用户可以通过该入口登录系统
denglu.jsp
5
公告区
用于展示相关公告的信息
gonggao.jsp
6
友情链接
用于链接相关网站
yqlj.jsp
7
推荐区
用于推荐本宾馆的特色房间
tuijian.jsp
8
图片展示区
用于展示本宾馆的房间样子
tp.html
9
网站页脚
用于告知用户网站的联系方式
html/bottom.htm
10
预定房间
用于预定房间
yuding/yd.jsp
11
查询房间
用于查询房间
find/chaxun.jsp
12
客户留言
用于留言
lyb.jsp
5.1.3用户注册效果
在本报告的3总体设计中已经阐述过进入页面的会有会员和非会员之分,所以会提供用户注册来让非会员成为会员来行使相应的会员操作,页面显示效果如下图:
(页面仅用于非会员注册为会员,页面地址为:
http:
//localhost:
8080/Hotel/user/zhuce.jsp)
5.1.4用户查询效果
本系统所提供的最基本功能为房间查询,会员和非会员均能使用,显示页面如下图:
(用于房间的查询,页面为:
http:
//localhost:
8080/Hotel/find/chaxun.jsp)
5.1.5用户预定效果
用户预定仅对会员提供,非会员需预先经过5.1.3用户注册页面进行注册方能使用,显示效果如下图:
(用于房间的预定,页面为:
http:
//localhost:
8080/Hotel/user/yudingxm.jsp)
其中表单的传递以及页面提示主要代码为:
--
functionisValidDate(year,month,day){
if(year<1900||year>2078)
{
alert("您输入的年份无效!
");
returnfalse;
}
if(month<1||month>12){//checkmonthrange
alert("月份必须为1-12.");
returnfalse;
}
if(day<1||day>31){
alert("日必须为1-31.");
returnfalse;
}
if((month==4||month==6||month==9||month==11)&&day==31){
alert(month+"月份"+"没有31天!
")
returnfalse
}
if(month==2){//checkforfebruary29th
varisleap=(year%4==0&&(year%100!
=0||year%400==0));
if(day>29||(day==29&&!
isleap)){
alert(year+"年2月没有"+day+"天!
");
returnfalse;
}
}
returntrue;//dateisvalid
}
functionvalidEmail(email){
invalidChars="/:
;"
if(email==""){
returnfalse
}
for(i=0;ibadChar=invalidChars.charAt(i)
if(email.indexOf(badChar,0)>-1){
returnfalse
}
}
atPos=email.indexOf("@",1)
if(atPos==-1){
returnfalse
}
if(email.indexOf("@",atPos+1)>-1){
returnfalse
}
periodPos=email.indexOf(".",atPos)
if(periodPos==-1){
returnfalse
}
if(periodPos+3>email.length){
returnfalse
}
returntrue
}
functiondosubmit(){
if(document.form1.ydname.value=='')
{
alert('请输入您的姓名!
');
document.form1.ydname.focus();
}
elseif(!
isValidDate(document.form1.ChkInYear.value,document.form1.ChkInMonth.value,document.form1.ChkInDay.value))
{
document.form1.ChkInDay.focus();
}
elseif(!
isValidDate(document.form1.ChkOutYear.value,document.form1.ChkOutMonth.value,docu