计算机毕业设计-基于协同过滤算法的旅游景点推荐的设计与实现
此文章为本人亲自指导加编写,禁止任何人抄袭以及各类盈利性传播, 相关的代码+部署+论文+ppt+代码讲解+答辩指导文件都有可私
计算机专业毕业设计任何项目-程序-论文-想单独指导的可以私
计算机毕业设计选题-计算机毕设辅导-基于协同过滤算法的旅游景点推荐的设计与实现-开题-任务书-源码-程序-答辩-一条龙辅导
中 文 摘 要
随着如今社会的快速发展和人们生活水平的较快提高,旅游成为人们在工作学习之余的放松方式之一,游客们对于旅游的需求变得更加多样化和个性化,大家希望能够根据自己的兴趣、偏好、时间和预算,获得到更符合自身需求的旅游景点推荐。但是传统旅游线路规划方式无法满足游客的多样化需求,市场上可以获取到旅游信息的渠道众多,难以让旅客找到真正感兴趣的内容。
在此系统设计中主要分为管理员和游客用户、景区三种角色,系统主要采用Java语言进行编码,基于Spring Boot、Mybatis架构进行设计,系统编码采用IDEA。系统主要分为游客、管理员、景区三种角色,开发后的核心模块包含游客注册登录、景区展示推荐、房间住宿预订、景区活动预约,游客信息管理、景区信息管理、景区路线发布管理、景区数据分析、景区攻略发布,景区活动管理、景区展示管理、游客订单管理。
关键词:旅游景区推荐;协同过滤;SpringBoot;Mybatis
Title : Design and Implementation of Tourist Attraction Recommendation Based on Collaborative Filtering Algorithm
Abstract
With the rapid development of today's society and the rapid improvement of people's living standards, tourism has become one of the ways for people to relax after work and study. Tourists' needs for tourism have become more diversified and personalized. They hope to receive more suitable tourist attraction recommendations based on their interests, preferences, time, and budget. However, traditional tourism route planning methods cannot meet the diverse needs of tourists, and there are numerous channels in the market to obtain tourism information, making it difficult for tourists to find the content they are truly interested in.
In this system design, there are mainly three roles: administrator, tourist user, and scenic area. The system is mainly coded in Java language and designed based on Spring Boot and Mybatis architecture. The system coding adopts IDEA. The system is mainly divided into three roles: tourists, administrators, and scenic spots. The developed core modules include tourist registration and login, scenic spot display and recommendation, room and accommodation reservation, scenic spot activity reservation, tourist information management, scenic spot information management, scenic spot route release management, scenic spot data analysis, scenic spot strategy release, scenic spot activity management, scenic spot display management, and tourist order management.
.
Key Words: Recommended tourist attractions; Collaborative filtering; SpringBoot; Mybatis
目 录
第一章 绪论
1.1 研究背景
旅客希望可以根据自己的想法来规定旅游路线,设计此类网站可以让用户在线查看旅游景点、旅游线路、旅游攻略、酒店推荐等信息,并线上进行门票的预订、路线的制定、酒店的预定等操作,从而节省自己的时间,满足旅客用户从计划到出行的全方位旅游需求,从而提高用户对旅游过程的满意度;同时也能提高管理人员管理系统各色信息的工作效率,方便对这些信息进行添加、修改、删除、查看等操作。而且通过这种线上线下的方式,可以整合网站上所有的旅游资源,系统会运用先进的数据分析技术,促进系统中所含旅游资源的有效整合与利用,为旅游额发展提供助力。
旅游景点推荐网站的兴起与当代旅游消费模式的转型密不可分。随着全球旅游业的高速发展和互联网技术的深度渗透,传统旅游信息获取方式已无法满足现代游客的需求。据世界旅游组织统计,2023年全球在线旅游市场规模突破1.2万亿美元,其中景点推荐类服务占比达35%。这一趋势源于三大社会变革:一是移动互联网普及使"即时决策"成为主流,游客更依赖实时更新的数字化推荐;二是年轻游客更注重个性化体验,常规旅游指南难以满足其需求;三是疫情后旅游消费习惯改变,游客更倾向于通过线上平台获取安全、小众的景点信息。在此背景下,以TripAdvisor、马蜂窝为代表的推荐平台迅速崛起,通过用户生成内容(UGC)模式构建了庞大的旅游数据库,极大提升了信息获取效率。
旅游景点推荐网站的价值不仅体现在商业层面,更深刻影响着整个旅游产业链。对游客而言,这类平台通过智能算法提供个性化推荐,节省了80%以上的行程规划时间(携程2023年数据);对景区而言,平台成为重要的营销渠道,丽江古城通过线上推荐使客流量提升25%;对行业生态而言,平台积累的大数据可帮助政府优化旅游资源配置,如杭州基于游客评价数据新增了15条特色旅游线路。更重要的是,这类平台推动了旅游业的可持续发展——通过用户真实评价倒逼景区提升服务质量,通过小众景点推荐促进旅游资源均衡开发。未来随着VR/AR技术的成熟,景点推荐网站将进一步升级为沉浸式旅游体验入口,成为连接游客与目的地的重要纽带。
1.2 研究现状
1.2.1 国内研究现状
我国知名的旅游预订网站“携程网”,是我国是非常领先的旅行服务公司网站,网站功能丰富,能为用户提供全方位旅行服务,比如酒店预订模块可以让用户在线进行酒店的预订、特价酒店的查询及查看酒店评价等;交通票务模块提供了中国大陆、港澳台地区以及国外地区的火车票、机票的预订;旅游度假模块提供了景点门票的预订服务,以及查看目标景点的旅游攻略、旅行指南、旅行团等一站式旅行服务。
当前,国内外旅游景点推荐平台呈现差异化发展态势,但均受益于全球旅游业的数字化升级。国内市场以携程、美团、马蜂窝为主导,2023年合计占据75%的市场份额(艾瑞咨询数据),其核心优势在于深度本地化服务与社交化内容生态——马蜂窝的UGC内容库已积累1.2亿条真实点评,抖音等短视频平台通过"种草"模式带动小众景点搜索量激增300%。
《基于SpringBoot的旅游电商系统设计与实现》是我国的研究学者发表的一篇关于旅游电子商务平台开发的技术类论文,该文章采用SpringBoot+MyBatis+MySQL的系统架构,设计了多个功能模块,包括智能推荐模块能够根据用户的历史订单和浏览动作,采用算法生成个性化的旅游规划信息;实时交易模块对接了支付宝/微信端的支付接口;动态定价模块可以根据季节、库存自动调整合作酒店和机票的价格。
1.2.2 国外研究现状
国外的一款知命的旅行资源平台叫做“Lonely Planet”,平台的目的地信息查询模块提供全球各地景点的详尽信息,包括城市、国家和地区,其中包含酒店、餐饮、交通、景点等方面内容。旅行攻略与规划模块借助专家的建议和旅行指南,为旅客用户提供丰富的旅游攻略,辅助大家可以更好地规划旅游行程,定制专属的旅行计划;景点推荐与评价模块为用户推荐了各地热门的景点,并展示了其他游客的评价和建议,帮助用户了解景点实际情况。
国际市场则由TripAdvisor、Google Travel等平台把控,凭借全球化数据整合能力覆盖200万个目的地,其AI行程规划工具用户渗透率达58%(Phocuswright报告)。值得注意的是,国内外平台正加速技术融合:国内企业引入AR实景导航(高德地图覆盖全国5000+景区),而国际平台则借鉴中国社交电商模式,如GetYourGuide新增直播导览功能。但面临共同挑战:过度商业化导致的推荐可信度下降,TripAdvisor调查显示42%用户怀疑点评真实性。未来竞争焦点将转向AI个性化推荐精度与可持续发展旅游的生态构建,如携程已推出"低碳景区"推荐标签,Airbnb Experiences则侧重原生文化体验。
所以说,在对系统功能进行设计时,首先需要给用户提供注册与登录功能,让用户能填写个人的旅游偏好,如喜好的景点类型、地理位置、美食类型等,为用户推荐合适的旅游景点;还需要可以让用户随时查看推荐的旅游景点详细信息,包括景点的名称、位置、特色、开放时间、门票价格等;尽量含有能够整合门票预订、旅游线路规划、酒店预订等系统功能,为用户提供一站式的旅游服务。
1.3 研究内容
此次开发系统为基于协同过滤算法的旅游景点推荐的设计与实现,在此系统设计与实现中首先是对当前系统的一些相关资料文献进行搜集,对国内外的一些学者研究进行对比分析,分析系统的研究意义与目的,然后对一些开发技术Java、SpringBoot等进行学习,对开发的一些环境进行搭建部署,接着对系统的需求进行分析,包含用户的角色划分以及业务逻辑需求和功能需求进行划分,对系统的整体模块以及流程等进行设计,主要是对底层的业务表存储进行设计,最后为系统的核心业务代码的编写和测试。
第二章 研究技术
2.1 SPringBoot架构
SpringBoot的出现主要在于简化spring应用的基础搭建和对开发过程进行弱化,主要用于对后台核心业务进行处理。在SpringBoot中主要包含自动配置、起步依赖以及Actuator和外部化配置等。在SpringBoot中通过自动配置可以对应用的上下文进行处理,且提供大量的Jar机制,系统会自动化添加DispatcherServlet减少了开发者手动配置spring的繁琐业务工作。通过SpringBoot起步依赖,可以将所有的Jar包进行自动化集成处理,简化项目构建,快速有效的完成web应用开发所需要的Jar包,以及一些服务器处理等,无需再手动对包进行引入。通过SpringBoot的开发可以将项目快速有效的进行完成。
SpringBoot的出现是为了快速提供一个spring应用程序的全展示架构解决方案,通过SpringBoot可以简化spring应用的开发以及部署过程和集成化操作。通过自动化的配置以及对一些服务器的限制等形成有效的开发环境,为开发者快速的提供应用服务。在SpringBoot中可以提供依赖来简化项目架构。通过SpringBoot-starter-web来提供构建JavaEE程序所用的所有依赖,开发者只需对业务进行编码处理即可。架构可提供一些外部化的配置,包括一些指令化操作,例如命令行参数、Java,的一些属性环境变量内置以及properties的文件进行配置读取,提高了配置的灵活度和简化性,将XML文件进行去除,弱化了XML文件配置。通过依赖管理可以将项目的版本以赖的进行快速兼容,提升版本以赖的容易度。
2.2 MySQL数据库
MySQL作为关系型数据库,是一个典型的C/S结构的软件,在MySQLserver程序服务中可以提供对数据库的存储和处理服务,完成客户端的调用请求和操作数据反馈。MySQL符合正常的关系型数据库操作模式,可以通过这些SQL语句来完成对数据的执行操作,在安装MySQL后,默认情况下server服务端和client客户端全部具备。通过请求处理调用不同的存储引擎来进行变化以及通过弹性机制形成不同的存储引擎,MySQL可以提供非常优质的服务信息。在MYSQL中,可以通过库表形式进行基础数据存储。同时提供函数、触发器、视图等辅助来进行繁琐业务的处理。
2.3 Maven软件
在项目架构搭建中可以通过Maven对整个的项目jar包以及项目开发进行管理,在maven中可以对package的打包结构进行设计,同时对启动项的一些扫描包信息进行拦截设置,可以对项目的整体编码进行统一设计。在项目jar包中通过自动化进行依赖引入操作,这样可以统一jar包的版本,同时也可避免手动导入jar的冲突。在maven中可以对不同环境下的变量进行自动化的引入操作,保证了不同环境部署的切换自由,通过maven的集成化的管理来提升项目开发速率。
2.4 IDEA编辑器
intellij idea 简称为IDEA,项目编码现在多数都采用IDEA,在IDEA中将所有的插件、开发的环境等都进行了耦合性的降低,提升了更大的自由度,不论是架构的搭建还是项目的新建都非常的简单,结合Maven的管理,让IDEA的快速有效性发挥到更大。在IDEA中对很多的快捷键都进行了设置,提升编码的速率,同时加入了一些代码的错误纠错机制以及代码的校验能力以及系统的编码提醒,对于开发者来说效率非常高,因此本次项目开发采用IDEA。
2.5 MyBatis架构
MyBatis作为ORM层架构,主要是一个持久性框架,它用于对SQL定制化,以及对一些存储过程和高级对象进行映射。MyBatis主要是对JDBC进行封装,通过将JDBC的代码和手动对参数的设置等进行自动化的处理。将接口和Java的。POJO对象可以轻松的映射到数据库中,MyBatis作为半自动化架构,既满足了对持久层的处理,同时也起到对service层的承接作用,通过将数据库表与对象进行映射,结合XML文件和注解方式来进行映射处理,提升数据库的执行效率,同时通过XML对SQL语句进行定义形成片段式SQL语句,提升SQL的灵活度。
2.6 协同过滤算法
本系统运用协同过滤推荐算法,通过综合分析旅游景点的用户评分数据和用户间的相似性。该算法会考虑用户对其他景点的评分和偏好,结合相似用户的行为模式,从而为用户提供个性化的旅游经典的推荐。设计中协同过滤算法主要分为基于用户的协同过滤和基于物品的协同过滤两种方法。基于用户的协同过滤算法根据用户的历史行为找到与目标用户兴趣相似的用户,并向目标用户推荐他们喜欢的景点。基于物品的协同过滤算法则根据用户对景点的评分和行为找到与用户已喜欢的景点相似的其他景点进行推荐。
(1)相似度计算:实现用户相似度计算和景点相似度计算的算法,根据评分矩阵和用户行为数据计算用户之间的相似度和景点之间的相似度。
(2)评分预测与推荐生成:基于相似度计算和评分矩阵,实现评分预测和个性化推荐生成的算法,根据用户的历史行为和兴趣,预测用户对未评分景点的喜好程度,并生成推荐列表。
第三章 系统分析
3.1 可行性分析
技术可行性:在本次开发中选择Springboot架构,通过Springboot的全家桶集成性可以很好的简化架构的配置,同时提升系统的拓展性和稳定性,结合Mybaits对orm底层进行持久性的存储,基于MySQL数据库对项目的数据进行存储,系统开发中通过maven进行项目整体管理,从技术角度支撑完全可行。
经济可行性:在经济可行分析中,首先是开发的成本,目前需要投入的是开发的编程人工,基本为本人开发,可忽略,开发语言以及开发的软件尽量采用开源免费的,成本很小,后期的服务器的部署以及运维都基本成本较低可控,而项目设计使用后带来的人为的成本的降低是显而易见的,因此经济可行。
法律可行性:任何的系统设计都必须遵从法律可行,都要从实际出发来符合法律要求,从思路的设计到代码的开发等,可以采用开源的内容,但不可盗用拷贝他人代码。对于系统的开发软件也采用开源的正版软件,保证系统开发任何环节都以法律可行为底线。
操作可行性:在系统操作中要对用户的角色进行划分,保证各个用户的操作菜单以及权限分明,各个用户操作系统时要保证功能流畅,做到业务流程符合实际要求。
3.2 需求分析
用户:在用户端可以对景区进行检索,可根据用户的一些习惯进行景点的个性化推荐,用户可进行注册登录,登录后可对个人信息进行编辑和维护。用户可对自己的旅游心得进行发布记录,可以对一些旅游路线进行推荐分享,可以对景点房间进行在线预约,对活动进行预约。

