博主介绍: ✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、java优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌
🍅 文末获取源码联系 🍅
👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟
java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
摘 要
随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于大数据的广泛应用给生活带来了十分的便利。所以把热门旅游景点数据分析管理与现在网络相结合,利用计算机搭建热门旅游景点数据分析系统,实现热门旅游景点数据分析的信息化。则对于进一步提高热门旅游景点数据分析管理发展,丰富热门旅游景点数据分析管理经验能起到不少的促进作用。
系统阐述的是使用热门旅游景点数据分析系统的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体架构。利用这些技术结合实际需求开发了具有个人中心、门票信息管理、名宿信息管理、系统管理等功能的系统,最后对系统进行相应的测试,测试系统有无存在问题以及测试用户权限来优化系统,最后系统达到预期目标。
1 概 述
1.1 研究背景
中国在两千年左右就已经对计算机这一块发展到相当的规模了,现在老百姓们越来越离不开计算机网络、互联网所带来的好处了,现如今各种格式的网站系统遍地开花,现在不同于以往的老旧的管理方式了,只有跟上时代的发展才能不会被淘汰掉,所以对于热门旅游景点数据分析来说也是同样的,将传统的线下管理带到线上,能够大大提升管理效率,好处也有很多,首先整体的美化、提升了在新时代的背景之下新的样貌,更加朝气蓬勃。一个好的系统能够把传统的热门旅游景点数据分析信息管理方式,带上一全新的方式,效率、可靠、安全稳定集合一身的系统,带来的体验是传统管理方式所没有办法实现的,信息的交流将达到顶峰,用户的沟通将会更加的便捷,有问题实时反馈提交,及时接收重要通知,将热门旅游景点数据分析管理正规化、合理化、高效化。
1.2 研究意义
随着时代的发展,信息技术得到广泛的应用给人们和生活注入了充沛的活力。网络使人们生活和工作带来便利,可以更高效的处理人类获取信息中精细化、全面化的问题,从而提高了工作效率。从独特且和资源相对优势的管理带来了更好的发展机会,在经济、教育、科研等各大领域上的应用也将逐渐成熟化。这是线下传统管理方式无法涉及的,为此,我们要无畏艰辛,永无止步的努力探索,力求开发出更具实用且信息化的热门旅游景点数据分析系统。综上,研究意义重大。
1.3 研究内容
整个的系统的开发运用Python技术, django框架,以及MySql数据库技术的大力支持下同步完成该系统的开发,实现了热门旅游景点数据分析的信息化,使管理者在操作思路清晰且更加方便,用户也可以体验到更加优秀的热门旅游景点数据分析管理,内容目标如下。
(1)减少后台管理人员的工作量,对用户的信息进行系统的管理;
(2)必须要方便快捷的查看搜索信息并管理信息;
(3) 用户是具有多样性的,所以界面要设置的简单明了,操作更要方便快捷。
(4)编写开发系统的技术文件。
(5)对系统进行了系统测试。
2 关键技术介绍
热门旅游景点数据分析系统设计过程中采用Python开发语言,B/S结构,采取 django框架,并以MySql为数据库进行开发。结合以上技术,对本系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。
2.1 PYTHON语言简介
Python是由荷兰数学和计算机研究学会的吉多•范罗苏姆于20世纪90年代设计的一款高级语言。Python优雅的语法和动态类型,以及解释型语言的本质,使它成为许多领域脚本编写和快速开发应用的首选语言。Python相比与其他高级语言,开发代码量较小,代码风格简洁优雅,拥有丰富的第三方库。Python的代码风格导致其可读性好,便于维护人员阅读维护,程序更加健壮。Python能够轻松地调用其他语言编写的模块,因此也被成为“胶水语言”。
Python的应用场合非常广泛,在科研领域中,可以用Python训练人工智能模型,也可以对实验数据进行数据分析。在生活中,Python提供了很多优秀的、开源的Web开发框架,例如Django、Flask、Pyramid、Tornado等。知乎、豆瓣网、Youtube等知名应用都是由Python为基础进行开发的。相比于其他框架,Django有着更加丰富的插件,作为企业级框架也很好上手,适合本次开发。此系统是开发一个Web应用,采用Django框架,将在下一节进行具体介绍。本次开发选用的是Python3.6.4版本。
2.2 MySql数据库
MySql数据库具有轻便、稳定等特点,在系统的工程中对相关的数据操作,很好的保障数据的稳定,极大程度上减低了系统开发的时间。
MySql数据库支持多线程工作,能充分利用系统的资源,更具有效率且数据库连接也有对于的不同模式接口;MySql存储小、运行稳定并且对使用的要求不高。
利用MySql建立系统数据库,利于对系统的数据处理早期的整合,可以更好的发展后数据的扩展实际操作[3]。
Mysql数据库的特点如下:
(1)Mysql是相比于Oracle更轻量、更简洁便于使用,在服务部署方面相对复杂度低,更利于毕设系统的开发。
(2)支持多种操作系统包括AIX、FreeBSD、HP-UX、Linux和Mac OS、Novell‘s Netware、OpenBSD系统、OS/2卷、Solaris、Windows等。
(3)查询速度快。算法优化了查询语句,可靠地提高了搜索速度。
(4)Mysql可以使用Sql语言进行调用,学习成本较低。
(5)Mysql可支持互联网站数据共享也支持数据安全设置,防止数据泄露。
(6)高度非过程化。在访问数据库时,没有必要一步一步向计算机发送指令去完成任务,只需要用MySQL语句描述并且命令就可以了,数据库会自动完成全部工作。
2.3 DJANGO框架
Django被官方称之为“完美主义者框架”,只需要很少的代码就能更快的完成一个优秀的Web应用[4]。Django采用了MTV框架模式,此模式根据MVC进行改进形成了更适于Django的设计模式。M为模型(Model)、T为模板(Template)、V为视图(View)。下面介绍部分Django的核心与优点:
(1)对象关系映射(ORM,Object-Relation-Mapping):ORM的方法论有着三个核心原则:
① 简单:以最基本的形式构建数据。
② 传达性:数据库结构被任何人都能理解的语言文档化。
③ 精确性:基于数据模型创建正确标准化的结构。
用于Python之中即是以Python类形式定义数据模型,类中的每一个属性对应着数据库中的一列。引入ORM后,无需编写原生SQL语句,使用基于面向对象的思想去编写类、对象、调用方法等,ORM会将其映射成SQL语句通过pymysql执行。
(2)路由配置(URLConf):Django的URL设置更加灵活优雅,看似复杂难懂,但使用的都是简单的正则表达式,你可以随心所欲的创造优美的、简洁的、专业
的地址。
(3)模板(Template):模板可以理解为承载数据的工具,为了将数据从视图中分离出来,通过各种各样的标签来进行数据的传输。Django的模板融入了面向对象中继承的思想,提高了复用减少冗余代码。
(4)视图(View):视图就是views.py中的函数,也就是逻辑代码,为了将URL和视图关联起来,用到了上述的URLConfs,URLConfs将URL模式映射到视图中,每个视图有两件事是必须要做的:返回一个包含被请求页面的HttpResponse对象,或者抛出一个异常。
(5)后台管理系统(Django-Admin):Django提供的一个基于Web的管理工具。
Django-Admin来自django.contrib也就是Django的标准库,默认被配置好,只需要激活启用即可,它的优势在于可以快速对数据库的各个表进行增删改查,一行代码即可管理一张数据库表,相比于手动后台1个模型一般需要4个urls,4个视图函数和4个模板,可以说Django完成了一个程序编写的大部分重复工作,并且对于图书管理这种以管理工作为重系统来说,极度契合。
(6)应用(Application):当项目规模过大时,难免会产生目录过长,文件过多的问题,Django理念中的App可以将项目相对独立的进行开发,插拔的工作方式和独立性让开发者废弃的App即使删除也不会影响整体,是一种不可多得的理念。
因为本次使用的Python版本为3.6.4,低版本的Django不支持Python3,故此次使用的Django版本为3.2.12。
2.4 Hadoop介绍
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。主要有以下优点:
(1)高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
(2)高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
(3)高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
(4)低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
2.5 Scrapy介绍
Scrapy是一个抓取网站数据和提取结构化数据的框架,它可以应用在广泛的应用中:Scrapy通常用于一系列应用,包括数据挖掘、信息处理或存储历史数据。使用Scrapy框架实现一个爬虫程序通常非常简单,抓取给定网站的内容或图像。
虽然Scrapy是为屏幕抓取(或者更准确地说是网页抓取)而设计的,但它也可以用于访问api以提取数据。
2.6 B/S架构
Browser/Server简称(B/S),即:浏览器/服务器架构模式;属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将系统的重新开发、维修及利用等简单化,更将其重点放到了服务器上。它使客户端得到了统一,在服务器上汇集了系统功能的最核心部分。
B/S架构模式,在服务器接收到浏览器发出请求后将进行对应的回应。Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息。在Web上下载程序时遇到某些和数据库相关的指令,可以将这些指令转接到数据库服务器来进行解释和执行。B/S架构工作流程图如2-1所示:
图2-1 B/S架构工作流程图
3 系统分析
为了系统的完整,必须要有可行性分析的,系统的可行性关系到生存问题,分析其意义可否利用本系统来弥补线下热门旅游景点数据分析管理模式中的不足之处等,通过本系统来减少工作量,使管理者与用户的工作和管理效率更高。对此体现出更多的意义和价值,系统完成后,进行具体的实际分析看是否能够达到期望的要求,确定之后再开始系统的搭建开发工作。对于热门旅游景点数据分析系统开发的搭建中,对相关技术、实际情况和操作等一系列方面进行可行性分析;
3.1 可行性分析
3.1.1经济可行性
本系统所用软件均为微软软件,开发周期短,因而可节约大量时间与资源,达到降低成本之功效。并且具有很好的安全性、可靠性以及可扩展性。同时发展该热门旅游景点数据分析系统需要的智能计算机配置很低,即使网吧中被淘汰掉的配置不高的计算机也能满足需要,因此具有充分的可行性。
3.1.2技术可行性
本系统开发的程序需具有网络功能,从而可以不受地点限制。由于采用了B/S模式,降低了成本,提高了效率。本热门旅游景点数据分析系统以Python, MYSQL数据库为设计工具,能够方便的学习与应用。所以将Python与MYSQL集成而研制的智能系统具有可行性和有效性。
3.1.3运行可行性
运行可行性也可以说是系统可用性的体现,热门旅游景点数据分析系统本身具有运行可行性的特点,其界面的设计清晰、功能权限分配合理、操作方便。本论文设计的是热门旅游景点数据分析系统,通过技术的结合提出一套切实可行的解决方案。不同的用户接入之后不需要经过特殊的训练就可以运行到对应功能模块中。
3.2系统用例分析
热门旅游景点数据分析系统综合网络空间开发设计要求。目的是将传统管理方式转换为在网上管理,完成热门旅游景点数据分析管理的方便快捷、安全性高、交易规范做了保障,目标明确。热门旅游景点数据分析系统功能主要包括个人中心、门票信息管理、名宿信息管理、系统管理等进行管理。管理员用例如下:
图3-1 管理员用例图
3.3系统流程分析
3.3.1程序流程图设计
在本系统,非本系统的用户要想进行热门旅游景点数据分析就要注册本系统,登录时需要填写相应的资料,如有使用者,则会显示使用者名称已经存在,请再次键入使用者名称的提示框,若使用者不存在,则填写密码、确认密码等资料,并由系统判定密码与确认密码相符,确认无误后,填写使用者所填写的资料,即可进行登记。而且,为了保证系统的安全,只有在登录了本系统以后,才能进行热门旅游景点数据分析系统。该系统的工作流程见图3-2。
图3-2 程序流程图
3.3.2添加信息流程图设计
在添加信息的时候,会判断是哪类用户,并根据用户类型判断执行是否合法,合法者可以进行添加,不合法者则不能进行此操作[12]。管理员登录账号后可以对内容进行添加,拥有着最高的权限,其他用户权限次于管理员。添加信息流程图如图3-3所示:
图3-3系统添加流程图
3.3.3删除信息流程图设计
删除数据时与添加数据功能类似,删除数据具体流程如图3-4所示:
图3-4系统删除流程图
4 系统的设计
4.1 系统总功能结构设计
热门旅游景点数据分析系统主要由管理员负责整体系统的运行维护,统筹协调。整体结构如图4-1所示。
图4-1 系统整体功能图
4.2 系统数据库设计
4.2.1 数据库系统概要设计
从设计到制作研发一个系统,需要用到的技术很多,对于开发程序语言、数据库和框架布局都有严格的要求。该系统数据存放使用MySql的数据库,该数据库轻便快速,日常使使用系统十分稳定,更容易维护运行。
4.2.2 E-R模型结构设计
E-R图由实体与有关实体关联相结合构成的图,利用E-R图对清楚地表达出系统内的实体之间的关联。在系统中对一些主要的几个关键实体如下图。
(1)门票信息实体属性图如下图4-2所示。
图4-2门票信息实体属性图
(3) 关于我们实体属性图如下图4-4所示。
图4-4关于我们实体属性图
(4) 用户表实体属性图如下图4-5所示。
图4-5用户表实体属性图
5 系统的实现
5.1系统登录实现
系统登录,在登录页面正确输入用户名和密码后,点击登录进入操作系统进行操作;如图5-1所示。
图5-1系统登录界面
5.2管理员功能实现
管理员进入主页面,主要功能包括对个人中心、门票信息管理、名宿信息管理、系统管理等进行操作。管理员主界面如图5-2所示:
图5-2管理员主界面
管理员点击门票信息管理。在门票信息页面输入标题和位置进行查询、爬取数据、新增或删除门票信息列表,并根据需要对门票详情信息进行详情、修改或删除操作;如图5-3所示:
图5-3门票信息管理界面
管理员点击名宿信息管理。在名宿信息页面输入标题和地址进行查询、爬取数据、新增或删除名宿信息列表,并根据需要对名宿详情信息进行详情、修改或删除操作;如图5-4所示:
图5-4名宿信息管理界面
管理员点击系统管理,在系统简介页面输入标题可以查询系统简介列表,并对系统简介详情信息进行详情或修改操作;如图5-5所示:
图5-5系统管理界面
管理员进行爬取数据后,点击主页面右上角的看板,可以查看到系统简介、门票信息管理、名宿信息总数、门票价格、评论统计、名宿分类、名宿价格、评论数、名宿评分等实时的分析图进行可视化管理;如图5-6所示:
图5-6看板界面
6系统测试
系统测试是检验软件产品是否满足预期需求,确保产品无缺陷的重要手段。系统测试侧重于评估系统是否满足指定的要求,并帮助检查整个系统的功能性需求。通过对系统功能的测试用例进行分析可以发现软件存在的问题以及需要改进之处。软件可靠性设计是一项系统性工程,涉及到多个学科领域,因此其难度较大。
系统将采用黑盒测试方法对功能模块进行测试。黑盒测试即功能测试,是通过检验系统的功能是否达到预期效果来测试网站[7],它可以与预期结果相对比,看是否与预期结果一致,通过观察程序能否正确的输出信息。以此判断程序是否成功运行。
6.1系统测试的目的
系统测试(System Testing)是为给客户提供测试产品或服务的质量信息而进行的检查。系统测试还可以提供客观和独立的系统评估,以使运营者能够了解和系统实施所面临的潜在问题。系统测试包括(软件的组件,系统组件)的执行,以评估系统属性。通常这些属性表明被测组件或系统满足系统预期开发需求,在各种预期的时间内,正确响应各种系统输入,同时可以满足分析设计时要求的程度。在预期的环境中运行,并达到用户期望的总体结果。经过一系列严格功能测试,以发现系统功能方面潜在的问题,保证系统的正常运行。
6.2软件测试过程
软件测试是软件设计的收尾阶段,它是贯穿整个设计过程的,是一个巨大的任务。软件测试需要对程序所有的部分进行测试。且对每个部分的测试都是不一样的,需要在进行测试之前将它们分为以下几个阶段:
(1)单元测试(模块测试)
是对软件的程序代码进行检查的测试。针对软件的最小单元部分。单元测试分为人工检测和动态检测。静态检测要保证程序算法的正确性,要规范程序的逻辑性、规范性、正确性等。这一步要尽可能检测可能出现的错误。动态检测要通过比较实际结果和原先预计结果进行比较分析,找出错误。
(2)集成测试
此测试[14]是建立在单元测试基础上的,对系统的各个功能模块所进行的测试。任何的软件设计都会有集成阶段,所以在软件测试过程中,集成测试是的必定部分。在集成测试的时候,由于是对各个模块之间进行测试,所以可能在测试的时候没有发现问题,但整体测试的时候会暴露出来。同时,在进行集成测试时要小心在模块连接时注意是否有数据丢失。还要注意虽然单个模块的错误可能很少,没有影响,但拼接起来可能就会对系统产生很大影响。
(3)系统测试
系统测试紧跟集成测试进行。系统测试将已通过集成测试的部分作为整个系统的一员。和电子设备的各个软件和硬件等一起,通过实际运行进行检测,在模拟的实际环境下检测是否有错误出现。系统测试需要与计划中的理想状况作比较,发现与预想中不一样的地方。通过设计者的分析后决定如何修改。在软件实际运行的过程中,会发生很多意想不到的错误,可能测试人员也没有办法在第一时间解决问题,所以,系统测试应尽可能在实际运行下进行测试,这样才能达到更好的测试目的。
(4)验收测试
验收测试是系统在设计完成发行前最后的测试,它需要了解用户的需求。并和他们一起完成测试,同时根据他们的需求进行针对性的修改,以成为可以更好同时满足两者需求的软件。
6.3测试用例
登录功能是用户进入系统的校验窗口,其中需要填写的信息包括用户账号和用户密码,下面将根据此功能设计具体测试用例来验证登录功能的实现与否。具体测试用例见表6-1。
表6-1 登录功能测试用例
用例序号 | 用例描述 | 测试步骤 | 期望输出 | 测试结果 |
Test_01 | 页面展示 | 浏览器输入登录地址 | 进入登录页面 | 成功 |
Test_02 | 账号非空检验 | 账号为空,点击“登录”按钮 | 提示“用户账号必须输入” | 成功 |
Test_03 | 账号存在性检验 | 输入不存在的账号 | 提示“输入的账号不存在” | 成功 |
Test_04 | 密码非空检验 | 输入正确的账号,密码为空 | 提示“用户密码必须输入” | 成功 |
Test_05 | 密码正确性检验 | 输入正确的账号和不正确的密码 | 提示“输入的密码错误” | 成功 |
Test_06 | 登录成功检验 | 输入正确的账号和密码 | 登录成功,进入首页 | 成功 |
结论
系统阐述的是使用热门旅游景点数据分析系统的设计与开发,在此系统的开发过程中应Python、MySql技术和面向接口编程。在系统的开发中应用B/S结构设计开发实现,让系统之间逻辑分层清晰明确使得系统更加的合理可靠,更加坚固的保证了项目的开发健壮性和准确性,更好的服务应用于用户。
这个系统的开发使我能够结合我以前的知识集成和改进它们。毕设就是检验我们对所学内容运用程度的时刻,对所学内容运用情况进行巩固与提高。本系统检验了自己的IT知识,同时也检验了自己运用相关知识去解决实际问题,使自己得到了一个锻炼与提升编程技能的机会。在设计上我遇到了很多困难,主要原因是我所拥有的知识不是很扎实,所以只靠几本书里的知识是远远不够的!自己经过实践取得了一些实践经验。知识不在于理解,必须学会运用,并且使之反映到实际生活中去,才是学知识的根本目的。面对困难,我学着怎样去处理,怎样去发现并分析有关的资料。我参加过一个小型公司的毕业设计,是一个典型小型企业项目。在这个团队里,每个人都有自己独立工作的空间,他们之间互相协作。团队意识很重要。虽然碰到很多难题,但是毕业项目经过不断的调试终于顺利完成。此次实践使我在实际应用中有所提高,同时极大地增强了大脑的工作能力,使我在探索中获得快乐,在成功中获得幸福,是我莫大的财富。后期也将继续对系统做出进一步的优化升级。
(1) 完善操作逻辑,让系统功能更加合理。
(2) 补充完善小功能的应用,使系统更加完整实用。
(3) 精简美化系统界面,提高系统观赏度。
7 源码获取:
大家 点赞、收藏、关注、评论啦 、 查看 👇🏻 获取联系方式 👇🏻
精彩专栏 推荐订阅 :在 下方专栏 👇🏻
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