基于SpringBoot的旅游景点管理系统的设计与实现 毕业设计-附源码03906

摘 要

随着信息技术的快速发展和普及,数字化、信息化已成为各行各业转型升级的重要方向。旅游业作为现代服务业的重要组成部分,其信息化水平直接影响着旅游服务质量和游客体验。安丘,作为拥有丰富旅游资源的地方,其旅游景点的管理面临着诸多挑战,如资源分散、信息更新不及时、游客服务体验不佳等问题。因此,开发一套高效、便捷的旅游景点管理系统显得尤为重要。

Spring Boot作为当前流行的Java开发框架,具有快速构建、易于集成、高可扩展性等特点,非常适合用于构建中大型Web应用。基于Spring Boot的安丘旅游景点管理系统旨在通过技术手段整合和优化旅游资源,提高管理效率,提升游客满意度。

本文将对基于Spring Boot的安丘旅游景点管理系统的设计与实现进行详细介绍,包括系统的需求分析、架构设计、关键技术的选择与应用、功能模块的实现以及系统测试等方面。希望通过本文的阐述,能够为相关领域的开发者和研究人员提供有益的参考和借鉴。

关键词:安丘旅游景点管理系统;Web应用;Spring Boot框架

Design and Implementation of Anqiu Tourist Attraction Management System Based on SpringBoot

Abstract

With the rapid development and popularization of information technology, digitization and informatization have become important directions for transformation and upgrading in various industries. As an important component of modern service industry, the level of informatization in the tourism industry directly affects the quality of tourism services and tourist experience. Anqiu, as a place with abundant tourism resources, faces many challenges in the management of its tourist attractions, such as scattered resources, untimely information updates, and poor tourist service experience. Therefore, developing an efficient and convenient tourist attraction management system is particularly important.

As a popular Java development framework, Spring Boot has the characteristics of fast construction, easy integration, and high scalability, making it very suitable for building medium to large web applications. The Anqiu Tourist Attraction Management System based on Spring Boot aims to integrate and optimize tourism resources through technological means, improve management efficiency, and enhance tourist satisfaction.

This article will provide a detailed introduction to the design and implementation of the Anqiu Tourist Attraction Management System based on Spring Boot, including system requirements analysis, architecture design, selection and application of key technologies, implementation of functional modules, and system testing. I hope that the explanation in this article can provide useful references and insights for developers and researchers in related fields.

Key words:Anqiu Tourist Attraction Management System; Web applications; Spring Boot framework

目  录

第1章 绪论

1.1 研究背景与意义

1.2 国内外研究现状

1.3 论文组成结构

第2章 系统分析

2.1 可行性分析

2.1.1 技术可行性

2.1.2 经济可行性

2.1.3 操作可行性

2.2 需求分析

2.3 系统用例分析

2.4 系统流程分析

第3章 系统设计

3.1 系统架构设计

3.2 系统功能结构

3.3 数据库设计

3.3.1 数据库E-R图设计

3.3.2 逻辑结构设计

第4章 系统实现

4.1 普通用户模块的实现

4.1.1 前台首页界面

4.1.2 用户注册界面

4.1.3 用户登录界面

4.1.4 旅游资讯界面

4.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.3 导游用户模块的实现

4.3.1 预约信息管理界面

第5章 系统测试

5.1 测试目的

5.2 测试用例

5.2.1 登录测试 

5.2.2 注册测试 

5.2.3 订单信息测试

5.2.4 资源管理测试 

5.3 测试结果

第6章 总结与展望

参考文献

致谢

  1. 绪论
    1. 研究背景与意义

在数字化、信息化的时代背景下,旅游行业正经历着深刻的变革。随着人们生活水平的提高和休闲时间的增加,旅游已经成为人们日常生活中重要的组成部分。安丘,作为拥有众多自然风光和人文景观的地方,吸引了大量的游客前来游览。然而,随着旅游业的快速发展,传统的旅游管理方式已经无法满足现代旅游业的需求,面临着诸多挑战。