图3-1 用户用例图
管理员:管理员端可对景区信息进行发布,可以对注册用户信息进行管理,可以对用户发发布的旅游心得进行管理。以及对旅游路线分享进行管理,可以查询所有的门票、房间预约记录。

图3-2 管理员用例图
景区人员:用户可在登录后进行景区的房间信息管理,以及对景区的活动信息进行管理,可以对活动报名以及房间预约进行审核。

图3-3 景区用例图
3.3 性能分析
系统非功能分析也可理解为性能分析,主要是对一些功能以外的影响因素进行考虑,综合性能分析后才可满足正常的系统分析。在性能分析中要包含系统的可靠性、安全性、并发性、响应处理效率等,并发性和响应效率通常跟服务器和数据库有关系,要满足同时在线人数在100以上,同时满足数据库的多表繁琐业务检索效率在3s内。系统安全可靠性,则可以从代码角度出发加入一些拦截机制或者是一些加密算法进行处理。
第四章 系统设计
4.1 模块设计
在系统设计中核心业务模块游客:游客注册登录、景区展示推荐、景区门票预订、房间住宿预订、景区活动预约,管理员:游客信息管理、景区信息管理、景区路线发布管理、景区数据分析、景区攻略发布,景区:景区活动管理、景区展示管理、游客订单管理。

