博主介绍:翰文编程 专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和课设项目实战、企业信息化系统建设,从业十八余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+题目解决方法案例  方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址

系统主要功能各功能结构图模块如图4-1所示:

                                    图4-1 功能结构图

4.2数据库设计

本系统设计时选择的数据库是MYSQL,MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。

4.2.1数据库设计原则

数据库的设计应该考虑以下几个方面的原则[13]

(1)安全性。对于一个交易平台而言,它的信息的安全性是非常重要的,因此,必须在用户访问数据库的时候进行身份的验证。

(2)简明性。如果系统涉及的信息较为庞大和复杂,因此在设计数据库的时候必须尽可能地减少数据冗余,减少不必要的存储空间的浪费,建立表与表之间合理而高效的关系。

(3)数据完整性检查:使用Check约束,Default缺省值的预设。

4.2.2数据库表的设计

本系统选择的数据库是ORACLE,ORACLE作为甲骨文公司在Windows系列平台上开发的数据库,一经推出就以其易用性得到了许多用户的青睐,ORACLE是一个功能完备的数据库管理系统。在设计一个新数据库时,不但研究业务需求而且还要考察现有的系统。数据库设计质量的好坏,数据结构的优劣,直接影响到最终系统的成败。如果把系统平台的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。

在设计一个新数据库时,不但应该仔细研究业务需求而且还要考察现有的系统。在数据库设计之前一定要定义数据库对象的命名规范。对数据库表来说,从项目一开始就要确定表名是采用复数还是单数形式。本信息平台的数据库标名采用单数形式。此外要给表的别名定义简单规则在数据库设计之前一定要定义数据库对象的命名规范。根据需求分析,本系统的数据库表,具体设计如下:

1 游客信息表( 游客编号,用户名,密码,姓名,联系电话,联系地址 )

2 景点信息表( 景点编号,景点,景点名称,位置,图片,特色,价格,交通,周边情况 )

3 旅行社信息表( 旅行社编号,旅行社,联系电话,联系地址 )

4 导游信息表( 导游编号,用户名,密码,姓名,联系电话,联系地址,旅行社,照片 )

5 旅行记录表( 旅行记录编号,景点,游客,导游,旅行时间,旅行过程,说明 )

6 管理员信息表( 管理员编号,用户名,密码,姓名,注册时间 )

7 旅游线路表( 旅游线路编号,旅游线路,图片,介绍,线路周边景色,交通方式,游玩过程 )   

4.2.3数据表详细结构

本系统数据库命名为lxs主要由下列数据表组成,分别为:游客(youke),景点(jingdian),旅行社(lxs),导游(daoyou),旅行记录(lxjl),管理员(gly),旅游线路(lyxl)共计7张数据表如下表所示

表4-1 游客信息表

序号

字段名称

数据类型

长度

主键

描述

1

ykid

INTEGER

11

游客编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

lxdh

VARCHAR

40

联系电话

6

lxdz

VARCHAR

40

联系地址

表4-2  景点信息表

序号

字段名称

数据类型

长度

主键

描述

1

jdid

INTEGER

11

景点编号

2

jd

VARCHAR

40

景点

3

jdmc

VARCHAR

40

景点名称

4

wz

VARCHAR

40

位置

5

tp

VARCHAR

40

图片

6

ts

VARCHAR

40

特色

7

jg

VARCHAR

40

价格

8

jt

VARCHAR

40

交通

9

zbqk

VARCHAR

40

周边情况

表4-3 旅行社信息表

序号

字段名称

数据类型

长度

主键

描述

1

lxsid

INTEGER

11

旅行社编号

2

lxs

VARCHAR

40

旅行社

3

lxdh

VARCHAR

40

联系电话

4

lxdz

VARCHAR

40

联系地址

表4-4  导游信息表

序号

字段名称

数据类型

长度

主键

描述

1

dyid

INTEGER

11

导游编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

lxdh

VARCHAR

40

联系电话

6

lxdz