首先,传统的旅游景点管理方式通常依赖于纸质文档和人工操作,这种方式不仅效率低下,而且容易出错,无法满足大规模、高效率的旅游管理需求。同时,由于缺乏有效的信息化手段,旅游资源的整合和优化变得困难重重,无法为游客提供个性化、高质量的旅游服务。

因此,开发一套基于Spring Boot的安丘旅游景点管理系统具有重要的现实意义和应用价值。该系统能够利用先进的信息化手段,实现旅游资源的整合和优化,提高管理效率和服务质量。通过实时采集和分析游客行为、景点访问量等数据,为管理部门提供决策支持,推动旅游业的可持续发展。同时,该系统还能够为游客提供更加个性化、高质量的旅游服务,提升游客满意度和忠诚度。

总之,基于Spring Boot的安丘旅游景点管理系统的设计与实现,不仅有助于解决传统旅游管理方式存在的问题和挑战,还能够推动旅游业的数字化转型和升级,为旅游业的发展注入新的活力和动力。

    1. 国内外研究现状

国内研究现状

近年来,随着信息技术的迅猛发展和国内旅游业的快速增长,国内对于旅游景点管理系统的研究与应用逐渐增多。许多城市和景区都在积极推进旅游信息化建设,采用先进的信息化手段来提升旅游管理和服务水平。

在旅游景点管理系统的设计与实现方面,国内研究者已经取得了一系列成果。一些学者和开发者结合国内旅游业的实际需求,研发了具有自主知识产权的旅游景点管理系统。这些系统通常采用先进的编程技术和框架,如Spring Boot、Java等,实现了对旅游资源的整合、优化和高效管理。同时,这些系统还提供了丰富的功能模块,如景点信息管理、游客服务管理、营销推广管理、统计分析等,为旅游业的发展提供了有力支持。

然而,国内旅游景点管理系统的研究与应用仍然存在一些问题和挑战。一方面,部分系统的功能还不够完善,无法满足旅游业日益增长的需求。另一方面,一些系统的用户体验和稳定性还有待提升,需要进一步优化和改进。

国外研究现状

在国外,旅游景点管理系统的研究与应用起步较早,已经形成了较为成熟的市场和技术体系。许多国家和地区都在积极推进旅游信息化建设,采用先进的信息化手段来提升旅游管理和服务水平。

在旅游景点管理系统的设计与实现方面,国外研究者已经积累了丰富的经验和成果。一些国际知名的旅游网站和旅游管理系统提供商,如TripAdvisor、Booking.com等,都拥有完善的旅游景点管理系统。这些系统通常具备高度的集成性、可扩展性和可定制性,能够根据不同国家和地区的旅游需求进行灵活调整和优化。

同时,国外在旅游景点管理系统的技术创新和应用方面也取得了显著进展。例如,一些系统采用了先进的人工智能和大数据技术,实现了对游客行为、景点访问量等数据的实时分析和预测,为管理部门提供更为精准的决策支持。

综上所述,国内外在旅游景点管理系统的研究与应用方面均取得了一定的成果和经验。然而,随着旅游业的不断发展和变化,仍需要进一步加强技术创新和应用实践,以满足旅游业日益增长的需求和挑战。

    1. 论文组成结构

根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出安丘旅游景点管理系统。

本文共有七章,如下所示。

第一章概述了安丘旅游景点管理系统的研究目的和意义;精炼地总结了国内外在旅游景点管理领域的研究情况和未来的研究趋势,最后给出了论文的组成结构。

第二章简要对系统各业务流程进行需求分析、可行性分析。

第三章对安丘旅游景点管理系统进行设计。

第四章对安丘旅游景点管理系统进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。

第五章对安丘旅游景点管理系统采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。

第六章总结全文并对未来的研究做出展望。

  1. 系统分析
    1. 可行性分析

在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。安丘旅游景点管理系统的可行性分析如下所示:

      1. 技术可行性

