基于spring boot的个性化旅游推荐系统设计与实现
摘 要
旅游推荐网站还可以为旅游行业提供更好的客户服务。通过线上对路线以及景点进行浏览,游客可以更方便地完成旅游计划,根据个人的习惯的个性化的推荐,更可以满足不同的旅游用户的需求。这些服务提供了更好的客户体验,大大增强了客户对旅游行业的信任和满意度。最后,旅游网站也为旅游行业提供了更好的数据分析和市场研究工具。通过跟踪网站上的流量和用户行为,旅游公司可以更好地了解客户需求和偏好,从而提供更好的旅游服务和体验。。
在此次的个性化旅游推荐网站中,主要采用SPringboot架构进行设计,基于MySQL对养老数据进行存储,采用B/S模式开发,后台采用Java编码,通过Mybatis进行底层角度,前端采用Html进行设计,在需求上主要分为用户,管理员,主要包含的核心模块为景点管理,特产宣传管理,旅游路线管理,旅游心得发布,在线预约订票,美食管理,公告查询,旅游攻略发布、热门景点推广、个人旅游信息推荐、旅游数据可视化分析。
关键词: 个性化旅游;景点管理;在线订票;心得发布;Springboot
Abstract
Tourism recommendation websites can also provide better customer service for the tourism industry. By browsing routes and attractions online, tourists can more conveniently complete their travel plans, provide personalized recommendations based on personal habits, and better meet the needs of different tourism users. These services provide a better customer experience, greatly enhancing customer trust and satisfaction in the tourism industry. Finally, tourism websites also provide better data analysis and market research tools for the tourism industry. By tracking traffic and user behavior on the website, travel companies can better understand customer needs and preferences, thereby providing better travel services and experiences.
In this personalized travel recommendation website, the SPringboot architecture is mainly used for design. MySQL is used to store elderly care data, and the B/S model is used for development. Java coding is used in the backend, and Mybatis is used for the underlying perspective. The front-end is designed using HTML, and the requirements are mainly divided into users and administrators. The core modules include attraction management, specialty promotion management, travel route management, travel experience release, online booking and booking, food management, announcement query, travel strategy release, popular attraction promotion, personal travel information recommendation, and tourism data visualization analysis.
.
Key words: Personalized tourism; Attraction management; Online ticket booking; Experience release; Springboot
目录
第一章 概述
1.1课题背景
在社会经济增长的同时,国内的旅游业也逐渐开始走向繁荣,人们收入水平的不断增长为旅游业的繁荣奠定了基础。况且随着全球化经济的不断促进,国内外旅行人员的数量也在不断增长。旅游行业也在互联网技术发展的同时不断地寻求发展和创新,因为人们外出旅行会有许多必要的购票流程,线上系统的出现可以将各种流程系统化,为人们提供更加便利的服务。传统的旅游行业是需要单独进行行程购票,在当地进行酒店以及景点门票的购买,或者在旅行社进行报名等。这样的流程会增加人们旅行工作的复杂度。随着信息化技术的发展,旅行路线、酒店信息以及景点线路等信息都可以进行线上查询以及订购,所以利用线上系统可以实现信息的整合利用,创建适合旅行人员的线上旅游网站。。
1.2网站研究现状
在当今数字化时代,在国内旅游网站已经成为了旅游行业中一个不可或缺的部分。随着人们对旅游的需求和期望越来越高,旅游宣传网站可以为旅游行业带来许多好处。首先,通过旅游宣传网站,旅游行业能够更好地推广自己的目的地和景点。这些网站可以提供详细的地图、照片和视频,使潜在游客可以更好地了解他们可能会访问的地方。国内政府也在积极发挥在线旅游的枢纽和引领作用,加快推进智慧旅游发展,推动旅游业创新发展,促进新技术应用和迭代创新,创造更多新就业形态和新就业岗位,促进旅游产业升级。
在国外,随着移动支付和互联网技术的普及,越来越多的旅游电商平台出现。如亚马逊、eBay、苹果醋等电商平台,都提供了在线预订旅游产品和服务的功能。其中,亚马逊和eBay在旅游业务方面具有较强的优势,它们在全球范围内拥有广泛的在线旅游消费者群体,同时还提供了更多的旅游增值服务。。
1.3课题研究内容
在本次系统的设计中主要分为六个部分进行实现,通过对系统的一些前段调研以及一些中期的系统模块分析和模块梳理到最后的系统研发和测试完成系统。
第一部分主要是对本系统的一些已有的类似的研究进行调研,对一些学者以及一些市场上已存在的系统和文献进行分析,获取当前的要研究的系统的优势点以及采用的技术的特性。
第二部分主要是对要开发的系统进行技术阐述,本次系统主要的架构为Springboot,通过Springboot对系统的整体进行搭建,然后通过MySQL进行表数据存储,通过Mybatis进行底层的数据交互。
第三部分主要是对本系统的可行性进行分析,对系统从用户的角度进行用例需求分析,看是否可进行研究操作。
第四部分主要是对系统的模块进行细化,保证系统的整体的完整性,且对数据库表进行研究,对每个字段以及类型进行定义。
第五部分为系统的核心模块的开发介绍,主要是通过对前端的数据的输入流转以及到控制层的数据的接受和服务层的数据的处理进行描述。
第六部分为系统的测试部分,主要是对一些核心模块进行测试定义,对系统的流程进行把控,以及对bug进行修复。
第二章 开发技术架构
2.1Springboot架构
在本次系统中采用的架构为Spingboot,相对于SSM来说更适合本项目的开发,采用此系统可减少XML的配置,对于底层的一些JDBC配置等都进行了封装,让个性化旅游网代码更简洁。Springboot是继Spring之后的新集成架构,主要用于构建新的Spring的快速开发模版。通过采用Springboot架构可以简化更多的文件配置,在Springboot中核心的原理主要包含自动配置、Beans管理、依赖管理以及一些数据链接和应用上下文。Springboot的自动化配置主要是依据类的路径以及配置文件的自动配置Spring的组件。自动配置的目的主要是为了简化Spring的底层的实现,只需对业务逻辑进行管理。Springboot的自动配置原理也是基于Spring的路径扫描和文件解析,通过一些注解的形式自动化的获取容器中的类进行使用操作。在Springboot中对XML进行了简化,通过yml文件以及properties文件对一些动态参数进行配置,在项目启动时自动化的注入。逐步实现快速开发效果。
Springboot作为此个性化旅游系统的总体架构,其中内置了很多的Shiro插件以及一些Intercepter拦截器,这对于旅游系统的安全性以及稳定性都做到了极大的提升。
2.2Mysql架构
此个性化旅游系统的数据主要存储在MSQL中,主要对一些用户信息、旅游景点信息、特产信息、个人习惯数据等进行表格存储,通过主外键对一些关联数据进行存储处理,提升数据的检索、存储能力。
MySQL作为关系型数据库优势非常的明显,首先在中小型项目中基本为不二选择,MySQL作为开源的数据库,任何开发者都可以进行二次更新优化,任何开发人员也都可修正MySQL的存在缺陷。
其次就是MySQL的跨平台,MySQL可在很多平台进行部署,通过此优势点可满足个个性化旅游网的所有部署方式,不在拘泥于某个平台开发,。MySQL的跨平台也可促成web项目的分布式部署等,相比较SQL Server只能在windows平台部署而言,此数据库优势非常的明显。而且MySQL的性能也非常的高,MySQL的并发性和集成型也较强。作为开源的数据库从经济可行性而言也是不二选择。
MySQL通过主外键将个性化旅游网站的一些业务都进行了关联,且通过Mybaits进行Orm层的集成,底层数据处理更方便。
2.3jsp界面技术
本此设计前端采用JSP,在JSP中可将旅游得一些界面进行交换展示,通过JSP中的JavaScript对交互进行数据的验证和处理,JSP技术在本系统中主要是Views层,提升用户的交互体验能力。
JSP全称为Java-Server-Pages,主要是是Javaweb的前端的动态网页技术,在JSP中可将Java代码嵌入到代码中,JSP也可理解为Java、JavaScript、Html的组合集合,但Html为静态界面,只需浏览器即可访问,而JSP为动态语言,可以理解为Servlet,因为JSP为后端代码,JSP通过Tomcat服务器编译后为Class文件。
在JSP技术中提供了丰富的框架以及标准库,类似与JSTL,EL等,这样即可满足于个性化旅游网站的交互感和美观度,可快速有效的对后台交互的数据进行动态化处理。而且JSP从性能以及扩展性方面都非常的强,作为Javaweb的前端的开发非常合适。
第三章 需求分析
3.1可行性分析
技术可行性:此次设计的系统分为前端和后台,前端主要采用JSP动态交互,结合Ajax进行数据的异步不刷新处理展示,采用CSS进行样式美化,后台则主要为Java语言,采用的架构为SSM,通过XML将架构进行搭建,结合maven对jar包进行整体管理,通过JDBC进行底层的链接操作,数据存储为MySQL。
经济可行性:从经济的投入比和市场回报率来说此系统的前景具有一定的优势,此次的系统设计经济投入主要包含前期开发的人人力资源时间消耗、服务器的使用租赁费用、开发的一些工具IDEA等购买费用,但基本在范围内可控,而后期的维护成本也不高,基本为运维的费用。此系统设计完成后所带来的一些效益可观,因此经济角度可行。
3.2用例图分析
系统主要分为管理员和用户两种角色
用户:在用户端可以对景点进行检索,可根据用户的一些习惯进行景点的个性化推荐,用户可进行注册登录,登录后可对个人信息进行编辑和维护。用户可对自己的旅游心得进行发布记录,可以对一些旅游路线进行推荐分享,可以对景点儿门票进行在线预约。。

