第二章 系统需求分析与概要设计
2.1 功能需求
酒店客房管理系统是根据酒店对客房管理的实际情况进行编写的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的工作[1]。酒店客房管理的科学化、系统化、信息化成为各个酒店追求的目标。因此,而要实现这些功能,就要求各个酒店配备一套客房管理系统,以便在酒店内实施良好的完善的管理且以最快地速度响应客户的需求,及时为他们提供服务,为他们提供一个高效、便捷的居住环境。客房管理信息系统(MIS)是各个酒店软件建设中一个重要的应用系统,它大大了改善酒店管理的基础环境,提供酒店的服务质量节省人力成本大大的提高经济成本。
2.2 性能需求
本系统主要完成以下任务:
前台:
(1)新会员登录
会员通过登录,进入系统可以进行预定房间,和留言的操作。
(2)查看公告
用户可以在首页看到公告信息。
(3)房间信息浏览
所有登录网站的用户都可以查看
(4)留言
会员在每一类别信息下,可以留言
后台:
(1)客房类别管理
管理员可以进行商品信息的添加、修改和维护以及缺货提醒。
(2)会员管理
管理员可以对会员信息进行删除和维护。
(3)商品类别设置
包括商品类别设置和商品的品牌管理。
(4)订单管理
管理员可以对订单信息进行查看、删除和维护。
(5)公告管理
管理员可以对网站的公告进行修改、添加和删除。
(6)留言管理
管理员可以管理在系统所有的留言
2.3 系统模块设计
酒店客房管理系统的总体功能模块设计如图2-1所示。系统功能模块是从系统使用者不同的角度进行划分的。根据系统使用者对系统所采用的操作不同,将整个系统分成两个大子模块:网站前台显示模块和网站后台管理和配置模块。本项目所设计的酒店客房管理系统主要是在网上预定客房的用户即前台的一些操作的界面设计,后台管理员主要是对数据库进行的编辑和更改,处理预定信息。
系统功能模块图如图2-1所示:
图2-1系统功能模块图
2.4系统业务流程分析与设计
用户通过浏览网站预定客房,如果需要购买商品时由管理员申请会员,注册成功后,就可以进行预定客房,并可以在系统中留言。提交自己的请求给系统管理员,也可以在留言的地方留言,提交预定信息后,管理在后台查看并处理,给用户分配房间,最好结算,系统自动计算出会员所需要付的房费。管理员也可以发布酒店的公告,也可以随时收回,酒店的信息随时可以更改,酒店的留言随时可以管理
业务流程如图2-2所示:
图2-2 系统业务流程图
2.5数据库概念模型设计
这一设计阶段是在需求分析的基础上,设计出能够满足设计需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。此阶段是要用E-R实体关系图设计数据库的概念模型。E-R图是描述数据实体及其关系的一种直观的描述工具。。
这种图中包括:
实体。用方框表示,方框内为实体的名称。
实体的属性。用椭圆表示,椭圆内位属性名称。使用线段将其和相应的实体联系起来。
实体之间的关系。用菱形表示,菱形内为联系的名称。
E-R模型比较接近于人的思维,浅显易懂,容易让人接受,所以使用E-R模型作为用户与系统分析之间的工具。
1.本系统实体之间的关系E-R模型如图2-3所示:
图2-3系统E-R图
2.会员实体属性设计图:
图2-4 人员实体E-R图
图2-5 客房类别实体E-R图
图2-6客房信息实体E-R图
图2-7客房信息实体E-R图
2.6系统数据流程分析与设计
数据流图描述系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的描述工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。
2.6.2酒店客房管理系统的数据流图
图2-6 系统数据流程图
2.7数据字典
2.7.1定义数据流
表2-1
编号 | 名称 | 组成 | 来源 | 去向 |
D1.1 | 发表留言 | 留言编号+会员编号+管理员编号+留言标题+留言内容 | 会员 | 留言信息处理 |
D1.2 | 留言信息 | 留言编号+会员编号+管理员编号+留言标题+留言内容 | 留言信息处理 | F1留言信息表 |
D2.1 | 管理员注册注册信息 | 用户昵称+真实姓名号+密码+邮箱+邮编+地址+电话 | 管理员 | 会员注册信息处理 |
D2.2 | 管理员注册注册信息 | 用户昵称+真实姓名号+密码+邮箱+邮编+地址+电话 | 管理员 | 会员信息表 |
D2.3 | 管理员注册注册信息 | 用户昵称+真实姓名号+密码+邮箱+邮编+地址+电话 | 管理员 | 管理员查看 |
D2.4 | 管理员注册注册信息 | 用户昵称+真实姓名号+密码+邮箱+邮编+地址+电话 | F2会员信息表 | 会员信息处理 |
D2.5 | 管理员注册注册信息 | 用户昵称+真实姓名号+密码+邮箱+邮编+地址+电话 | F2会员信息表 | F2会员信息表 |
D3.1 | 预定信息 | 订单ID+订单编号+下单人+收货人+客房ID+商品名称+客房价格 | 预定信息处理 | F3订单信息表 |
D3.2 | 预定信息 | 订单ID+订单编号+下单人+收货人+客房ID+商品名称+客房价格 | F3订单信息 | 订单信息管理 |
D3.3 | 预定信息 | 订单ID+订单编号+下单人+收货人+客房ID+商品名称+客房价格 | 订单信息管理 | F3订单信息表 |
D4.1 | 添加房屋信息 | 房间号+房屋类别+房间描述+客房图片+电话 | 管理员 | 商品信息处理 |
D4.2 | 添加房屋信息 | 房间号+房屋类别+房间描述+客房图片+电话 | 管理员 | F3订单信息表 |
D4.3 | 添加房屋信息 | 房间号+房屋类别+房间描述+客房图片+电话场价+会员价 | 管理员 | F3订单信息表 |
D5.1 | 分类信息添加 | 用户编号 | 管理员 | 产品分类处理 |
D5.2 | 分类信息 | 内容 | 产品分类处理 | F5客房分类信息表 |
D6.1 | 管理员信息 | 编号+用户名+密码 | F6理员信息表 | 管理员信息管理 |
D6.2 | 管理员信息 | 编号+用户名+密码 | 管理员信息管理 | F6管理员信息表 |
D2.1 | 添加商品 | 商品编号+商品名称+类型+品牌+等级+上市日期+型号+简介+次数+推介+数量+图片+市场价+会员价 | 管理员 | 产品信息处理 |
D2.2 | 商品信息 | 商品编号+商品名称+类型+品牌+等级+上市日期+型号+简介+次数+推介+数量+图片+市场价+会员价 | 商品信息处理 | F2商品信息表 |
D3.1 | 订单 | 订单ID+订单编号+下单人+收货人+商品编号+商品名称+数量+单价+地址+电话+性别+邮箱+邮编+订购总金额+付款方式+送货方式+日期时间+状态+留言 | 用户 | 订单信息处理 |
D3.2 | 订单信息 | 订单ID+订单编号+下单人+收货人+商品编号+商品名称+数量+单价+地址+电话+性别+邮箱+邮编+订购总金额+付款方式+送货方式+日期时间+状态+留言 | 订单信息处理 | F3订单信息表 |
D4.1 | 会员信息 | 用户昵称+真实姓名+身份证号+密码+QQ号码+邮箱+邮编+地址+电话+找回密码问题+答案 | 管理员 | F4会员信息表 |
D7.1 | 添加公告信息 | 公告编号+标题+内容+发布日期+管理员编号 | 管理员 | 公告信息处理 |
D7.2 | 公告信息 | 公告编号+标题+内容+发布日期+管理员编号 | 公告信息处理 | F7公告信息表 |
2.7.2数据处理
2.7.3 定义数据存储
表2-2 user人员信息表
字段名称 | 数据类型 | 字段大小 | 说明 | 索引 | 是否为空 |
Id | Int | 4 | 编号 | Primary Key | NO |
name | char | 10 | 用户名 | NO | |
password | varchar | 20 | 密码 | NO | |
Zhname | Varchar2 | 30 | 中文名 | No | |
Zt | Char | 1 | 人员状态 | No | |
Vip | Char | 1 | 是否vip | No | |
Fl | Char | 1 | 是否是管理员 | No |
表2-3 discount打折表
字段名称 | 数据类型 | 字段大小 | 说明 | 索引 | 是否为空 |
id | Int | 4 | 编号 | Primary Key | NO |
Name | Varchar | 16 | 打折类别名 | NO | |
Discount | Float | 4 | 打折利率 | NO |
表2-4 gonggao公告表
字段名称 | 数据类型 | 字段大小 | 说明 | 索引 | 是否为空 |
id | Int | 4 | 编号 | Primary Key | NO |
Zt | Varchar | 25 | 公告发布状态 | NO | |
Content | Varchar | 50 | 公告状态 | NO | |
Title | Varchar | 25 | 公告标题 | YES |
字段名称 | 数据类型 | 字段大小 | 说明 | 索引 | 是否为空 |
id | int | 4 | 商品编号 | Primary Key | NO |
Jdname | int | 4 | 酒店名 | NO | |
Miaoshu | Varchar | 400 | 酒店描述 | Yes | |
Addr | Varchar | 50 | 酒店地址 | YES | |
Tel | Varchar | 30 | 酒店电话 | YES | |
Linkman | Varchar | 联系人 | YES |
表2-5 jd酒店信息表
表2-6 yuding预订信息表
字段名称 | 数据类型 | 字段大小 | 说明 | 索引 | 是否为空 |
id | int | 4 | 订单序列号 | NO | |
Fangid | Int | 25 | 订单编号 | Primary Key | NO |
Username | Varchar | 25 | 会员名 | Foreign Key | NO |
zt | Char | 10 | 商品编号 | Foreign Key | NO |
Js | Varchar | 25 | 商品名称 | YES | |
price | float | 10 | 商品价格 | NO | |
fangtpid | Int | 4 | 客房类型id | Foreign Key | NO |
Total | FLOAT | 25 | 结算价格 | YES | |
Days | Char | 2 | 住天 | YES |
表2-7liuyan 留言信息表
字段名称 | 数据类型 | 字段大小 | 说明 | 索引 | 是否为空 |
id | int | 4 | 编号 | Primary Key | NO |
mid | Int | 4 | 管理员编号 | Foreign Key | NO |
title | Varchar | 66 | 题目 | YES | |
content | Text | 内容 | YES | ||
date | Datatime | 发布日期 | YES |
第三章 系统详细设计与系统实现
3.1总体流程设计
系统总体设计即通过制定统一的操作流程,完成系统需求分析中规定的所有功能。确定系统的实施方案,即系统的物理模型。
3.2数据库设计
大型关系数据库对于企业的联机事务处理拥有着良好的性能,是构建企业管理信息系统的基础,对比传统的基于文件系统的数据库,关系型数据库在海量数据和单位时间响应事务处理请求等方面,有着明显的优势。关系型数据库是以服务器的方式提供数据服务的,其对于数据的管理有着良好的控制,在维护数据的完整性,数据的安全性方面有完善的考虑。相比之下,基于文件数据库只是以文件的方式提供简单的文件存储格式,数据管理需要自行编写程序控制。显然,在处理企业复杂的关键事务的时候,将数据放在基于文件的数据库是非常不合适的。使用关系型数据库是企业管理信息系统的唯一选择。浏览器/服务器作为客户机/服务器的升级,继承了客户机/服务器在联机事务处理方面的优点,在支持分布式数据处理方面和客户机/服务器是一样的。
本系统是采用SQL语言建立的数据库,其表与表之间的关系图如图3-10所示:
图3-10 数据库表关系图
3.11界面设计
3.11.1界面设计方法:
遵循Windows界面的设计风格,并能充分体现用户功能的直观性和方便性、数据操作的规范性和统一性。
将功能列表集中显示,方便用户查找使用,简单的操作逻辑可快速培养用户使用习惯。
主要操作界面放在一个窗口显示,不会造成窗口过多,杂乱无章的情况。
将界面划分为不同的功能区域,相互间不干扰,在一个界面内解决所有问题,便于用户使用和操作。
3.11.2登录模块界面设计
功能概述:用户必须输入正确的用户名和密码才能进入。
普通用户登录界面,如图3-11所示
图3-11普通用户登录界面
图3-12主要流程
主要代码:
普通用户登录认证,检验用户名是否存在,密码是否正确。
<%
request.setCharacterEncoding("GB2312");
GetConn con=new GetConn();
Connection conn=null;
conn=con.Connection();
ExecSQL tsql = new ExecSQL(conn);
String muser=request.getParameter("muser");
String mpass=request.getParameter("mpass");
String sql="select flg,zhname,zt,vip from user where name='"+muser+"' and pwd='"+mpass+"'";
String result[][]=null;
System.out.println(sql);
result=tsql.Query(sql);
if(result==null){
System.out.println("a");
out.println("<script>");
out.println("alert(\"用户名或密码错误\");");
out.println("window.history.go(-1);");
out.println("</script>");
//response.sendRedirect("index.jsp");
}else{
session.setAttribute("quanxian",result[0][0]);
session.setAttribute("zhname",result[0][1]);
System.out.println("b");
out.println("<script>");
out.println("alert(\"登录成功\");");
if(result[0][0]!=null){
out.println("window.location='admin/index.jsp';");
System.out.println("c");
}else{
System.out.println("d");
out.println("window.location='index.jsp';");
}
out.println("</script>");
}
conn.close();
%>
管理员登录界面如图3-12所示:
图3-12管理员登录界面
主要代码:
检验输入的管理员的名字是否正确,密码是否正确。
function checkinput()
{
include("conn/conn.php");
$sql=mysql_query("select * from tb_admin where name='".$this->name."'",$conn);
$info=mysql_fetch_array($sql);
if($info==false)
{
echo "<script language='javascript'>alert('不存在此管理员!');history.back();</script>";
exit;
}
else
{
if($info[pwd]==$this->pwd){
header("location:default.php");
}
else
{
echo "<script language='javascript'>alert('密码输入错误!');history.back();</script>";
exit;
} }
首页代码主要代码
<%
request.setCharacterEncoding("GB2312");
GetConn con=new GetConn();
Connection conn=null;
conn=con.Connection();
ExecSQL tsql = new ExecSQL(conn);
String result[][]=null;
String result_gg[][]=null;
String result_jd[][]=null;
String result_fang[][]=null;
String sql="select price,lx,tj from fangtp ";//tj 特价
String gonggao="select title,id from gonggao where zt=1";
String jd="select jdname,miaoshu,addr,tel,linkman from jd where id=1";
String fang="select id,fangnum,pic,fangtpid from fang ";
result_fang=tsql.Query(fang);
result_jd=tsql.Query(jd);
result_gg=tsql.Query(gonggao);
result=tsql.Query(sql);
conn.close();
%>
查询特价房
<%
if(result!=null)
{
for(int i=0;i<result.length;i++){
%>
<TR>
<TD align=middle width=30 height=35><IMG src="pic/gif/1258530733.gif"><%if((result[i][2]!=null)&&result[i][2].equals("1")) out.println("<font color=\"red\">特价</font>");%></TD>
<TD width=173><SPAN style="FONT-SIZE: 14px"><% if(result[i][1]!=null) out.println(result[i][1]);%><STRONG><FONT color=#ff0000><% if(result[i][0]!=null) out.println(result[i][0]);%>元</FONT></STRONG>/套</SPAN></TD></TR>
<TR>
<TD bgColor=#1facd8 colSpan=2 height=2></TD></TR>
<TR>
<%
}
}
%>
3.11.3查看公告界面设计
查看公告界面面如图5-13所示:
图3-13公告界面
主要代码:
<TABLE cellSpacing=6 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle height=98><TABLE cellSpacing=0 cellPadding=0 width=203 align=center border=0>
<TBODY>
<%
if(result!=null)
{
for(int i=0;i<result.length;i++){
%>
<TR>
<TD align=middle width=30 height=35><IMG src="pic/gif/1258530733.gif"><%if((result[i][2]!=null)&&result[i][2].equals("1")) out.println("<font color=\"red\">特价</font>");%></TD>
<TD width=173><SPAN style="FONT-SIZE: 14px"><% if(result[i][1]!=null) out.println(result[i][1]);%><STRONG><FONT color=#ff0000><% if(result[i][0]!=null) out.println(result[i][0]);%>元</FONT></STRONG>/套</SPAN></TD></TR>
<TR>
<TD bgColor=#1facd8 colSpan=2 height=2></TD></TR>
<TR>
<%
}
}
%>
</TBODY></TABLE></TD></TR></TBODY></TABLE>
其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者