安丘旅游景点管理系统采用的是Java编程语言并于freemarker的模式,数据库部分采用的是当前流行的MySQL数据库,安丘旅游景点管理系统中的所有数据资源都存储在MySQL数据库中,本系统多处采用了Ajax的异步操作,Ajax技术可以对用户指定部分的数据进行局部刷新,不仅减少了服务器对页面的解析而且极大增加了用户的体验度。本系统的环境配置也较为简单,因为用的是Myeclipse编辑器,而Myeclipse里面有自带的Tomcat服务器和JDK环境,因此不需要我们在重新配置。所以在技术上是可行的。

      1. 经济可行性

在考虑基于Spring Boot的安丘旅游景点管理系统的设计与实现时,经济可行性是一个至关重要的因素。经济可行性主要关注的是项目的成本效益分析,即投资该系统的成本是否能够在预期的运营期限内通过提高管理效率、优化资源配置、提升游客体验等方式得到合理的回报。

从成本角度来看,开发一个基于Spring Boot的旅游景点管理系统需要投入一定的研发成本,包括开发团队的工资、软硬件资源的采购和维护等。然而,与传统的旅游管理方式相比,这种投资是一次性的,并且随着系统的运行和维护成本的逐渐降低,长期来看,总体成本将会得到有效控制。

从效益角度来看,该系统能够显著提高旅游景点的管理效率和服务质量,减少人工操作错误和降低管理成本。此外,该系统还能够提升游客满意度和忠诚度,吸引更多游客前来游览,进一步增加旅游收入。

因此,从经济可行性分析来看,基于Spring Boot的安丘旅游景点管理系统的设计与实现是具有合理投资回报的。通过该系统的投入运营,可以在长期内实现成本的降低和效益的提升,为旅游业的发展带来积极的经济影响。

      1. 操作可行性

本系统是基于浏览器和服务器的安丘旅游景点管理系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是普通用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。

    1. 需求分析

安丘旅游景点管理系统的设计与实现分为三大部分:管理员模块、普通用户模块和导游用户。

  • 管理员管理功能需求如下:

登录:管理员需要通过用户名和密码进行登录,以获取管理员权限。

系统用户管理:管理员可以管理系统用户,包括添加、删除、修改用户信息等操作,确保系统用户信息的完整性和安全性。

景点信息管理:管理员可以管理旅游景点的信息,包括添加新景点、编辑现有景点、删除景点等操作,确保景点信息的准确性和完整性。

景点分类管理:管理员可以管理景点的分类信息,包括添加新分类、编辑现有分类、删除分类等操作,方便用户浏览和搜索。

订单信息管理:管理员可以管理用户的订单信息,包括查看订单详情、处理订单状态等操作,确保订单的及时处理和顾客满意度。

导游信息管理:管理员可以管理导游的信息,包括添加新导游、编辑导游信息、删除导游等操作,确保旅游服务的质量和可靠性。

预约信息管理:管理员可以管理用户的预约信息,包括查看预约详情、审核预约请求等操作,确保旅游服务的顺利进行。

轮播图管理:管理员可以管理系统首页的轮播图信息,包括添加、修改、删除轮播图等操作,提升网站的视觉效果和用户体验。

公告信息管理:管理员可以发布和管理公告信息,向用户发布重要通知和活动信息。

旅游资讯管理:管理员可以管理旅游资讯的内容,包括发布、编辑、删除资讯文章,提供丰富的旅游信息给用户参考。

分类列表管理:管理员可以管理景点分类的列表信息,包括添加新分类、编辑现有分类、删除分类等操作,为用户提供方便的分类浏览。。

(二)普通用户功能需求如下:

注册登录:允许用户注册新账户并登录系统,以便个性化地使用系统功能。

首页:展示最新的公告信息、旅游资讯、热门景点等内容,方便用户快速获取相关信息。

公告信息:提供系统发布的公告信息,包括活动通知、重要提醒等内容,让用户及时了解系统动态。

旅游资讯:展示各种旅游相关资讯,包括景点介绍、旅游攻略、特色活动等内容,为用户提供旅游参考和建议。

景点信息:用户可以浏览系统中的景点信息,包括景点名称、介绍、地址、评价等内容,帮助用户选择合适的旅游目的地。

导游信息:提供导游的相关信息,包括导游资质、服务内容、联系方式等,方便用户选择合适的导游服务。