管理员:管理员端可对景点信息进行发布,可对景点儿相关的一些美食特产信息进行发布,可以对注册用户信息进行管理,可以对用户发发布的旅游心得进行管理。以及对旅游路线分享进行管理,可以查询所有的门票、景点预约记录。

第四章 详细模块设计
4.1功能模块设计
在系统角色上主要分为用户,管理员,主要包含的核心模块为景点管理,特产宣传管理,旅游路线管理,旅游心得发布,在线预约订票,美食管理,公告查询,旅游攻略发布、热门景点推广、个人旅游信息推荐、旅游数据可视化分析。。

图4-1系统模块图
4.2数据库设计
在对数据库的实体图进行分析后,对项目的每个模块都进行梳理分析,对模块中的存储字段以及一些模块的关联字段进行设计,保证字段中不存在冗余,且字段的长度和类型都符合存储要求。整体的数据库表遵从第三范式,在数据库中要保证每个表存储的数据的完整性以及通过主外键的物理关联来保证数据库的数据一致性。针对于MySQL的单表存储要通过id自增的形式进行定义,保证表的唯一值,且在必要时可通过锁机制进行多表关联处理,如图所示。

图4.2 整体设计ER图
表4-1旅游景点新增发布表值如下:
表4-1旅游景点新增发布表
| 定义字段 | 备注描述 | 长度和类型 | 主键标识 |
| lyjdkey | 景点主键 | int(11) | 主键 |
| lyjdmc | 景点名称 | varchar(20) | |
| lyjdadr | 景点地址 | varchar(60) | |
| lyjdmpje | 门票金额 | Double | |
| lyjdxct | 景点宣传图 | varchar(100) | |
| lyjdtese | 景点特色 | varchar(255) | |
| lyjdjies | 景点介绍 | varchar(255) |
表4-2旅游特产美食发布表值如下:
表4-2旅游特产美食发布表
| 定义字段 | 备注描述 | 长度和类型 | 主键标识 |
| tcmskey | 美食主键 | int(11) | 主键 |
| tcmsmc | 特产美食的名称 | varchar(20) | |
| tcmsweid | 特产美食味道 | varchar(50) | |
| tcmssuosd | 美食所属地 | varchar(20) | |
| lyjdkey | 景点id | int(11) | 外键 |
| tcmsxct | 美食宣传图 | varchar(100) | |
| tcmsmiaos | 美食描述 | varchar(255) |
表4-3景点门票预定记录表值如下:
表4-3景点门票预定记录表
| 定义字段 | 备注描述 | 长度和类型 | 主键标识 |
| mpydkey | 门票预定主键 | int(11) | 主键 |
| Mpydmcid | 景点id | int(11) | 外键 |
| mpyddpr | 订票人 | varchar(60) | |
| mpydsfz | 身份证 | varchar(20) | |
| mpyddprq | 订票日期 | Date | |
| Userid | 用户编号 | int(11) | 外键 |
| mpydjiag | 门票价格 | Double |
表4-4旅游心得发布表值如下:
表4-4旅游心得发布表
| 定义字段 | 备注描述 | 长度和类型 | 主键标识 |
| lyxdkey | 心得主键 | int(11) | 主键 |
| lyxdtitle | 心得标题 | varchar(50) | |
| lyxdpic | 心得图片 | varchar(100) | |
| lyxdnr | 心得内容 | varchar(255) | |
| Userid | 用户编号 | int(11) | 外键 |
表4-5旅游路线推荐分享表值如下:
表4-5旅游路线推荐分享表
| 定义字段 | 备注描述 | 长度和类型 | 主键标识 |
| lylxfjkey | 路线推荐主键 | int(11) | 主键 |
| lylxfjmc | 路线推荐名称 | varchar(20) | |
| lylxfjliy | 路线推荐理由 | varchar(60) | |
| Userid | 用户编号 | int(11) | 外键 |
| lylxfjpic | 旅游上传的图片 | varchar(255) | |
| lylxfjneir | 路线风景内容 | varchar(255) |
表4-6旅游注册用户表值如下:
表4-6用户信息表
| 定义字段 | 备注描述 | 长度和类型 | 主键标识 |
| userid | 用户主键 | int(11) | 主键 |
| username | 账号 | varchar(20) | |
| password | 密码 | varchar(60) | |
| tel | 用联系电话 | int(11) | 外键 |
| address | 联系地址 | varchar(255) | |
| xingzuo | 星座 | varchar(255) | |
| aihao | 爱好 | varchar(255) | |
| qianming | 签名 | varchar(255) | |
| sex | 性别 | int(2) | |
| riqi | 初出生日期 | Date | |
| card | 身份证号 | varchar(20) |
表4-7用户检索习惯如下:
表4-7用户检索习惯表
| 定义字段 | 备注描述 | 长度和类型 | 主键标识 |
| XiguanId | 主键 | int(11) | 主键 |
| Userid | 用户编号 | int(11) | 外键 |
| Typeid | 景点类型编号 | int(4) | |
| Num | 点击率 | int(11) |
第五章 系统实现
5.1首页旅游景点展示
该界面为首页旅游景点展示,可以看到系统首页的图片,有当季新推出的旅游胜地,左上角为系统的索引栏,分别有旅游景点、特产美食、旅游心得、旅游路线和用户登录的入口。在点击href时通过跳转indexcontroller层进行数据获取,在service层通过findbylist对景点信息进行获取操作,然后通过model将景点信息展示到界面。