VARCHAR

40

联系地址

7

lxs

VARCHAR

40

旅行社

8

zp

VARCHAR

40

照片

表4-5  旅行记录信息表

序号

字段名称

数据类型

长度

主键

描述

1

lxjlid

INTEGER

11

旅行记录编号

2

jd

VARCHAR

40

景点

3

yk

VARCHAR

40

游客

4

dy

VARCHAR

40

导游

5

lxsj

VARCHAR

40

旅行时间

6

lxgc

VARCHAR

40

旅行过程

7

sm

VARCHAR

40

说明

表4-6  管理员信息表

序号

字段名称

数据类型

长度

主键

描述

1

glyid

INTEGER

11

管理员编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

zcsj

VARCHAR

40

注册时间

表4-7  旅游线路信息表

序号

字段名称

数据类型

长度

主键

描述

1

lyxlid

INTEGER

11

旅游线路编号

2

lyxl

VARCHAR

40

旅游线路

3

tp

VARCHAR

40

图片

4

js

VARCHAR

40

介绍

5

xlzbjs

VARCHAR

40

线路周边景色

6

jtfs

VARCHAR

40

交通方式

7

ywgc

VARCHAR

40

游玩过程

 4.3 数据库概念设计

将需求分析得到的用户需求抽象为信息结构,即概念模型的过程就是概念结构设计,它是整个数据库设计的关键。

(2)系统中实体E-R图

根据旅行社管理系统的详细设计系统的要求,规划出了以下一些实体,权限实体,用户实体,公告实体,景点实体,景点报名实体,酒店实体,酒店预定实体,用户反馈实体,联系我们实体,信息类别实体,信息实体。如图所示:

图4.1 系统E-R图

游客实体就是用来记录该系统游客编号,用户名,密码,姓名,联系电话,联系地址信息。如图4.2所示:

图4.2 游客实体属性图


景点实体就是用来记录景点编号,景点,景点名称,位置,图片,特色,价格,交通,周边情况信息的。如图4.3所示:

图4.3 景点实体属性图

旅行社实体就是用来记录旅行社编号,旅行社,联系电话,联系地址信息的。如图4.4所示:

图4.4 旅行社实体属性图

导游实体就是用来记录导游编号,用户名,密码,姓名,联系电话,联系地址,旅行社,照片信息。如图4.5所示:

图4.5 导游实体属性图


旅行记录信息实体,主要包括旅行记录编号,景点,游客,导游,旅行时间,旅行过程,说明等信息实体。如图4.6所示:

图4.6 旅行记录实体属性图

管理员信息实体,主要包括管理员编号,用户名,密码,姓名,注册时间等信息实体。如图4.7所示:

图4.7 管理员实体属性图

旅游线路实体就是用来记录旅游线路编号,旅游线路,图片,介绍,线路周边景色,交通方式,游玩过程的信息。如图4.8所示:

图4.8 旅游线路实体属性图

    

5系统的详细设计

5.1游客模块的实现

该功能用于实现对系统游客信息的管理。可以添加、删除和更改游客信息,以及游客信息列表展现,在添加游客信息时,系统会自动查询系统中游客表中的游客编号字段,系统自动将游客表中最大值加1作为该游客表游客记录的游客编号,同时将游客编号,用户名,密码,姓名,联系电话,联系地址信息添加到游客信息表中;在删除一条游客记录时,先选中一条游客记录,将该条游客记录中的游客编号作为查询条件在游客信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改游客记录时,先选中一条游客记录,将游客信息显示在相应的修改页面中,然后更改后保存到游客信息表中;查看游客信息记录时,选中要查看的游客记录,系统根据用户选择游客信息,在详细页面显示游客信息,如图5-1所示:

图5-1游客列表界面

主要代码:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<%@ page import="com.util.*"%>

<%

request.setCharacterEncoding("gb2312");

DBO db=new DBO();

String sql="select * from youke where 1=1 ";

db.open();

ResultSet rs=db.query(sql);