我的账户:用户可以查看和修改个人账户的基本信息。

订单信息:用户可以查看自己的订单信息,包括已完成订单和进行中订单的详情。

预约信息:用户可以查看自己的预约信息,包括预约的景点、时间等信息。

收藏:用户可以收藏喜欢的景点或旅游资讯,方便以后查看和参考。

(三)导游用户功能需求如下:

登录: 导游用户需要通过用户名和密码进行登录,以获取导游用户的权限。

预约信息管理: 导游用户可以查看和管理与自己相关的预约信息,包括预约的景点、时间、游客信息等,以便为游客提供相关服务和安排。

    1. 系统用例分析

通过2.2功能的分析,得出了系统的用例图:

普通用户角色用例如图2-1所示。

图2-1普通用户用例图

导游用户角色用例如图2-2所示。

图2-2导游用户用例图

管理员角色用例如图2-3所示。

图2-3管理员用例图

    1. 系统流程分析

1)增加数据流程

系统中的所有用户(管理员、普通用户和导游用户)都可以实现增加数据功能,图2-4显示的就是在增加数据时的流程。

图2-4增加数据流程图

2)修改数据流程

在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图2-5显示的就是修改数据的流程。

图2-5修改数据流程图

3)删除数据流程

在系统中经常会出现一些过期的数据,比如订单信息等,那就可以直接删除这些数据,图2-6就是删除数据时的流程图。

图2-6删除数据流程图

  1. 系统设计
    1. 系统架构设计

由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。

DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。

MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。

系统架构如下图所示。

图3-1系统架构图

    1. 系统功能结构

进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是后台首页、系统用户、景点信息管理、景点分类管理、订单信息管理、导游信息管理、预约信息管理、系统管理、公告信息管理、资源管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。

系统功能结构图如下所示。

图3-2系统功能结构图

    1. 数据库设计

一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。

一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。

      1. 数据库E-R图设计

本安丘旅游景点管理系统采用的是mysql数据库,数据存储快,因为安丘旅游景点管理系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,

系统的主要实体间关系E-R图如下图所示。

图3-3系统E-R图

      1. 逻辑结构设计