核心代码如下:
@RequestMapping(value = "/index", method = {RequestMethod.GET}) public String index(Model model,HttpServletRequest request) throws Exception { HttpSession session=request.getSession(); Integer renyuanid=(Integer) session.getAttribute("userId"); if(renyuanid==null){ } else{ List<Jingdian> list=jingdianService.tuijian(renyuanid); if(list==null){ model.addAttribute("list",list); }else{ model.addAttribute("list",jingdianService.findList()); } } return "index"; }
5.2美食信息展示
该界面为美食信息展示界面,可以看到界面中展示了美食的图片、美食名称以及美食的介绍信息,用户还可点击下方的箭头进行翻页浏览,寻找到自己心仪的美食。通过点击景点下的美食信息,然后获取对应的jingdianid,通过controller层将数据进行传输,在meishicontroller层,通过findbyjingdianid函数进行查询,对应的将本景点下的美食信息进行获取展示。

美食信息展示:
@RequestMapping(value = "/meishilist", method = {RequestMethod.GET}) public String meishilist(Model model,int jingdianid) throws Exception { model.addAttribute("list",meishiService.findListjingdian(jingdianid)); return "meishiindex"; }
5.3旅游心得发布展示
该界面为旅游心得发布展示界面,左上角为该系统的索引栏,主页为该界面详细信息,展示了心得发布的题目及其心得的具体内容,可以看到发布心得的日期信息,方便用户了解该心得的及时性如何。在xindecontroller层,通过querylist获取到对应的心得展示list数据,然后通过model返回到界面,界面通过foreach进行循环。