//游客信息查询

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>游客列表</title>

</head>

<LINK href="../images/Admin_Style.css" type=text/css rel=stylesheet>

<LINK href="../images/style.css" type=text/css rel=stylesheet>





<body><br>

<br>

<br>



<form name="form" method="post" action="">



    <table width="100%" border="1" cellspacing="0" cellpadding="0"  class="tablewidth">

                  <TR align="center" class=head ><TD height=23 colspan="15">信息列表</TD></TR>

  <tr class="listheadtr">

 <td width="9%" height="25" >游客编号</td>

 <td width="9%" height="25" >用户名</td>

 <td width="9%" height="25" >密码</td>

 <td width="9%" height="25" >姓名</td>

 <td width="9%" height="25" >联系电话</td>

 <td width="9%" height="25" >联系地址</td>

 <td width="10%">操作</td>

</tr>





<%

if(rs!=null){

while(rs.next()){

%>

                     <tr>

 <td height="24" ><%=rs.getString("ykid")%></td>

 <td height="24" ><%=rs.getString("yhm")%></td>

 <td height="24" ><%=rs.getString("mm")%></td>

 <td height="24" ><%=rs.getString("xm")%></td>

 <td height="24" ><%=rs.getString("lxdh")%></td>

 <td height="24" ><%=rs.getString("lxdz")%></td>

<td ><a href="youkeupdate.jsp?keyid=<%=rs.getString("ykid")%>">编辑</a>|<a href="youkedelete.jsp?keyid=<%=rs.getString("ykid")%>"   onClick="javascript:if(confirm('是否删除')){return true;}else{return false;}">删除</a>|<a href="youkedetail.jsp?keyid=<%=rs.getString("ykid")%>">查看</a></td>

</tr>



                 <%

 }

 }

 %>

                </table>

  </form>

</body>

<%

db.close();

%>

</html>

5.2景点模块的实现

该功能用于实现对系统景点信息的管理。可以添加、删除和更改景点信息,以及景点信息列表展现,在添加景点信息时,系统会自动查询系统中景点表中的景点编号字段,系统自动将景点表中最大值加1作为该景点表景点记录的景点编号,同时将景点编号,景点,景点名称,位置,图片,特色,价格,交通,周边情况信息添加到景点信息表中;在删除一条景点记录时,先选中一条景点记录,将该条景点记录中的景点编号作为查询条件在景点信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改景点记录时,先选中一条景点记录,将景点信息显示在相应的修改页面中,然后更改后保存到景点信息表中;查看景点信息记录时,选中要查看的景点记录,系统根据用户选择景点信息,在详细页面显示景点信息,如图5-2所示

图5-2景点管理界面

主要代码:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<%@ page import="com.util.*"%>

<%

/*

景点添加后台

*/

DBO db=new DBO();

request.setCharacterEncoding("gb2312");

ResultSet rs=null;

String keyid =(String)request.getParameter("keyid");

String jd=(String)request.getParameter("jd");

String jdmc=(String)request.getParameter("jdmc");

String wz=(String)request.getParameter("wz");

String tp=(String)request.getParameter("tp");

String ts=(String)request.getParameter("ts");

String jg=(String)request.getParameter("jg");

String jt=(String)request.getParameter("jt");

String zbqk=(String)request.getParameter("zbqk");

String sql="";

 sql="insert into jingdian(jd,jdmc,wz,tp,ts,jg,jt,zbqk) values('"+jd+"','"+jdmc+"','"+wz+"','"+tp+"','"+ts+"','"+jg+"','"+jt+"','"+zbqk+"')";

;//景点SQL 语句

int row=1;

try{

//int row =0;

row=db.update(sql);

}catch(Exception e){

System.out.println(e.toString());}

if(row==1){

out.println("<script>");

out.println("alert('操作成功');");

out.println("window.location='jingdianadd.jsp'");

out.println("</script>");

}else{

out.println("<script>");

out.println("alert('操作失败');");

out.println("window.location='jingdianadd.jsp'");

out.println("</script>");

}