图4-1系统模块图
4.2 数据库设计
4.2.1 数据库逻辑设计
管理员实体,包含账号、密码、主键id。

图4-6 管理员实体图
用户实体,包含账号、密码、用户id、手机号、联系地址、邮箱、姓名等信息。

图4-7 用户实体图
景区信息实体,包含景区账号、密码、度假id、地址、景区描述、门票金额、特色等信息。

图4-8 景区实体图
景区发布活动实体,包含活动的名称、活动描述、报名要求人数、活动图片、活动状态、举办日期等。

图4-9 活动实体图
景区发布房间实体,包含房间id、房间名称、房间类型、房间描述、房间单价、房间图片等。

图4-10 房间实体图
房间预订实体,包含房间id、预订id、用户id、预订日期、金额、状态等。

图4-10 房间实体图
活动报名实体,包含活动id、报名id、用户id、报名时间、报名状态等。

图4-11 活动报名实体图
门票预订实体,包含房间id、预订id、用户id、预订日期、金额、状态等。

图4-12 门票预订实体图
旅游路线分享实体,包含分享id、发布用户id、发布日期、标题、内容、图片等。

图4-13 路线分享实体图
在实体图设计完成后,对系统进行关系型E-R图的设计,E-R可以直观的对实体之间的联系进行表达,在设计中通过1、m、n进行1对多以及多对多的描述,通过实体来进行底层的物理表的设计,以及对主外键进行设计,每个表都要定义唯一的主键,且对表中的字段都要遵从第三范式进行设计。