核心代码如下:
@RequestMapping(value = "/xindeindex", method = {RequestMethod.GET}) public String xindeindex(Model model) throws Exception { model.addAttribute("list", xindeService.getXindeList()); return "xindeindex"; }
5.4旅游路线推荐分享
该界面为旅游路线推荐分享界面,可以看到左上角有该系统的索引栏,主页为推荐的路线,展示了路线图片,路线风景介绍还有路线推荐理由等信息,可以让用户直观的了解该路线和游玩攻略。在luxiancontroller层,通过querylist获取到对应的路线信息展示list数据,然后通过model返回到界面,界面通过foreach进行循环。

核心代码如下
@RequestMapping(value = "/xindedetail", method = {RequestMethod.GET}) public String xindedetail(Model model,int id) throws Exception { model.addAttribute("xinde",xindeService.findById(id)); model.addAttribute("list",xindeService.getXindeList()); return "xindedetail"; }
5.5旅游景点新增发布
该界面为旅游景点新增发布界面,左侧为系统索引栏,右侧为该界面详情,待填写景点名称、景点地址、门票金额、景点宣传图、景点特色及其景点介绍的信息。在input界面中对数据进行输入操作,通过点击submit按钮触发对应的提交操作,通过ajax将formdata中的参数转为json然后传输到后台的controller层,通过对file文件进行处理,然后通过inser方法保存到数据库。