db.close();

%>

5.3 旅行社模块的实现

该功能用于实现对系统旅行社信息的管理。可以添加、删除和更改旅行社信息,以及旅行社信息列表展现,在添加旅行社信息时,系统会自动查询系统中旅行社表中的旅行社编号字段,系统自动将旅行社表中最大值加1作为该旅行社表旅行社记录的旅行社编号,同时将旅行社编号,旅行社,联系电话,联系地址信息添加到旅行社信息表中;在删除一条旅行社记录时,先选中一条旅行社记录,将该条旅行社记录中的旅行社编号作为查询条件在旅行社信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改旅行社记录时,先选中一条旅行社记录,将旅行社信息显示在相应的修改页面中,然后更改后保存到旅行社信息表中;查看旅行社信息记录时,选中要查看的旅行社记录,系统根据用户选择旅行社信息,在详细页面显示旅行社信息,如图5-3所示:

图5-3旅行社管理界面

主要代码:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<%@ page import="com.util.*"%>

<%

request.setCharacterEncoding("gb2312");

DBO db=new DBO();

String sql="select * from lxs where 1=1 ";

db.open();

ResultSet rs=db.query(sql);

//旅行社信息查询

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>旅行社列表</title>

</head>

<LINK href="../images/Admin_Style.css" type=text/css rel=stylesheet>

<LINK href="../images/style.css" type=text/css rel=stylesheet>

<body><br>

<br>

<br>

<form name="form" method="post" action="">

    <table width="100%" border="1" cellspacing="0" cellpadding="0"  class="tablewidth">

                  <TR align="center" class=head ><TD height=23 colspan="15">信息列表</TD></TR>

  <tr class="listheadtr">

 <td width="9%" height="25" >旅行社编号</td>

 <td width="9%" height="25" >旅行社</td>

 <td width="9%" height="25" >联系电话</td>

 <td width="9%" height="25" >联系地址</td>

 <td width="10%">操作</td>

</tr>

<%

if(rs!=null){

while(rs.next()){

%>

                     <tr>

 <td height="24" ><%=rs.getString("lxsid")%></td>

 <td height="24" ><%=rs.getString("lxs")%></td>

 <td height="24" ><%=rs.getString("lxdh")%></td>

 <td height="24" ><%=rs.getString("lxdz")%></td>

<td ><a href="lxsupdate.jsp?keyid=<%=rs.getString("lxsid")%>">编辑</a>|<a href="lxsdelete.jsp?keyid=<%=rs.getString("lxsid")%>"   onClick="javascript:if(confirm('是否删除')){return true;}else{return false;}">删除</a>|<a href="lxsdetail.jsp?keyid=<%=rs.getString("lxsid")%>">查看</a></td>

</tr>

                 <%

 }

 }

 %>

                </table>

  </form>

</body>

<%

db.close();

%>

</html>

>

5.4旅游线路模块的实现

该功能用于实现对系统旅游线路信息的管理。可以添加、删除和更改旅游线路信息,以及旅游线路信息列表展现,在添加旅游线路信息时,系统会自动查询系统中旅游线路表中的旅游线路编号字段,系统自动将旅游线路表中最大值加1作为该旅游线路表旅游线路记录的旅游线路编号,同时将旅游线路编号,旅游线路,图片,介绍,线路周边景色,交通方式,游玩过程信息添加到旅游线路信息表中;在删除一条旅游线路记录时,先选中一条旅游线路记录,将该条旅游线路记录中的旅游线路编号作为查询条件在旅游线路信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改旅游线路记录时,先选中一条旅游线路记录,将旅游线路信息显示在相应的修改页面中,然后更改后保存到旅游线路信息表中;查看旅游线路信息记录时,选中要查看的旅游线路记录,系统根据用户选择旅游线路信息,在详细页面显示旅游线路信息,如图5-4所示:

图5-4旅游线路管理界面

更多推荐