图4-15 系统E-R图
4.2.2 数据库表结构设计
表4-1管理员,包含账号、密码等如下:
表4-1管理员表
| 字段 | 描述 | 约束 | 主外键 |
| Id | 管理员id | Int(8) | 主键 |
| name | 账号 | Varchar(20) | |
| password | 密码 | Varchar(60) |
表4-2用户包含用户id、用户账号、用户密码、用户身份证、用户描述、用户邮箱、用户电话、用户状态,用户如下:
表4-2 用户表
| 字段 | 描述 | 约束 | 主外键 |
| Id | 用户id | Int(8) | 主键 |
| name | 账号 | Varchar(20) | |
| username | 账号 | Varchar(60) | |
| password | 密码 | Varchar(60) | |
| card | 用户身份证 | Varchar(60) | |
| description | 用户描述 | Varchar(60) | |
| | 邮箱 | Varchar(60) | |
| tel | 电话 | Varchar(60) | |
| status | 状态 | Int(8) |
表4-3景区包含景区id、景区账号、密码、地址、景区描述、特色图片、门票金额,景区如下:
表4-3 景区表
| 字段 | 描述 | 约束 | 主外键 |
| Id | 景区id | Int(8) | 主键 |
| name | 名称 | Varchar(20) | 外键 |
| username | 账号 | Varchar(60) | |
| password | 密码 | Varchar(60) | |
| address | 地址 | Varchar(60) | |
| description | 景区描述 | Varchar(60) | |
| photo | 特色图片 | Varchar(60) | |
| Money | 门票金额 | Int(8) |
表4-4景区活动包含活动编号,活动名称、活动描述、宣传图、景区id、人数限制、状态:
表4-3 景区表
| 字段 | 描述 | 约束 | 主外键 |
| Id | 活动编号 | Int(8) | 主键 |
| name | 活动名称 | Varchar(20) | |
| description | 活动描述 | Varchar(60) | |
| Photo | 宣传图 | Varchar(60) | |
| dujiaid | 景区id | Int(8) | 外键 |
| Renshu | 人数限制 | Int(8) | |
| staus | 状态 | Int(8) |
表4-5景区房间包含房间编号、房间名称、描述、房间图、景区id、单价、房间类型,如下:
表4-5 景区表
| 字段 | 描述 | 约束 | 主外键 |
| Id | 房间编号 | Int(8) | 主键 |
| name | 房间名称 | Varchar(20) | |
| description | 描述 | Varchar(60) | |
| Photo | 房间图 | Varchar(60) | |
| dujiaid | 景区id | Int(8) | 外键 |
| Money | 单价 | Int(8) | |
| Types | 房间类型 | Varchar(60) |
表4-6景区房间包含房间编号、房间名称、描述、房间图、景区id、单价、房间类型,如下:
表4-6房间表
| 字段 | 描述 | 约束 | 主外键 |
| Id | 房间编号 | Int(8) | 主键 |
| name | 房间名称 | Varchar(20) | |
| description | 描述 | Varchar(60) | |
| Photo | 房间图 | Varchar(60) | |
| dujiaid | 景区id | Int(8) | 外键 |
| Money | 单价 | Int(8) | |
| Types | 房间类型 | Int(8) |
表4-7房间预订信息,包含编号id、用户id、预定日期、状态、单价、金额,如下:
表4-7 房间预订表
| 字段 | 描述 | 约束 | 主外键 |
| Id | 编号id | Int(8) | 主键 |
| fangid | 房间id | Int(8) | 外键 |
| userid | 用户id | Int(8) | 外键 |
| riqi | 预定日期 | Date | |
| stutus | 状态 | Int(8) | |
| price | 单价 | Int(8) | |
| money | 金额 | Int(8) |
表4-8活动报名信息,包含报名id、活动id、用户id、报名日期、状态,如下:
表4-8 活动报名表
| 字段 | 描述 | 约束 | 主外键 |
| id | 报名id | Int(8) | 主键 |
| userid | 用户id | Int(8) | 外键 |
| huoid | 活动id | Int(8) | 外键 |
| riqi | 预定日期 | Date | |
| status | 状态 | Int(8) | |
| price | 单价 | Int(8) | |
| money | 金额 | Int(8) |
表4-9门票预订信息,包含预定门票id、用户id、景区id、身份证号、时间、门票,如下:
表4-9 活门票预订表
| 字段 | 描述 | 约束 | 主外键 |
| id | 预定门票id | Int(8) | 主键 |
| userid | 用户id | Int(8) | 外键 |
| dujiaid | 景区id | Int(8) | 外键 |
| card | 身份证号 | Varchar(18) | |
| riqi | 时间 | Date | |
| menpiao | 门票 | Int(8) |
表4-11路线分享信息,包含分享id、标题,用户id、描述、内容、发布日期,图片,如下:
表4-10 路线分享表
| 字段 | 描述 | 约束 | 主外键 |
| id | 分享id | Int(8) | 主键 |
| userid | 用户id | Int(8) | 外键 |
| title | 标题 | Varchar(60) | |
| description | 描述 | Varchar(60) | |
| content | 内容 | Varchar(60) | |
| riqi | 发布日期 | Date | |
| photo | 图片 | Varchar(60) |
表4-12设施信息,设施id、名称、描述、位置、供应商、景区id,如下:
表4-12 设施信息表
| 字段 | 描述 | 约束 | 主外键 |
| id | 设施id | Int(8) | 主键 |
| dujiaid | 景区id | Int(8) | 外键 |
| name | 名称 | Varchar(20) | |
| description | 描述 | Varchar(60) | |
| address | 位置 | Varchar(60) | |
| gonyingshang | 供应商 | Varchar(60) |
第五章 系统实现
5.1 景区信息推荐展示
在前端可以展示一些景区信息,可以进行类型和关键词检索。可根据一些热门网红景区或者是一些点击率高的景区进行优先推荐,也可通过分析用户的历史行为和偏好,对用户的检索历史信息以及关键词检索信息进行提取分析,利用协同过滤算法预测用户未来的景区选择需求,找出相似的游客或景区,从而为游客推荐他们可能感兴趣的景区,为用户提供个性化的旅游度假推荐。