核心代码如下
@RequestMapping(value = "/add" ) private String add(Jingdian jingdian, HttpServletRequest request) throws Exception { jingdian.getFile().transferTo(new File(path + File.separator + filename)); jingdian.setPhoto("/images/"+filename); } jingdianService.add(jingdian); return "redirect:/jingdian/showjingdian"; }
5.6旅游特产美食发布
该界面为旅游特产美食发布界面,左侧为系统导航栏,右侧展示了新增美食待填写的信息,有特产美食的名称、特产美食味道、美食所属地、美食宣传图以及特产美食描述,填写完成后可点提交进行上传。通过点击submit按钮触发对应的提交操作,通过ajax将formdata中的参数转为json然后传输到后台的controller层,通过对file文件进行处理,然后通过inser方法保存到数据库。

核心代码如下
@RequestMapping(value = "/addpage" ) private String add1(Model model) throws Exception { model.addAttribute("list",jingdianService.findList()); return "admin/addmeishi"; } @RequestMapping(value = "/edit" ) private String edit(int id,Model model) throws Exception { model.addAttribute("list",jingdianService.findList()); Meishi meishi=meishiService.findById(id); model.addAttribute("meishi",meishi); return "admin/editmeishi"; }
5.7景点门票预定记录
该界面为景点门票预定记录界面,左侧为系统的导航栏,右侧为该界面具体信息,展示了景点名称、订票人、身份证、订票日期及其门票价格的信息,管理员可对这些信息进行删除的操作。点击订票获取jingdianid,然后在session中获取人员的id信息,通过对界面订票的input进行输入操作,然后通过调用service中的add保存数据。在controller层可通过querylist对数据进行获取展示。

核心代码如下
@RequestMapping(value = "/add" ) private String add(HttpServletRequest request,Yuding yuding) throws Exception { HttpSession session = request.getSession(); Integer userId = (Integer) session.getAttribute("userId"); Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(currentTime); yuding.setUserid(userId); yuding.setRiqi(dateString); yuding.setStatus(0); yudingService.add(yuding); return "redirect:/yuding/showyudinguser"; }
5.8旅游心得发布
该界面为旅游心得发布界面,左侧为系统导航栏,右侧说明了发布心得需填写的信息有心得标题、心得图片内容以及旅游心得内容。填写完成后点击提交即可上传至系统的数据库中。通过点击submit按钮触发对应的提交操作,通过ajax将formdata中的参数转为json然后传输到后台的controller层,通过对file文件进行处理,然后通过inser方法保存到数据库。

核心代码如下
public List<Xinde> findByPaginguser(Integer toPageNo,int userid) throws Exception{ PagingVO pagingVO = new PagingVO(); pagingVO.setToPageNo(toPageNo); pagingVO.setUserid(userid); List<Xinde> list = xindeMapper.findByPaginguser(pagingVO); return list; }
5.9旅游路线推荐分享
该界面为旅游路线推荐分享界面,左侧为系统的导航栏,右侧为须填写的信息:旅游路线推荐名称、旅游路线推荐理由,上传的图片以及旅游路线风景内容。填写完成后点击提交即上传成功。通过点击submit按钮触发对应的提交操作,通过ajax将formdata中的参数转为json然后传输到后台的controller层,通过对file文件进行处理,然后通过inser方法保存到数据库。

核心代码如下
@RequestMapping(value = "/luxiandetail", method = {RequestMethod.GET}) public String luxiandetail(Model model,int id) throws Exception { model.addAttribute("luxian",luxianService.findById(id)); return "luxiandetail"; }
5.9个性化旅游推荐
在系统中可根据用户的一些检索查看景点的情况进行个性化旅游推荐,在未登录时可将在首页推荐中进行rand随机进行景点推荐,在登录状态时,通过用户日常的一些检索习惯,对点击不同类型景点时进行类型分组记录,且对点击次数进行叠加,通过在进入index首页时,对点击的最高的次数的进行获取,然后对应的根据景点类型进行rand本类型的景点的排序推荐。

