目录
[2. 系统需求分析](#2. 系统需求分析)
[2.1 任务概述](#2.1 任务概述)
[2.2 功能性需求](#2.2 功能性需求)
[2.3 非功能性需求](#2.3 非功能性需求)
[2.4 开发技术简介](#2.4 开发技术简介)
[2.4.1 开发工具简介](#2.4.1 开发工具简介)
[2.4.2 开发技术简介](#2.4.2 开发技术简介)
[3. 系统总体设计](#3. 系统总体设计)
[3.1 系统总体功能设计](#3.1 系统总体功能设计)
[3.2 系统数据库设计](#3.2 系统数据库设计)
[3.2.1 概念结构设计](#3.2.1 概念结构设计)
[3.2.2 数据库逻辑结构设计](#3.2.2 数据库逻辑结构设计)
[4. 系统主要功能设计及实现](#4. 系统主要功能设计及实现)
1.系统的受众说明
1 在校学习的学生,可用于日常学习使用或是毕业设计使用
2 毕业一到两年的开发人员,用于锻炼自己的独立功能模块设计能力,增强代码编写能力。
3 亦可以部署为商化项目使用。
4 需要完整资料及源码,请在文末获取联系方式领取。
2. 系统需求分析
2. 1 任务概述
旅游推荐系统的功能模块设计充分考虑了用户和管理员的需求,实现了丰富而全面的功能。用户模块包括景点浏览、购票、获取旅游线路、酒店信息、旅游资讯等,注册、登录、我的收藏等功能也为用户提供了更加个性化和便捷的服务。管理员模块涵盖了账号管理、线路管理、景点信息管理、订单信息管理、资讯管理等,以提高管理效率。这些功能模块的设计旨在为用户提供全面而便利的旅游体验,同时为管理员提供高效的管理工具,促进旅游业的发展与管理的现代化。系统通过清晰的功能模块划分,使得用户和管理员可以轻松实现他们的目标,同时保障了系统的高效运行和良好的用户体验。
图2.1系统功能概述
2. 2 功能性需求
旅游信息推荐系统主要分为两大功能模块:系统管理员模块和用户使用端模块。
管理端模块主要负责整个系统的配置及系统安全运行保证。管理端模块包括首页、景点管理、线路管理、酒店管理、资讯管理、景点预约、酒店预约、用户管理、轮播图管理、个人中心
首页,包括最近七日酒店预约和景点预约的可视化图表分析。
景点管理模块,包括对景点的增加、删除、修改、查询功能。
线路管理模块,包括对线路的增加、删除、修改、查询功能。
酒店管理模块,包括对酒店的增加、删除、修改、查询功能。
资讯管理模块,包括对资讯的增加、删除、修改、查询功能。
景点预约,查看用户的预约订单。
酒店预约,查看用户的预约订单。
用户管理,对管理员和用户的账号管理,可以修改账号信、重置密码和删除。
个人中心,对管理员自身信息的修改,包括密码和头像的修改。
学生模块主要包含了系统主页、景点信息、旅游线路、景区酒店、旅游资讯、我的收藏、我的预定、个人中心等功能。
2. 3 非功能性需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:
2. 3 .1正确性需求
管理员应能够进行有关的用户信息准确地添加到数据库中。系统用户登录后,系统应能正确地读取用户个人信息以及用户的权限信息系统的操作结果与预期的结果应该是一致。
2. 3 .2安全性需求
系统登录需要输入用户名、密码,并且需要防止SQL注入问题,用户登录后根据用户角色的不同可以访问的权限应该不同。
2. 3 .3界面需求
系统对界面的要求窗口布局清晰,颜色搭配合理,色调柔和,各窗体主题风格一致,对用户友好,界面的设计应遵循如下规则:
(1)提供信息反馈,用多种信息提示用户当前的系统运行状态。
(2)显示启动画面,画面要简洁明了,不能太过花哨。
2. 3 .4时间特殊性需求
当管理员向系统添加用户信息时需要在一定时间内处理用户数据并将数据录入数据库中。
2. 3 .5稳定性需求
系统部署后,在硬件条件和支持软件条件没有变化的情况下,能够一直保持运行状态,直到系统被升级或代替。
2. 3 .6故障处理能力需求
系统可能遇到的软件故障是数据库与应用程序服务器。为了满足信息处理的需求,可以采取数据恢复数据来解决。
2.4 开发技术简介
2.4.1 开发工具简介
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。2001年1月发布IntelliJ IDEA 1.0版本,同年七月发布2.0,接下来基本每年发布一个版本(2003除外),当然每年对各个版本都是一些升级。3.0版本之后,IDEA屡获大奖,其中又以2003年的赢得的"Jolt Productivity Award","JavaWorld Editors's Choice Award"为标志,从而奠定了IDEA在IDE中的地位。
2.4.2 开发 技术 简介
1.SpringBoot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
2.MYSQL 数据库介绍
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
本系统使用 MySQL 作为开发中使用的数据库,它具有使用简单,稳定等特性。在与 java 程序连接时,为提到数据库操作的效率提高系统的性能。使用到 DBUtils 和 DBCP 等工具。
在使用 DBUtils 之前,我们 Dao 层使用的技术是 JDBC,那么分析一下 JDBC 的弊端。数据库链接对象、sql 语句操作对象,封装结果集对象,这三大对象会重复定义封装数据的代码重复,而且操作复杂,代码量大。释放资源的代码重复。
3.Vue
Vue是于2013年(与React框架同年发布)推出的一个渐进式、自底向上的前端框架,它的作者叫尤雨溪。那么什么叫做渐进式框架呢?比较官方的说法就是:以Vue内核作为核心,随着业务的深入、需求的递增,可以使用其周边生态(vue-router、vuex、ssr等)深度应用到项目中。那么通俗上来讲:就是我们可以使用vue的部分功能不断的迭代掉我们项目中部分的功能,从表单提交到列表渲染,再到多路由应用,再到SSR等。
结果:(1)程序员在开发的时候,有大量的重复劳动。(2)开发的周期长,效率低。数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出来的.数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中, 这些数据库连接的数量是由最小数据库连接数来设定的.无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量.连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。
3. 系统总体设计
3.1 系统 总体功能设计
考虑到本系统主要是的使用者是游客,考虑到游客的硬件设备和软件设备不足、学生的学习能力水平等因素,本系统的主要流程图如下图所示。
图 3. 1.1 系统登录功能流程图
图 3. 1.2 系统景区预定流程图
图 3. 1. 3系统酒店预定流程图
3.2 系统 数据库设计
3.2.1 概念结构设计
数据库的角色和表关系图如下图所示:
图 3.2 角色和表关系 图
3.2. 2 数据库逻辑结构设计
数据库的逻辑结构设计主要分为两步:第一步将概念设计模型得出的E-R图进行转换成关系模型,然后对转化成的关系模型进行优化。根据角色和表关系图可以确定系统设计 11 个数据表比较合适,分别是景点预约表(sys_attraction_order)、景点表(sys_attractions)、景点评论表(sys_comments)、收藏表(sys_favor)、资讯表(sys_forum)、酒店表(sys_hotel)、房型表(sys_hotel_item)、酒店预约表(sys_hotel_order)、旅游线路表(sys_line)、轮播图表(sys_rotations)、用户表(user)。在系统的实体类图确定之后,需要将概念层进一步具体化。实体类之间的联系可以根据具体的情况确定。
具体的数据库ER图如下图所示:
图3. 2.1 景点预约E R 图
图3. 2.2 景点E R 图
图3. 2.3 景点评论E R 图
图3. 2.4 收藏E R 图
图3. 2.5 资讯E R 图
图3. 2.6 酒店E R 图
图3. 2.7 酒店房型E R 图
图3. 2.8 酒店预约E R 图
图3. 2.9 旅游线路E R 图
图3. 2.10 轮播图E R 图
图3. 2.1 1用户E R 图
图3. 2.1 2系统总体E R 图
4. 系统主要功能设计及实现
4. 1 用户功能
用户在登录页面通过输入用户名和密码后点击登录按钮进行登录,用户的登录功能设计如下图所示:
图4.1 .1 用户登录界面
用户在注册页面通过输入用户名、用户账号、密码和确认密码后点击注册按钮进行注册,用户的注册功能设计如下图所示:
图4.1 .2 用户注册界面
用户在登陆成功后会进入到系统首页,系统首页展示了轮播图、推荐景点、平台统计数据、推荐线路,用户的首页功能设计如下图所示:
图4.1 .3 用户首页界面
点击导航栏的景点信息进入景点列表,可以根据景点名称检索,用户的景点列表功能设计如下图所示:
图4.1 .4 用户景点列表界面
进入景点列表之后,点击想要预约的景点,进入到景点详情页,景点详情页包含了景点名称、价格、简介、库存、介绍和评论功能,用户的景点详情功能设计如下图所示:
图4.1 .5 用户景点详情界面
点击立即预约,选择预约日期和填写预约人,如下图所示:
图4.1 .6 用户预约景点界面
点击导航栏的旅游线路进入到旅游线路列表,可以根线路名称、地理情况和温度进行筛选,旅游线路列表功能设计如下图所示:
图4.1 . 7用户旅游线路列表界面
点击线路之后进入线路详情页面,展示图片、名称和内容,点击收藏按钮可以收藏线路,线路详情功能设计如下图所示:
图4.1 . 8旅游线路详情界面
点击导航栏的景区酒店进入到酒店列表,可以根据酒店、景点进行筛选,酒店列表功能设计如下图所示:
图4.1 . 9酒店列表中心界面
点击相应酒店进入到酒店详情页,酒店详情功能设计如下图所示:
图4.1 .1 0酒店详情界面
点击导航栏的旅游资讯进入资讯列表,可以根据资讯名称筛选,资讯列表功能设计如下图所示:
图4.1 .1 1资讯列表界面
点击对应资讯进入资讯详情页,展示资讯的标题和具体内容,资讯详情功能设计如下图所示:
图4.1 .1 2资讯详情界面
点击导航栏的我的收藏进入到收藏列表,点击收藏查看线路内容,收藏列表功能设计如下图所示:
图4.1 .1 3我的收藏列表界面
点击导航栏的我的预定进入到预定列表,预定列表功能设计如下图所示:
图4.1 .1 4用户预定列表界面
点击导航栏头像,可以修改个人信息、修改密码和头像,个人中心功能设计如下图所示:
图4.1 .1 5用户个人中心界面
4.2 管理员功能
管理员登陆后进入管理员首页,展示出平台的预约数据。功能如下图所示:
图4. 2.1 后台首页界面
点击景点管理,可以对该景点进行增加、删除、修改、查询,景点管理功能设计如下图所示:
图4. 2.2 景点管理界面
图4. 2.3 景点新增界面
图4.2.4景点修改界面
图4. 2.5 景点评论界面
点击线路管理,可以对线路进行增加、删除、修改、查询。线路管理功能设计如下图所示:
图4. 2. 6线路管理界面
点击酒店管理,可以新增、删除、修改、查询酒店,点击房型按钮可以对酒店的房型进行修改。酒店管理设计如下图所示:
图4.2.7酒店管理界面
图4. 2. 8酒店新增界面
图4. 2. 9酒店修改界面
图4. 2.1 0酒店房型界面
点击资讯管理,可以对资讯进行增加、删除、修改、查询。资讯管理如下图所示:
图4. 2.1 1资讯管理界面
图4. 2.1 2资讯新增界面
图4. 2.1 3资讯修改界面
点击景点预约管理,可以对预约的订单进行删除、查询。还可以进行核销操作。景点预约管理如下图所示:
图4. 2.1 4景点预约界面
点击酒店预约管理,可以对预约的订单进行删除、查询。还可以进行核销操作。酒店预约管理如下图所示:
图4. 2.1 5酒店预约界面
点击轮播图管理,可以对首页的轮播图进行删除、查询。轮播图管理如下图所示:
图4. 2.1 6轮播图界面
点击个人中心,可以修改信息,修改密码和头像,个人中心功能设计如下图所示:
图4. 2. 17个人中心界面