图5-1 景点推荐界面图
5.2 景区信息管理
在系统中后台端可对景区信息进行新增和维护操作,可对景区的所属位置、所属的类型、特色以及名称和图片等信息进行分页查询。

5.3 民宿房间信息管理
在系统中景区负责人端可对景区的民宿房间信息进行发布,可对民宿房间信息进行新增,包含民宿房间的名称、描述对应的图片信息。在add.jsp界面,通过对数据进行填写,对input中的所有输入数据进行验证,判断required以及length是否符合要求,然后通过ajax对填写的数据进行formdata封装,通过controller层接收到数据后,将数据执行insertdata函数进行底层插入保存,调用底层的SQL语句进行保存,最后将执行结果返回界面。

5.4 房间预订信息管理
在放假预订新增界面中可以对预订的景区、房间信息、预订时间等信息进行新增操作,录入后形成预订订单,可对预订订单进行查询。在新增界面中,通过输入框Input对每个参赛输入值进行设置,然后通过form标签对数据输入进行封装,在新增填写好内容后,通过submit进行提交,然后触发ajax异步提交事件,通过js获取到所有参数信息后判断length以及为空等,然后将参数转为json,最后通过post方式提交到controller层,在后台将数据对象封装为Beans对象,然后通过调用service中的insertdata进行执行保存。