Integer renyuanid = (Integer) session.getAttribute("userId"); int count = xiguanService.getCount(renyuanid, id); if (count == 0) { Xiguan xiguan = new Xiguan(); xiguan.setJingdianid(id); xiguan.setRenyuanid(renyuanid); xiguan.setNum(0); xiguanService.add(xiguan); } else { Xiguan xiguan = xiguanService.find(renyuanid, id); xiguan.setNum(xiguan.getNum() + 1); xiguanService.update(xiguan); } model.addAttribute("jingdian", jingdianService.findById(id));
第六章 系统测试
6.1测试介绍
在这个阶段中,我们需要做的就是,对之前的设计步骤进行功能的检测与测试,通常在设计出一个完整系统后,测试阶段也就是为了检测系统的运行是否成功,步骤流程是否流畅、是否为我们预期所想。所以在这个阶段,我们要做的就是在已制作完成的系统中进行数据的输入,输入完毕后进行界面的点击,检测系统是否可以正常的让我们进行数据的输入和界面是否可以如我们预期那样正确的跳转和显示弹窗,还要检测系统是否可以对我们输入的数据进行正常的、正确的储存,最后就是系统是否可以对数据结果进行正常正确的输出。
6.2测试用例
表7-1旅游景点新增管理模块测试
| 测试模块 | 输入值 | 期望输出 | 真实输出 |
| 旅游景点新增管理模块 | 用户张三打开用户登录界面,点击进入旅游景点新增页面,页面中显示有六个输入框,输入的景点名称为兵马俑,景点地址西安,门票金额122,景点宣传图通过电脑上传,景点特色为有历史年代,及其景点介绍为第一批中国的世界遗产,填写完成后,点击“确定”。 | 提交完毕后,用户张三登陆系统,可以在旅游景点管理页面查看到自己上传的信息,管理员可对该信息进行管理。 | 提交完毕后,用户张三登陆系统,可以在旅游景点管理页面查看到自己上传的信息,管理员可对该信息进行管理,管理员可对该信息进行修改或删除。 |
| 用户张三打开用户登录界面,点击进入旅游景点新增页面,页面中显示有六个输入框,输入的景点名称为大唐不夜城,景点地址西安市举世闻名的大雁塔脚下,门票金额200,景点宣传图通过电脑上传,景点特色为北起玄奘广场、南至唐城墙遗址公园、东起慈恩东路、西至慈恩西路,及其景点介绍为可观光游览,也可以消费购物,在品味盛唐文化的同时充分体验现代商业文明和休闲游憩的快感,填写完成后,点击“确定”。 | 提交完毕后,用户张三登陆系统,可以在旅游景点管理页面查看到自己上传的信息,管理员可对该信息进行管理。 | 提交完毕后,用户张三登陆系统,可以在旅游景点管理页面查看到自己上传的信息,管理员可对该信息进行管理,管理员可对该信息进行修改或删除。 |
表7-2景点门票预定模块测试
| 测试模块 | 输入值 | 期望输出 | 真实输出 |
| 景点门票预定模块 | 用户张与打开用户登录界面,进入景点门票预定页面,可以看到页面中显示的景点名称为兵马俑,订票人为张瑶,身份证为120103200012239847,订票日期为2024-02-23,及其门票价格为122,在此条信息后的操作中点击删除按钮。 | 该信息被系统删除,系统弹出该景点门票预定删除成功的提醒。 | 该信息被系统删除,系统弹出该景点门票预定删除成功的提醒,该预定门票信息从系统数据库中删除。 |
| 用户张与打开用户登录界面,进入景点门票预定页面,可以看到页面中显示的景点名称为兵秦始皇陵,订票人为王雅,身份证为120103200001113782,订票日期为2024-03-12,及其门票价格为100,在此条信息后的操作中点击删除按钮。 | 该信息被系统删除,系统弹出该景点门票预定删除成功的提醒。 | 该信息被系统删除,系统弹出该景点门票预定删除成功的提醒,该预定门票信息从系统数据库中删除。 |
表7-3旅游心得发布模块测试
| 测试模块 | 输入值 | 期望输出 | 真实输出 |
| 用户王涛打开用户登录,进入旅游心得发布页面,有三个输入框,输入的心得标题位大唐不夜城游玩心得,心得图片上传以及旅游心得内容为如果你是第一次去西安旅游,真的还是推荐请个导游,最好是旅行社的推荐导游。不要找那种带你购物和各种赶时间肯定玩不好,填写完成后点击“确认”按钮。 | 信息上传之后,弹出上传成功的提醒。用户王涛登陆系统,可以在旅游心得界面看到自己上传的信息。 | 信息上传之后,系统弹出上传成功的提醒,用户王涛登陆系统,可以在旅游心得界面看到自己上传的信息。 | |
| 用户李志打开用户登录,进入旅游心得发布页面,有三个输入框,输入的心得标题位兵马俑游玩心得,心得图片上传以及旅游心得内容为西安是个被大自然宠坏了的地方,心得就是一句话:梦境般的西安。填写完成后,点击“确认”按钮。 | 信息上传之后,弹出上传成功的提醒。用户李志登陆系统,可以在旅游心得界面看到自己上传的信息。 | 信息上传之后,系统弹出上传成功的提醒,用户李志登陆系统,可以在旅游心得界面看到自己上传的信息。 |
总结
在本次系统实践中,主要是基于旅游系统进行相关的文献搜集和分析,对一些旅游网站进行技术分析和调研,确定自己所设计的系统的核心点。然后对系统进行技术学习和相关的技术优势点介绍,对系统进行需求分析,确立系统的用户以及系统用户所对应的业务流程。然后对系统进行数据库设计和系统模块细化。最后进行编码完善系统。
在此次的个性化旅游推荐网站中,主要采用Springboot架构进行设计,基于MySQL对养老数据进行存储,采用B/S模式开发,后台采用Java编码,通过Mybatis进行底层角度,前端采用Html进行设计,在需求上主要分为用户,管理员,主要包含的核心模块为景点管理,特产宣传管理,旅游路线管理,旅游心得发布,在线预约订票,美食管理,公告查询,旅游攻略发布、热门景点推广、个人旅游信息推荐、旅游数据可视化分析。
在整个系统设计中在逐步的完善系统功能,目前基本符合设计要求,后期可对系统界面进行优化,且加入一些多维度算法的热点进行旅游热点推荐。
参考文献
[1]张大秀,朱屹诚. 基于Java的碧海苍梧旅游系统设计与实现 [J]. 现代信息科技, 2023, 7 (11): 1-6..[2]熊勇. 基于Java技术的后台服务程序设计分析 [J]. 信息记录材料, 2022, 23 (02): 80-82.[3]冯秀玲,张杨娟. 基于HTML5+Css3+Java Script的山西旅游平台搭建 [J]. 中国管理信息化, 2021, 24 (19): 155-157.[4]罗权,李境达,刘勇奇,等. Java语言的乡村旅游软件设计 [J]. 电子世界, 2021, (17): 170-171..[5]陈舟劢. 贵州旅游景点智能推荐系统的设计与实现[D]. 贵州大学, 2021. 9.[6]马自萍,周洁,马金林,等. 基于Java与HTML5的宁夏数字博物馆系统的设计与实现 [J]. 现代电子技术, 2021, 44 (06): 90-96..[7]赵棣. 基于个性化推荐的农业文化旅游管理平台设计与实现[D]. 山东农业大学, 2020.[8]崔志立. 基于基站定位的景区自动导览软件系统研究与设计[D]. 东华大学, 2020.[9]李娟. 基于VueJS的景区管理系统设计与开发[D]. 浙江工业大学, 2020..[10]黄文灿. 基于Java Web的旅游服务系统设计研究 [J]. 数字技术与应用, 2019, 37 (09): 156-157.[11]孙大东. 基于安卓的特色渔业旅游系统的设计与开发[D]. 大连海洋大学, 2019.[12]依力塔比尔提肯·吐尔逊. 基于安卓系统的新疆“地名旅游”APP《疆行》的设计与开发[D]. 新疆大学, 2019.[13]钟明辉,赖可云,谢昊. 基于JAVA技术的广西旅游服务系统的开发与实现 [J]. 山东工业技术, 2019, (09): 160-162..[14]尹倩,宋玉娥,窦龙祺,等. 基于SSH2框架的葡萄酒文化旅游信息管理系统的设计与实现 [J]. 酿酒科技, 2019, (06): 120-124+128..
更多推荐


所有评论(0)