基于java的酒店管理系统设计与实现

第二章 系统需求分析与概要设计

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>

其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_251836457

你的鼓励 是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值