5.5 旅游心得发布管理
在系统中用户端可以对旅游心得进行发布,对自己的旅游心得的标题、对应的感受内容、描述内容等进行新增发布。在查询界面,首先对showdatalist界面进行数据的初始化操作,调用findbydatalist对数据进行查询操作,然后通过在controller层对pagesize以及pagenum进行定义,第一次查询设置pagenum为1,后期查询则pagenum为传输参数page,通过执行底层的分页pagehilper进行操作,将数据结果ArrayList返回到jsp界面中。

5.6 旅游路线分享管理
在系统中用户可以对旅游的路线信息进行新增和维护操作,可输入路线的理由以及对应的路线内容信息进行新增。在showdatalist.jsp界面中可以通过controller对数据进行分页操作机制,然后通过pagehilper将参数pagesize、pagenum、pagecount等进行计算,通过后台底层的selectbylimit进行数据分页查询,执行MySQL的limit分页机制,最后将结果集ArrayList返回到界面。

第六章 系统测试
6.1 测试方法
在测试环节中,要从用户角度出发,对用户的一些操作行为和可能出现一些状况等进行测试,测试时采用Junit单元测试。对各个模块进行划分,确保各个模块之间的关系。首先确保单个模块测试的正确,然后去串联各个模块之间的业务。保证数据的准确性和业务的连贯性,操作时要对前端输入和后台的一些数据处理展示进行测验,包括一些性能方面,对一些用户并发数以及相关的一些处理效率等进行测验。
测试环节中可以通过用例设计来进行功能的覆盖测验,通过编写测试用例对每个业务模块甚至时每个按钮、输入框的验证等都要进行测试,既要保证数据的正确性同时也要符合逻辑的正确和流程的完整。在系统测试中可以遵照前期的需求分析,对系统的一些功能性和性能等都要进行分析,即要考虑到功能方面,也要考虑到一些用户习惯、服务器的处理并发、数据的安全性等方面。
6.2 测试用例
在后台人员账号注册时,要对注册账号的长度以及类型等进行验证操作,确保输入信息的完整性和格式的正确性。
表6.1 后台人员账号注册测试用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 201 | 输入后台人员账号信息,不少于6位 | 1输入账号为abc1 2输入内容为abcaadad 3输入abc123 | 1提醒字段太短 2提醒为数字+字符 3输入正确 |
| 202 | 输入密码信息不少于6位 | 1输入账号为easd 2输入内容为adosfsf 3输入wangxin | 1提醒字段太短 2提醒为数字+字符 3输入正确 |
后台操作人员发布路线时,要对输入路线的名称、长度和是否为空等进行验证操作,确保输入的内容完整,需要对图片格式和大小等进行验证操作。
表6.2 后台人员路线发布测试用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 301 | 输入旅行路线名称必填且长度大于6 | 1输入路线名称为康藏线旅行2输入路线名称为哈尔滨旅游 | 1提醒字段太短 2输入正确 |
| 302 | 上传路线图片信息格式必须正确 | 1上传图片为空 2上传文件格式为pdf 3上传文件格式为png | 1提醒图片必填 2提醒为非图片格式 3上传图片正确 |
可以对用户注册时的账号是否冲突,以及账号长度和格式等进行验证操作。对密码的长度和格式都要进行验证。
表6.3 用户账号注册测试用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 401 | 输入用户用户账号信息,不少于6位 | 1输入账号为eds1 2输入内容为dajdsf 3输入abc123 | 1提醒字段太短 2提醒为数字+字符 3输入正确 |
| 402 | 输入密码信息不少于6位 | 1输入账号为12eee 2输入内容为dadffs 3输入lisi12 | 1提醒字段太短 2提醒为数字+字符 3输入正确 |
可以对景区路线进行测试操作,确保输入景区类型的格式和长度正确且不可为空验证。
表6.4 景区路线类型测试用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 501 | 输入类型名称不可为空 | 1输入类型名称为空 2输入内容为“运动” | 1提醒字段必须有值 2提醒长度必须大于2 |
| 502 | 输入路线类型描述必须有值 | 1输入类描述为空 2输入内容为“举办路线” | 1提醒字段必须有值 2提醒长度必须大于10 |
系统可以对一些发布公告是否为空且内容是否完整、长度是否符合要求进行验证操作。
表6.5 系统公告测试用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 601 | 输入系统公告名称不可为空 | 1输入公告标题为空 2输入内容为“今天” | 1提醒字段必须有值 2提醒长度必须大于2 |
| 602 | 输入公告描述必须有值 | 1输入公告描述为空 2输入内容为“发布公告” | 1提醒字段必须有值 2提醒长度必须大于10 |
在用户留言时,可以对输入的留言内容长度和是否为空以及生成日期等进行验证操作。
表6.6 系统留言测试用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 701 | 输入留言人信息必须有值 | 1输入留言人为空 2输入留言人为“王” | 1提醒字段必须有值 2提醒长度必须大于2 |
| 702 | 输入留言内容信息 | 1输入留言内容描述为空 2输入留言内容为“我要留言” | 1提醒字段必须有值 2提醒长度必须大于10 |
在预定订票时,要对订票的是否重复订票以及订票内容是否完整的进行验证操作。
表6.7 景区订票测试用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 801 | 点击进行订票 | 1输入订票内容为空 2输入内容订票 | 1提醒字段必须有值 2订票成功 |
| 802 | 已订票,点击重新订票 | 1点击进行订票 2未登录进行订票 | 1提醒路线订票已存在 2提醒必须登录 |
在用户登录时,要对账号是否正确以及密码是否匹配等进行测试操作。
表6.8 用户用户登录用例
| 用例编号 | 用例描述 | 执行步骤 | 预期结果 |
| 1001 | 输入用户账号信息内容 | 1输入账号不存在 2输入账号信息过长 | 1提醒此账号信息不存在 2提醒输入内容过长 |
| 1002 | 输入用户密码信息 | 1输入错误密码信息 2输入正确密码信息 | 1提醒密码不匹配 2用户用户登录成功 |
结 论
在此系统开发中,主要历时3个月完成了对项目初期的调研分析。包含对系统方向的整体把握以及对系统功能的分析和相关业务模块的设计,然后对系统进行详细代码的编写和功能以及性能的测试,完成项目的基础性开发。
在项目开发过程中,主要采用SpringBoot架构进行搭建,基于MySQL对业务数据进行存储,整体采用MVC模式开发项目前端采用JSP、Ajax进行交互,后台采用Java进行业务代码的编写。
此次系统开发中,首先要保证系统的可靠性,对系统的处理效率以及服务器的运行等保证正常操作,其次要保证用户的操作合理性,保证系统实际符合操作要求,满足正常的业务模式,符合用户的操作理念。
在整个设计过程中,个人的软件编码能力得到了很大提升,对于计算机软件的一些基础知识以及理论结合实际等情况都得到了提炼,对一些开发架构和Bug优化能力都得到了很大的提高。
项目难度: 中等难度
适用场景: 相关题目的毕业设计
包含内容: 整套源码+完整毕业论文
大家点赞、收藏、关注、评论啦 。
资源下载|如果你正在做毕业设计,需要源码和论文,不局限于该项目,私聊我
更多推荐

所有评论(0)