此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示以下几个表。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表appointment_information (预约信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

appointment_information_id

int

10

0

N

Y

预约信息ID

2

tour_guide_users

int

10

0

Y

N

0

导游用户

3

tour_guide_name

varchar

64

0

Y

N

导游姓名

4

billing_unit

varchar

64

0

Y

N

计费单位

5

tour_guide_prices

int

10

0

Y

N

0

导游价格

6

regular_users

int

10

0

Y

N

0

普通用户

7

user_name

varchar

64

0

Y

N

用户姓名

8

appointment_time

datetime

19

0

Y

N

预约时间

9

appointment_remarks

text

65535

0

Y

N

预约备注

10

examine_state

varchar

16

0

N

N

未审核

审核状态

11

examine_reply

varchar

16

0

Y

N

审核回复

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表attraction_information (景点信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

attraction_information_id

int

10

0

N

Y

景点信息ID

2

attraction_name

varchar

64

0

Y

N

景点名称

3

types_of_attractions

varchar

64

0

Y

N

景点类型

4

attraction_address

varchar

64

0

Y

N

景点地址

5

cover_photo

varchar

255

0

Y

N

封面图片

6

admission_price

int

10

0

Y

N

0

门票价格

7

opening_hours

varchar

64

0

Y

N

开放时间

8

characteristics_of_scenic_spots

varchar

64

0

Y

N

景点特色

9

introduction_to_scenic_spots

longtext

2147483647

0

Y

N

景点介绍

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表classification_of_tourist_attractions (景点分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

classification_of_tourist_attractions_id

int

10

0

N

Y

景点分类ID

2

types_of_attractions

varchar

64

0

Y

N

景点类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表order_information (订单信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_information_id

int

10

0

N

Y

订单信息ID

2

order_number

varchar

64

0

Y

N

订单编号

3

attraction_name

varchar

64

0

Y

N

景点名称

4

types_of_attractions

varchar

64

0

Y

N

景点类型

5

admission_price

varchar

64

0

Y

N

门票价格

6

regular_users

int

10

0

Y

N

0

普通用户

7

user_name

varchar

64

0

Y

N

用户姓名

8

purchase_quantity

int

10

0

Y

N

0

购买数量

9

total_amount

varchar

64

0

Y

N

合计金额

10

remarks

text

65535

0

Y

N

备注信息

11

pay_state

varchar

16

0

N

N

未支付

支付状态

12

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_age

varchar

64

0

Y

N

用户年龄

4

user_gender

varchar

64

0

Y

N

用户性别

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表tour_guide_information (导游信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

tour_guide_information_id

int

10

0

N

Y

导游信息ID

2

tour_guide_users

int

10

0

Y

N

0

导游用户

3

tour_guide_name

varchar

64

0

Y

N

导游姓名

4

age_of_tour_guide

varchar

64

0

Y

N

导游年龄

5

tour_guide_gender

varchar

64

0

Y

N

导游性别

6

cover_avatar

varchar

255

0

Y

N

封面头像

7

billing_unit

varchar

64

0

Y

N

计费单位

8

tour_guide_prices

int

10

0

Y

N

0

导游价格

9

tour_guide_introduction

text

65535

0

Y

N

导游简介

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表tour_guide_users (导游用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

tour_guide_users_id

int

10

0

N

Y

导游用户ID

2

tour_guide_name

varchar

64

0

Y

N

导游姓名

3

age_of_tour_guide

varchar

64

0

Y

N

导游年龄

4

tour_guide_gender

varchar

64

0

Y

N

导游性别

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

  1. 系统实现
    1. 普通用户模块的实现

4.1.1 前台首页界面

进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是公告消息和旅游资讯,其主界面展示如下图所示。

图4-1 前台首页界面图

4.1.2 用户注册界面

用户注册:当会员用户想要进入系统中对信息进行查看的时候,就必须要登录到系统当中,要是新的用户没有系统的账号的话,点击“注册”按钮,就会进入到新用户注册这个界面上,用户输入对应的账号(必须填写)+密码(必须填写)+确认密码(必须填写,而且要与密码一直)+昵称+邮箱+性别+年龄+联系电话+选择用户身份等等,然后点击“注册”,系统在用户这一数据库中会查询账号是不是存在,两次密码是不是一样,都填写正确就会注册成功,然后再进行登录,如果是之前已经注册过的用户很长时间没有使用,忘记密码,也可以点击“忘记密码”进行找回。用户注册界面如下图所示。

图4-2 用户注册界面图

注册代码如下:

public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

}

4.1.3 用户登录界面

系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。

图4-3注册用户登录界面图

登录代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

4.1.4 旅游资讯界面

当用户点击“旅游资讯”这一菜单按钮,会显示管理员在后台发布的所有的旅游信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏等操作,旅游资讯界面如下图所示。

图4-4旅游资讯界面图

4.1.5 景点信息界面

当用户点击“景点信息”这一菜单按钮,会显示管理员在后台发布的所有的景点信息列表,支持通过关键词对景点信息进行搜索,选择需要的景点信息点击可以进入到景点信息详细的介绍界面,同时可以进行购买、点赞、收藏和评论等操作,景点信息界面如下图所示。

图4-5景点信息界面图

    1. 管理员功能模块的实现 

4.2.1 管理员登录界面

管理员进入到系统登录界面,需要填写正确的登录名、密码、选择权限等信息输入准确无误后登录进入到系统操作界面。管理员的账号是在数据表表中直接设置生成的,不需要进行注册;修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。管理员登录界面如下图所示。

图4-6管理员登录界面图

4.2.2 管理员功能界面

管理员可以查看后台首页、系统用户、景点信息管理、景点分类管理、订单信息管理、导游信息管理、预约信息管理、系统管理、公告信息管理、资源管理等,并且可以根据需要进行相应的操作,管理员功能界面如下图所示。

图4-7管理员功能界面图

4.2.3 系统用户管理界面

管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户、导游用户这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。

4-8系统用户管理界面图

4.2.4景点信息管理界面

点击“景点信息管理”这个菜单,管理员可以管理旅游景点的信息,包括添加新景点、编辑现有景点、删除景点等操作,确保景点信息的准确性和完整性。景点信息管理界面如下图所示。

图4-9景点信息列表界面图

图4-10景点信息添加界面图

4.2.5景点分类管理界面

点击“景点分类管理”这个菜单,管理员可以管理景点的分类信息,包括添加新分类、编辑现有分类、删除分类等操作,方便用户浏览和搜索。景点分类管理界面如下图所示。

图4-11景点分类列表管理界面图

图4-12景点分类添加管理界面图

4.2.6 轮播图管理界面

管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。轮播图管理界面如下图所示。

图4-13轮播图管理界面图

轮播图添加代码:

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

4.2.7 通知公告管理界面

管理员可以对系统前台展示的通知公告进行增删改查,方便用户进行查看。通知公告管理界面如下图所示。

图4-14通知公告管理界面图

    1. 导游用户模块的实现

4.3.1 预约信息管理界面

导游用户点击“预约信息管理”这个菜单,导游用户可以查看和管理与自己相关的预约信息,包括预约的景点、时间、游客信息等,以便为游客提供相关服务和安排。预约信息管理界面如下图所示。

图4-15预约信息管理界面

  1. 系统测试
    1. 测试目的

在这个产品被投入使用前,首先需要进行试用,这是重要的环节。考虑到某个部分的开发没有缺陷情况下,把各种模块拼接,也有一定概率就存在矛盾。这就好比每个人都很独特,但聚在一起就显得杂乱无章,需要保证有默契的配合。对于测试,要看它的各项内容是否契合的原则。若与最初定下的标准有一定程度上的出入,那么就需要做出一些调整,让最终的大方向朝着目标前进。

    1. 测试用例
      1. 登录测试 

登录测试用例如下表所示。

表5-1登录测试用例

输入

输出

用户名

密码

用户名或密码不能为空

蔡徐坤

123

用户名不能为汉字,请重新输入

789

789

用户名或密码错误

678

123456

登录成功

      1. 注册测试 

注册测试用例如下表所示。

表5-2注册测试用例

输入

输出

用户名

密码

确认密码

邮箱

请输入完整

001

001

001

001@qq.com

注册成功

002

002

003

002@qq.com

注册失败,两次密码不一致

003

003

003

003.com

注册失败,邮箱格式不正确

      1. 订单信息测试

订单信息测试用例如下表所示。

表5-3订单信息测试用例

功能

测试数据

预期结果

测试结果

订单信息

订单信息内容:用户订单信息

在订单信息列表中显示订单信息内容,咨询显示为未回复

和预期一致

回复订单信息

订单信息内容:用户订单信息

订单信息列表中的订单信息“订单信息”显示已回复

和预期一致

删除订单信息

删除“用户订单信息

订单信息成功删除

和预期一致

      1. 资源管理测试 

旅游资讯测试用例如下表所示。

表5-4添加旅游资讯测试用例

输入

输出

标题

类别

内容

备注

添加失败

旅游资讯1

A

1

添加成功

A

1

添加失败,标题不能为空

旅游资讯2

1

添加失败,请选择类别

    1. 测试结果

经过测试,得到测试结果如下表所示。

表5-5测试结果

测试项目

内容和目的

测试结果

用户登录

输入正确用户名与密码

可以登录

输入错误用户名与密码

提示错误的信息

修改登录密码

修改新的密码

成功完成

资源管理(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

订单信息管理(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

旅游资讯管理(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

  1. 总结与展望

安丘旅游景点管理系统的整体功能模块的实现,主要是对自己在大学这几年时间所学内容的一个测试,对于系统,主要是通过现在智能化的安丘旅游景点管理系统进行开始系统的实现,并且可以根据需求进行数据信息的增加修改删除等操作,完美的解决了当下安丘旅游景点管理系统所遇到的问题。

经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的安丘旅游景点管理系统的信息系统,主要使用springboot+vue框架和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。

安丘旅游景点管理系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。

安丘旅游景点管理系统的实现,是自己第一次完成的设计一个管理系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的平台管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。

参考文献

[1]李帅,徐青,朱新铭,等.基于ArcGIS Engine的梅岭国家森林公园旅游系统的设计与实现[J].测绘与空间地理信息,2024,47(03):137-139+142+146.

[2]Prida H P ,Suyatno S ,Hafizh G , et al.Slagging Fouling Prediction of Wood Waste Blending as Co-Firing Fuel for Northern Java Power Plant[J].Key Engineering Materials,2024,7098165-172.

[3]Rendrarpoetri L B ,Rustiadi E ,Fauzi A , et al.Sustainability Assessment of the Upstream Bengawan Solo Watershed in Wonogiri Regency, Central Java Province, Indonesia[J].Sustainability,2024,16(5):

[4]Hudalah D ,Octifanny Y ,Talitha T , et al.From Metropolitanization to Megaregionalization: Intentionality in the Urban Restructuring of Java’s North Coast, Indonesia[J].Journal of Planning Education and Research,2024,44(1):292-306.

[5]徐少军,李宗哲,梅杰,等.基于Springboot+Vue框架的质量检验监督管理系统研发[J].纺织标准与质量,2024,(01):11-14+21.

[6]孙铁强,刘俊,于洪健,等.基于SpringBoot框架的在线监测和专家系统的研究[J].自动化应用,2024,65(04):15-16+19.DOI:10.19769/j.zdhy.2024.04.006.

[7]Putra K ,Baskoro W ,Ratini N , et al.Assessment of Groundwater Availability for Rice Farming in Tuban Regency, East Java in 2018-2022[J].International Journal of Environment and Climate Change,2024,14(2):828-836.

[8]Handini E ,Hasenaka T ,Barber D N , et al.Systematics of slab-derived components in Central Java, Sunda Arc: Evidence for differential material transfer across the Southeast Asian convergent margin[J].Tectonophysics,2024,873230229-.

[9]郭亮,杨裔,秦炳峰,等.基于大数据技术的甘肃智慧旅游系统[J].大数据,2024,10(01):157-169.

[10]白茹鑫.基于SpringBoot+SSM框架的企业安全培训管理系统设计与实现[J].现代信息科技,2024,8(01):44-49.DOI:10.19850/j.cnki.2096-4706.2024.01.009.

[11]石雨昕,关家兴,邹博华,等.基于SpringBoot微服务架构设计与实现实验室开放课题管理系统[J].实验室检测,2024,2(01):101-106.

[12]崔臣,宋甲旭.基于SpringBoot的校园二手交易系统研究[J].无线互联科技,2023,20(18):31-34.

[13]林圣峰,姚锦江,林涛,等.基于SpringBoot的高校实验室管理系统设计[J].无线互联科技,2023,20(18):80-82.

[14]张大秀,朱屹诚.基于Java的碧海苍梧旅游系统设计与实现[J].现代信息科技,2023,7(11):1-6.DOI:10.19850/j.cnki.2096-4706.2023.11.001.

[15]黄曾力.乡村虚拟旅游系统设计与实现[D].西南民族大学,2023.DOI:10.27417/d.cnki.gxnmc.2023.000106.

[16]陶旭文,肖诚,谷余,等.南岳虚拟旅游系统设计[J].旅游与摄影,2023,(07):74-76.

[17]易志帅,苏拓,曾海燕,等.基于Restful的智慧化旅游系统设计[J].中国新技术新产品,2023,(02):33-35.DOI:10.13612/j.cnki.cntp.2023.02.027.

[18]刘娜娜.基于系统动力学的平山县红色旅游可持续发展研究[D].桂林理工大学,2022.DOI:10.27050/d.cnki.gglgc.2022.000215.

[19]陈舟劢.贵州旅游景点智能推荐系统的设计与实现[D].贵州大学,2021.DOI:10.27047/d.cnki.ggudu.2021.000599.

[20]钱建国,李智程,吴财,等.基于百度地图API的移动端旅游信息管理系统[J].测绘与空间地理信息,2019,42(05):25-28.

致谢

经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!

点赞+收藏+关注 → 私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值