基于python的旅游推荐系统

摘 要

在各学校的教学过程中,旅游推荐系统是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的旅游推荐系统,这样可以有效地解决旅游推荐管理信息混乱的局面。
本文首先介绍了旅游推荐系统的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现系统的各个功能模块。最后,对初步完成的系统进行测试,主要是功能测试、单元测试和性能测试。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。

关键字:旅游推荐系统;Django ;Mysql数据库

Abstract

In the teaching process of each school, the travel recommendation system is a very important thing. With the development of computer multimedia technology and the popularity of the network. Using the current popular B/S mode and the design idea of 3-layer architecture through Python technology to develop this system is to establish a travel recommendation system with network environment, so as to effectively solve the situation of travel recommendation management information chaos.
This paper first introduces the development background and status quo of the tourism recommendation system, and then follows the routine software development process. Firstly, it selects the appropriate language and development platform for the system, develops modules and designs the database structure according to the demand analysis, and then draws the functional module diagram, flow chart and E-R diagram of the system according to the design of the overall functional modules of the system. Then, the framework is designed and the code is written according to the designed framework to realize the various functional modules of the system. Finally, the preliminary system is tested, mainly functional test, unit test and performance test. The test results show that the system can achieve the required function, the running condition is acceptable without obvious shortcomings.
Key words: tourism recommendation system; Django; Mysql database

目 录

第一章 概述 1
1.1 引言 1
1.2课题研究目的 1
1.3 开发现状分析 2
1.4 课题开发意义 2
第二章 开发技术介绍 4
2.1 系统开发平台 4
2.2 平台开发相关技术 4
2.2.1 Django技术 4
2.2.2 Mysql数据库介绍 4
2.2.3 Mysql环境配置 4
2.2.4 B/S架构 5
2.2.4 Django框架 5
第三章 系统分析 7
3.1 可行性分析 7
3.1.1 技术可行性 7
3.1.2 操作可行性 7
3.1.3经济可行性 7
3.2性能需求分析 8
第四章 系统设计 9
4.1功能结构 9
4.2 数据库设计 9
4.2.1 数据库E/R图 9
4.2.2 数据库表 11
第五章 系统功能实现 16
5.1管理员功能模块 16
第六章 系统测试 26
第七章 总结 27
致 谢 28
参考文献 29

第一章 概述

1.1引言
随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对旅游推荐系统方面的要求也在不断提高,旅游推荐系统得到广大用户的青睐,使得旅游推荐系统的开发成为必需而且紧迫的事情。旅游推荐系统主要是借助计算机,通过对旅游推荐系统所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。旅游推荐系统对用户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
随着网络技术的不断发展,多媒体技术应用渐渐的出现在教育领域中,用户网购已经成为社会的一个热门话题。互联网应用在全球范围内日益普及,在许多的网络服务中,Web给人耳目一新的感觉。在这其中,网络平台开展的工作已经越来越流行,当今网络技术的发展,已经成为一种新的工作方式,人们可以通过网络所提供的平台解决相关事务。在众多网络开发技术中,Python是当前很热门的一种软件,因为它可以进行数据库操作及方便用户控制管理。
1.2课题研究目的
随着国内经济形势的不断发展,中国互联网进入了一个难得的高峰发展时期,这使得中外资本家纷纷转向互联网市场。然而,许多管理领域的不合理结构,人员不足以及管理需求的增加使得更多的人具备了互联网管理的意识。
在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。 “旅游推荐系统”是基于Mysql数据库,在Python程序设计的基础上实现的。为确保中国经济的持续发展,信息时代日益更新,蓬勃发展。同时,随着信息社会的快速发展,旅游推荐系统面临着越来越多的信息,因此很难获得他们对高效信息的需求,如何使用方便快捷的方式使查询者在广阔的海洋信息中查询,存储,管理和共享信息方面有效,对我们的工作和生活具有重要的现实意义。因此,国内外技术界对此进行了深入而广泛的研究,一个新的研究领域——旅游推荐系统诞生了。
1.3开发现状分析
本系统能够满足用户完成技术学习知识的要求,同时也能方便用户及时检查用户进度以及进行新的测评信息等功能。自适应性使用户不会在学习的旅途中感觉盲目,迷失方向。大大满足了用户学习的个性化,分数线工作时效性的双方面的要求。这些将会吸引大量用户对本系统的兴趣与爱好。并且此系统操作简单,在操作方面都会有说明进行提示,比如新技术的布置及其显示,完成技术的情况,用户的登录板块有专门的在线测评界面。管理权限的设置使的各自的功能实现起来更加简洁方便,不会使用户不知何处下手,只要是懂得上网和识字的用户都能够对本系统操作的游刃有余。
同时所开发的旅游推荐系统,它具有以下特点:
(1)实用性:方便分数线布置技术、批改技术和用户随时随地提交技术。
(2)操作简便:本系统适合分技术和用户使用,同时系统操作简单,而且系统不复杂繁琐。
(3)代码可读性好:文中的代码使用方便,简洁易懂。
1.4课题开发意义
目前许多人仍将传统的纸质工具作为信息管理的主要工具,而网络技术的应用只是起到辅助作用。在对网络工具的认知程度上,较为传统的office软件等仍是人们使用的主要工具,而相对全面且专业的旅游推荐系统的信息管理软件仍没有得到大多数人的了解或认可。达到对旅游推荐系统信息的高效管理。
通过Internet来实现旅游推荐系统服务,是现代旅游技术的一个具体实现,具有很重要的现实意义。旅游推荐系统代表了旅游改革的一个发展方向,已经成为现代旅游的一个特征,并对旅游的发展形成新的动力。可以实现用户在线提交技术的无纸张化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,随时随地的可以让用户联机操作提交。
1.5论文结构
(1)绪论
网站的开发背景,意义和系统状况等,详细讲述了APP的用处,对本章进行总结。
(2)系统开发技术的介绍
分别对python技术、关键技术和架构、MySQL和B/S进行详细介绍。
(3)系统分析
本章主要是对系统可行性、系统性能、还有系统功能需求进行分析。
(4)系统设计
对系统系统功能和数据库等进行详细讲解。
(5)系统的实现
(6)系统的测试
在系统编码实现后,就需要对系统进行检测,检测的方法有黑盒测试和白盒测试两种方式,本网站采用的是黑白盒测试方法对不同组的数据进行功能模块测试。
(7) 总结与心得体会
在论文最后结束章节总结了开发这个系统和撰写论文时候自己的总结、感想,包括致谢。

第二章 开发技术介绍

此系统的关键技术和架构,Python技术、B/S结构、Django框架和Mysql数据库,是本系统的关键开发技术,对系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。
2.1 系统开发平台
在该旅游推荐系统中,PyCharm能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其功能有比较灵活的数据应用,只需利用小部分代码就能实现非常强大的功能。因此,利用PyCharm 技术进行系统代码管理是该系统数据库的首选。
2.2 平台开发相关技术
2.2.1 Python技术
Python 是一个高层次的脚本语言结合了解释性、编译性、互动性和面向对象的。Python 的设计,相比其他语言经常使用英文关键字和其他语言的一些标点符号,它具有比其他语言更有特色语法结构,具有很强的可读性。
解释型语言:类似于PHP和Perl语言,这意味着开发过程中没有了编译这个环节。
交互式语言:可以在一个 Python 提示符 >>> 后直接执行代码。
面向对象语言:Python支持面向对象的风格或代码封装在对象的编程技术。
2.2.2 Mysql数据库介绍
利用Mysql的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
Mysql的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;Mysql的功能相对弱小、规模也小,但本系统要求不高,Mysql完全可以满足本系统使用。
利用Mysql建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。
2.2.3 Mysql环境配置
本系统的数据使用的是Mysql,所以要将Mysql安装到指定目录,如果下载的是非安装的Mysql压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\Mysql\bin\winMysqladmin.exe这个文件其中C:\Program Files\Mysql是Mysql安装目录。输入winMysqladmin的初始用户、密码(注:这不是Mysql里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动Mysql服务。
修改Mysql数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\Mysql\bin
Mysqladmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时Mysql 中账号 root 的密码被改为 123 安装完毕。
2.2.4 B/S架构
B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免学校的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。
在这里插入图片描述

图2-1 B/S模式三层结构图
2.2.5 Django框架
Django是一种开源的大而且全的Web应用框架,是由python语言来编写的。他采用了MVC模式,Django最初是被开发来用于管理劳伦斯出版集团下的一些以新闻为主内容的网站。一款CMS(内容管理系统)软件。并于 2005 年 7 月在 BSD 许可证下发布。这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的。
Django是Python语言中的一个web框架,并遵循MVC设计。Python语言中主流的web框架有Django、Tornado、Flask 等多种,Django相较与其它WEB框架,其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、文件管理、认证权限Session等功能,是一个全能型框架,拥有自己的Admin数据管理后台,第三方工具齐全,性能折中。Django的主要目的是简便、快速的开发数据库驱动的网站。

第三章 系统分析

3.1 可行性分析
一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本系统来补充线下旅游管理模式中的缺限,去解决其中的不足等,通过对本系统,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该系统能实现更大的意义和价值, 系统完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该旅游推荐系统的开发设计中,对技术、经济、操作方面进行了可行性分析。
3.1.1 技术可行性
本系统开发选择Python语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,Python俨然已成为下一代互联网的Web标准。所以后台设计选择使用Mysql,数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
3.1.2 操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.1.3经济可行性
基于Django框架的旅游推荐系统,该系统软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的旅游管理,同时还能实现对人力资源和管理资源的有效节约,该旅游推荐系统在经济上完全可行。
3.2性能需求分析
对系统的性能,从(功能、运行、界面、安全)等方面进行,下面我们逐一进行分析;

  1. 系统的功能是否完整进行分析:系统的功能,能对应设计出原始代码和算法,以表格同文字的形式进行详细介绍个人信息保证功能完整;
  2. 系统的运行是否通畅进行分析:系统的每个功能都有编写数据的关系和应对的代码,通过需求分析和可行性分析进行分析和显示系统的物理数据,保证其进行通畅;
  3. 系统的界面设计进行分析:对系统中的软件进行处理与分析的方式是由不同代码来进行的;从而使界面容易操作。
  4. 系统的安全性进行分析:这样才可以每个角色的不同对应的信息也就不同,在登录系统务必使用自己的账号,密码登录,账号与密码错误自然就登录失败了。登录成功可以对自己的信息进行操作,不能对别人的账号的信息进行查看等操作,这样自然保证系统的安全性。
    3.2 非功能性需求
    操作性:管理员可以根据操作手册,管理网站的后端管理系统,对网站的数据进行增删改查。用户可以根据自己的喜好,浏览网站,进行旅游推荐的操作。
    实用性:网站的研发对应诗词赏析具有很大的帮助,还可以产生巨大的经济效益。
    可移植性:网站采用的B/S模式,可以在任何的电脑随时访问网站地址。可以移植到各个开发平台。
    高并发:系统可以同时让1000多个用户同时对网站进行访问,并同时在线测试,系统没有任何宕机,说明网站负载力很强。
    安全性:网站的所有数据采用https的网络传输,用户的账号密码采用更加复杂的加密方式进行,更加安全。另外网站还有数据备份操作,可以随时对数据进行热备份,以防数据丢失,造成损失。
    正确性:系统杜绝出现操作的重大错误,和网站的业务逻辑的错误。
    性能:网站采用超大带宽,和高性能的服务器。
    兼容性:网站在测试之初,采用大量和随机抽取的测试,在不同的操作系统,不同品牌电脑软件硬件上进行运行和操作。
    3.3 运行环境
    旅游推荐系统开发之前,进行探讨,为了使网站能长久使用,采用如下的软件和硬件环境。主要从服务器的主机,网络数据,存储磁盘来进行简单的分析。
    (1)网站的服务器,主要采用阿里云云端服务器,阿里云主要性能好,I7,四核CPU,10G内存。云端的数据库存储,主要用MYSQL数据库,此数据库非常实用。
    (2)网络类型,采用宽带传输数据,通过以太网进行网络链接。
    (3) 旅游推荐系统云端服务的储存容量,选择1000G以上,mysql服务器采用100G以上。
    (4) 客户端,采用各个pc端电脑访问网站,pc端用户采用最新的谷歌版本的浏览器,还有最新高配的计算机。

3.4 系统特色
旅游推荐系统在设计之时,选择bs架构模式,之所以不考虑c/s架构模式,是因为,现在生产生活中运用b/s模式的软件系统十分多。用的人多的模式,对应后期的开发维护十分有利,而且b/s浏览器模式,可以减少客户下载客户端到电脑,这点对用户来说十分的便捷。用户可以随时随地打开浏览器访问系统,可以通过手机浏览器,平板和电脑等。
最后系统还需要考虑负载均衡,因为很多网站设计之时,过于简单,没有考虑后期大量增长的用户量,导致网站因为人数超负荷的访问宕机,所以我们需要设计出解决服务器压力的问题,选择队列技术进行技术的升级,保证系统的负载性能[5]。

第四章 系统设计

4.1功能结构
为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该旅游推荐系统的功能结构图如下所示:
在这里插入图片描述

图4-1 系统总体结构图
4.2 数据库设计
4.2.1 数据库E/R图
一个完整的数据分析过程与这个数据库的逻辑结构和物理结构有十分密切的联系,需要完成对应用数据库的信息进行确认、编纂、组织、挑选。我们可以采用特定的方法来获取有关员工的所有的有效信息,从而使这些有用信息可以直接成为数据库的重要数据[13]。
我们在数据库分析中采用E-R图来建立相对应的关系,它有实体、关系、属性三种概念。实体可以说是一个用来维持和不断利用数据的大集合;属性可以说是这个物体的所具有的特点;关系很明显指的就是每个数据实体之间的种种联系,关系给各个实体之间建立起了相对应的模型。根据系统的需求分析和数据库的概念,建立E-R图。
系统总体E-R图。
在这里插入图片描述

4.2.2 数据库表
数据库表的设计,如下表:
config
表注释: 配置文件
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
name varchar(100) 否 配置参数名称
value varchar(100) 是 NULL 配置参数值
discussshicishangxi
表注释: 诗词赏析评论表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
refid bigint(20) 否 关联表id
userid bigint(20) 否 用户id
nickname varchar(200) 是 NULL 用户名
content longtext 否 评论内容
reply longtext 是 NULL 回复内容
exampaper
表注释: 学习测试表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
name varchar(200) 否 学习测试名称
time int(11) 否 考试时长(分钟)
status int(11) 否 0 学习测试状态
examquestion
表注释: 试题表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
paperid bigint(20) 否 所属学习测试id(外键)
papername varchar(200) 否 学习测试名称
questionname varchar(200) 否 试题名称
options longtext 是 NULL 选项,json字符串
score bigint(20) 是 0 分值
answer varchar(200) 是 NULL 正确答案
analysis longtext 是 NULL 答案解析
type bigint(20) 是 0 试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空)
sequence bigint(20) 是 100 试题排序,值越大排越前面
examrecord
表注释: 考试记录表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 用户id
username varchar(200) 是 NULL 用户名
paperid bigint(20) 否 学习测试id(外键)
papername varchar(200) 否 学习测试名称
questionid bigint(20) 否 试题id(外键)
questionname varchar(200) 否 试题名称
options longtext 是 NULL 选项,json字符串
score bigint(20) 是 0 分值
answer varchar(200) 是 NULL 正确答案
analysis longtext 是 NULL 答案解析
myscore bigint(20) 否 0 试题得分
myanswer varchar(200) 是 NULL 考生答案
fengge
表注释: 风格
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
fengge varchar(200) 否 风格
forum
表注释: 诗词论坛
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
title varchar(200) 是 NULL 帖子标题
content longtext 否 帖子内容
parentid bigint(20) 是 NULL 父节点id
userid bigint(20) 否 用户id
username varchar(200) 是 NULL 用户名
isdone varchar(200) 是 NULL 状态
news
表注释: 诗词资讯
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
title varchar(200) 否 标题
introduction longtext 是 NULL 简介
picture varchar(200) 否 图片
content longtext 否 内容
qinggansecai
表注释: 情感色彩
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
qinggansecai varchar(200) 否 情感色彩
shicifenlei
表注释: 诗词分类
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shicifenlei varchar(200) 否 诗词分类
shicishangxi
表注释: 诗词赏析
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shicimingcheng varchar(200) 否 诗词名称
zhuti varchar(200) 是 NULL 主题
fengge varchar(200) 是 NULL 风格
zuozhe varchar(200) 是 NULL 作者
tupian varchar(200) 否 图片
shicifenlei varchar(200) 是 NULL 诗词分类
qinggansecai varchar(200) 是 NULL 情感色彩
chaodai varchar(200) 是 NULL 朝代
yinpin varchar(200) 是 NULL 音频
shipin varchar(200) 是 NULL 视频
yiwen longtext 是 NULL 译文
zhushi longtext 是 NULL 注释
shangxi longtext 是 NULL 赏析
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
clicktime datetime 是 NULL 最近点击时间
clicknum int(11) 是 0 点击次数
storeup
表注释: 收藏表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 用户id
refid bigint(20) 是 NULL 收藏id
tablename varchar(200) 是 NULL 表名
name varchar(200) 否 收藏名称
picture varchar(200) 否 收藏图片
type varchar(200) 是 1 类型(1:收藏,21:赞,22:踩)
inteltype varchar(200) 是 NULL 推荐类型
users
表注释: 用户表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
username varchar(100) 否 用户名
password varchar(100) 否 密码
role varchar(100) 是 管理员 角色
addtime timestamp 否 CURRENT_TIMESTAMP 新增时间
yonghu
表注释: 用户
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
zhanghao varchar(200) 否 账号
xingming varchar(200) 否 姓名
mima varchar(200) 否 密码
xingbie varchar(200) 是 NULL 性别
nianling int(11) 是 NULL 年龄
shouji varchar(200) 是 NULL 手机
youxiang varchar(200) 是 NULL 邮箱
touxiang varchar(200) 是 NULL 头像
zhuti
表注释: 主题
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
zhuti varchar(200) 否 主题

第五章 系统功能实现

5.1登录模块的实现
管理员输入用户名和密码,下拉选择框,选择用户权限,然后点击立即登录,系统与保存在数据库的数据进行匹配,如果用户名与密码与数据库存放数据匹配,系统跳转到用户页面,否则提示错误重新跳转到登录页面。图5.2系统登录界面。
在这里插入图片描述

图5.1系统登录界面
5.2系统首页管理模块
管理员子系统模块主要包括对系统首页、个人中心、会员管理、景点信息管理、酒店信息管理、酒店预定管理、行程分享管理、旅游景点管理、交流论坛、系统管理模块。
个人中心是可以进行添加个人中心管理员操作。添加管理员时,需要分别设置个人信息,个人信息不能为空,设置密码,在下拉选择框中选择权限。该模块还具备查询所有用户列表,可以编辑修改列表中个人的资料,包括用户名、密码和权限。图5.2是添加个人中心界面。
在这里插入图片描述

图5.2个人中心界面
5.3会员管理模块
会员管理是可以进行添加会员管理操作。在文本框输入所要添加的会员管理名称,然后提交即可,输入错误可以点击重置按钮对文本框重置。图5.3是添加会员管理界面。
在这里插入图片描述

图5.3 添加会员管理界面

5.4景点信息管理模块
景点信息管理是可以进行添加景点信息管理操作。添加景点信息管理时,需要设置景点信息管理基本信息,然后提交即可,输入错误可以点击重置按钮对文本框重置。图5.4是添加景点信息管理界面。
在这里插入图片描述

图5.4添加景点信息管理界面
查询所有酒店信息管理列表,查询酒店信息管理,并对酒店信息管理进行修改,可以对列表中酒店信息管理进行删除。图5.5是酒店信息管理查询界面。
在这里插入图片描述

图5.5查询酒店信息管理界面
5.6酒店预定管理模块
酒店预定管理是可以列表中进行添加酒店预定管理操作。添加酒店预定管理时,需要设置酒店预定管理基本信息,然后提交即可,输入错误可以点击重置按钮对文本框重置。图5.6是添加酒店预定管理界面。
在这里插入图片描述

图5.6添加酒店预定管理界面
查询所有旅游景点管理列表,查询旅游景点管理,并对旅游景点管理信息进行修改,可以对列表中旅游景点管理进行删除。图5.7是查询旅游景点管理界面。
在这里插入图片描述

图5.7查询旅游景点管理界面

第六章 系统测试

系统测试是软件开发过程中最后一步,但也是不可或缺的重要的一步,没有人可以保证一次性编写完成的系统不会出错,而系统测试就是将自己开发的系统成为成品前的最后一步。在测试过程中需要进行严谨细致的测试,要尽可能全面地在不同情况下运行该系统,排除一切出现错误的可能。
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,然后单击登录进行操作,会出现两种情况:一种情况是登录成功,进入用户相应的功能界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;

测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,然后单击登录进行操作,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。一种情况是登录成功,进入管理员界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;

6.1 测试概述
旅游推荐系统从开发到结束历时2个多月,系统全部完成,但是还需要完整的测试,杜绝网站商业运作时出现重大错误,导致宕机,造成损失。系统研发和测试一般都是同时开始进行的。所以我们的测试人员必须在对需求阶段进行分析和简单的验证测试。所以此篇进行功能测试和非功能性测试。从测试方向,进行深入的测试,解决网站的bug,从而使系统完善。下面对系统测试进行分析说明。
6.2 测试目的
1.目标:
设计这个系统的目标是为了方便考勤的用户和管理员更加方便的使用旅游推荐系统,从而可以大大提高工作效率。系统成熟之后可以向其他旅游推荐系统进行推广可以带来经济利益。
2.运行环境:
主要开发软件有PyCharm、MySQL、Navicat、python。
1.限制:这次系统的测试可能出现安全隐患,从而可能泄露用户和景点的信息。对于用户来说,使用上受到了限制。
2.输入:在系统上用户可以输入会员管理、考勤系统、异常反馈等等信息,有助于正常的使用系统。
3.输出:在系统上用户可以输出异常反馈、反馈回复、系统信息等等,管理员可以对这些内容进行审核。
4.过程:各种新老用户可以在系统上登录使用,正常操作之后对系统进行测试。
5.结果:系统测试结果显示各项功能基本正常,但是还有一些小bug需要修改。
6.3 模块测试
6.3.1 登录测试
登录模块需要测试的功能有:输入登录名和密码,点击“登录”按钮是否正常进入系统首页。登录测试用例如下表所示。
表6-1登录测试用例
测试模块 用户登录模块测试
测试目的 测试当登陆信息输入不符合要求时,系统是否能进行相应处理并给出提示。
测试方法 黑盒测试
测试数据 1不输入用户名和密码,直接点击登陆。
2输入未注册过的用户名。例如:abcdefg
3输入正确用户名,错误密码。例如:用户名abcdefg、密码 000
4输入正确用户名,正确匹配密码。例如:用户名abcdefg、密码 111
预期结果 1 界面不跳转,弹出对话框,提示用户输入必填项。
2界面不跳转,弹出对话框,提示用户当前用户名尚未注册。
3界面不跳转,弹出对话框,提示用户密码错误。
4界面实现跳转,登陆功能正常进行。
实际结果 与预想一致。
结论 登陆模块实现了基本的异常输入应对。
6.3.2 会员管理测试
会员管理模块需要测试的功能有:会员账号、会员姓名、性别、会员电话、头像、注册时间。会员管理测试用例如下表所示。
表6-2会员管理测试用例
测试模块 会员管理模块测试
测试目的 对会员信息进行管理操作后是否正常。
测试方法 黑盒测试
测试步骤 1点击会员管理菜单,查看会员列表信息是否正常显示。
2点击添加会员操作,输入基本信息后,查看数据是否存入数据库中且在列表正常显示
3任选一条记录点击修改,修改个别基本信息,保存后,查看数据是否修改成功
4任选一条记录点击删除,删除后,查看数据是否删除成功
预期结果 1 页面显示会员基本信息列表。
2信息保存成功且在列表中显示。
3信息修改成功且列表中对应的信息显示修改后信息。
4信息删除成功且列表中无对应数据。
实际结果 与预想一致。
结论 会员管理模块实现了对会员信息的基本管理操作。
6.3.3 景点信息管理测试
景点信息管理模块需要测试的功能有:景点名称、景点分类、景点地址、景点等级、封面、点击次数。景点信息管理测试用例如下表所示。
表6-2景点信息管理测试用例
测试模块 景点信息管理模块测试
测试目的 对景点信息信息进行管理操作后是否正常。
测试方法 黑盒测试
测试步骤 1点击景点信息管理菜单,查看景点信息信息列表信息是否正常显示。
2点击添加景点信息信息操作,输入基本信息后,查看数据是否存入数据库中且在列表正常显示
3任选一条记录点击修改,修改个别基本信息,保存后,查看数据是否修改成功
4任选一条记录点击删除,删除后,查看数据是否删除成功
预期结果 1 页面显示景点信息管理基本信息列表。
2信息保存成功且在列表中显示。
3信息修改成功且列表中对应的信息显示修改后信息。
4信息删除成功且列表中无对应数据。
实际结果 与预想一致。
结论 景点信息管理模块实现了对景点信息信息的基本管理操作。

6.4 测试总结
1.在这次系统测试中使用了三个版本,其中版本1的bug数处于20到25之间,排名第一;版本2的bug数是10个,数量最少;版本3的bug数是20个,处于版本1和版本2之间。测试结果如图6.5所示。

在这里插入图片描述

图6.5 按版本统计bug数

2.在这次系统测试中分为4个等级,分别是A、B、C、D等级,其中A等级的bug数处于10到15之间,数量最少;B等级的bug数是处于15到20之间,排名第二;C等级的bug数是处于25到30之间,数量排名第一;D等级的bug数是15个,在四个等级中排名第三处。测试结果如图6.6所示。
在这里插入图片描述

图6.6按问题等级统计bug数

3.在这次系统测试中分为3个类型,分别是功能、性能、可用性,其中功能型的bug数处于14到16之间,数量最多;性能型的bug数是10个,排名第二;可用性类型的bug数是处于4到6之间,数量最少。个等级中排名第三处。如图6.7所示。
在这里插入图片描述

图6.7按类型统计bug数

第七章 总结

本系统是基于Python实现的B/S模式旅游推荐系统,其主要功能符合系统的需求,不过由于本系统是我第一次开发的项目,在经验和知识方面都有所不足,这些可能导致系统还存在很多问题和缺陷。
但是在做毕业设计的过程中,我学到了很多。虽然自己之前并没有很好的了解跟熟悉系统开发的整个过程,不过经历了这次开发,我基本上对这些开发过程都有所了解和体会。一个好的项目,首先要对需求进行详细的调研,只有在很好的了解了系统的需求才有可能把项目做好。
测试在一个项目中,也是非常的重要,测试时需要心细,考虑问题要周全。刚开始测试的时候遇到好多问题。比如用户登录进去,没有显示名字。提交景点信息总是出现问题等等。有可能在做的过程并没有考虑到这些问题,通过测试就能体现自己做的有哪些不足,有哪些需要改进。在整个过程中自己学到了很多东西,做事情要从多方面考虑。在开发中还让我学会了应如何使用网络并且要善于利用网络资源,其实很多问题都可以通过网络来得到解决的。
7.1 总结
针对当下旅游推荐系统的人们群体而设计的此系统,在我们开发系统之初时,设计了旅游推荐系统双端模式,即为前端和后端管理端,前端有用户功能模块,后端主要为管理员登陆的,管理整个系统的功能和数据。有两大角色,用户与管理员组合成完整的旅游推荐系统。在最开始的阶段,其他类似网站是一个非常好的参照体,进行整体的功能需求和性能需求的梳理和设计。还可以对课程进行增删改的操作。最后这个系统项目在完成之后经测试有不少的bug和设计的缺陷,导致系统运行时有很多的不足,我们需要根据这些问题,认真研究,好好解决问题,不断的弥补缺陷,改进系统,优化体验。所以项目有优点和缺点,我们根据各自的优缺点,来进行详细的描述[9]。
在优点方面上,提供了旅游推荐系统,此系统操作方便,没有经验的工作人员,简单培训就会使用系统,系统的界面简洁,看起来非常美观,操作性十分强,个性也独特。另外此系统是个非常实用的网站,极大的方便了人们对课程知识的了解,节省了用户的时间。从系统的设计之初,我们便考虑到系统如何吸引用户,为了获得的更多的用户资源,我们便参考网上众多的类似旅游推荐系统,取其精要,去其缺点,便设计了界面简洁,有学习特色,操作简单,功能完善的系统。在缺点方面上,系统是单一独立运行,没有能力抵抗网络病毒恶意的攻击,网络访问负载能力有限,不能抵抗同一时间段众多用户的浏览,所以我们要加大服务器的缓存和配置。另外吸取其他类似的旅游网站缺点,杜绝类似的问题在生产运用中提现。但是系统有很大不足,
例如功能不够完美,有时候会出现bug,导致系统不能正常的访问,还有界面不够高大上,不够美观,总感觉给人的视觉体验不够好。其次没有运用很好地缓存技术,当同一时间段,在线客户众多,系统会出现卡顿,甚至会严重到宕机。所以需要通过优化程序代码来提高客户的体验,杜绝客户体验不流畅,导致客户流失。在客户访问量问题上,我们利用最新技术,比如缓存机制等,来解决超载的客户。另外,在前端技术方面,我们采用前后端分离技术,用vue框架,实现前端运行和后端运行的分离,只需要通过vue来实现数据的传递,大大减少前后端的结合和冗长代码,其次vue能大大提高客户的体验感。除此之外,系统还有其他体验不佳之处,我们需要针对之类的问题,重新构建网站的架构,选择适合系统功能需求的设计架构方案,让程序运行更加的完美。
7.2 展望

通过几个月时间的学习和开发,尤其在开发过程中亲身经历的实践,我学到了很多知识,运用这些知识解决开发中的问题,终于完成了毕业设计的开发。本次毕业设计提供了一个将所学和实践相结合的机会,真正的检测了我们对所学知识的掌握和实际运用情况。刚开始做旅游推荐系统系统的时候我也无从下手,为了能顺利完成此课题设计,我需要学习很多论文写作知识,需要查阅很多文献资料,来辅助论文的撰写,也在查找并学习了很多技术操作,这才大致通过逻辑结构建立起了框架。随着经验开始丰富,我慌张的心也开始平复,逐渐开始得心印手起来,但是还是会遇到麻烦。我也时不时的去求助指导老师王红强和胡贤德老师,在他们的帮助下我解决了遇到的难题。但是由于我缺乏实际经验,所以系统还存在不少瑕疵,这虽然是一个遗憾,但也是促使我不断进步的力量。我很高兴经过这次毕业设计提高我的动手能力和实践操作能力,也很高兴有这次机会将我的所学大学知识点,能够完全的总结,然后在社会实践中运用,合理运用所学,可以对我日后社会中工作生活提供很大的帮助[10]。

致 谢

在系统全部完成之际,我非常感谢在毕业设计时给予我帮助的人。没有他们的帮助,就没有我能够顺利的完成毕业设计。
首先,要对我的导师致以衷心的感谢!在论文撰写及设计过程中,老师对我严格要求,认真指导,给予了我很多帮助,让我从中学到了许多宝贵的经验,在系统设计中,老师也给予了很多意见和帮助,他在百忙之中抽出时间,对我认真指导,在系统设计和实现的过程中给了我很多技术上的支持并帮助我解决了许多实际问题,使我能够顺利地完成设计。在开发旅游推荐系统的过程中,巩固以前所学的知识,提高了应用能力;使我能够独立思考,全面分析,灵活运用所学知识,解决许多细节问题,也使自己的理论水平得到了进一步的提高。同时,对心理素质的锻炼和工作作风的培养,将给我今后的工作和学习带来巨大的影响,有助于今后的工作与生活,使我受益匪浅。在此,我真诚地感谢老师给予我的帮助!
其次我需要感谢的是我的父母,在整个毕业设计期间,是我的父母,作为在毕业设计期间最强有力的后盾,我可以全身心的去关注、去撰写我的毕业设计论文。在大用户活中我的每时每刻都离不开来自于我的父母的全力支持和关心。
过程永远比结果重要。毕业设计是大用户活中最为浓墨重彩的一笔,在这个过程中不仅学到更为全面的书本和实践知识,更让我感受到了浓浓的同窗之情及师生情。虽然大学四年间做过不少实验作业,但是独立完成这样一个操作系统还是第一次,遇到困难时理所当然,我也有所心理准备,但是超出自身能力的部分还是需要寻求教师及同学的帮助。在此,我衷心地感谢我的指导教师,可以说,没有教师我就不能顺利完成这次设计。他总是在一筹莫展的时候为我指引方向。比如在开题报告,我的指导教师就细致地指导我该怎么有逻辑地将自己的想法和做法表达清楚,在此由衷感谢他。在设计的过程中,教师百忙之中也乐于给予我指导,不管多晚给教师发消息,不管是不是上班时间去教师办公室寻求帮助,他总能在第一时间对我施以援手,由于我在设计期间需要离校实习,不能及时到教师办公室检查设计进度,当时已经是晚上6点多,我匆匆赶到办公室时,教师依然在伏案办公,桌上是同学们的中期检查报告,检查完毕业设计后,他又继续查看同学们的中期报告,并督促我及时上交报告。教师给的意见总是一针见血地指出我设计及论文中的不足,并举例详细说明我的改进方法,不得不佩服他的学术水平及教学水平。在我开始着手实现这个设计的时候,通过需求分析及可行性分析对该系统有了较为浅显的认识;但是在我真正开始实现时发现事情并没有这么简单。任何成功都不是一蹴而就的,就算是一个简单的毕业设计也需要日积月累的知识和经验。于是,我便去寻求老师和同学的帮助,这也使得我得以从不同的角度重新考虑我的设计。终于,这个系统在我内心有了雏形。在真正实现这个设计的过程中,学习新知识是必定的,同时那些由于时间关系或者本来就没有掌握牢固的知识也有了进一步巩固的机会。然而最重要的是了解到如何作为一个开发人员,以开发人员的思维来看待软件开发的步骤和方法策略。
本次毕业设计的完成预示着大学时代的句号,在这个设计过程中,我收获到的绝不仅仅是做项目过程中要到的知识,更多的是同窗情谊和师生情谊,最重要的是做任何事情都要具备的认真态度,以及真正职业的思考方式方法。
之后,我要感谢的是全体软件工程系的大力协助,在大学的四年间,您们严谨的教学态度和科学的工作方法对我们的成长有很重要的影响。没有您们为我们无私的传授知识和获取知识的方法,就没有我们能够在软件行业立足的基础。
最后我要感谢的,是我们的学校。不仅教育我们知识,对我们的思想道德的培养更多。使我们不仅能够做一名合格的大用户,更能在走出校园时,能够成为一名合格的社会人。

参考文献

1]张海藩 网站管理系统的分析与设计[D].厦门大学,2016
[2]丁宝康 信息管理系统[D].电子科技大学,2018
[3]孙印杰 信息管理系统的设计与实现[D].电子科技大学,2017
[4]马宁 基于Python的网站管理系统分析与设计[D].云南大学,2017.
[5]求是科技 Python信息管理系统开发实例导航[M].人民邮店出版社.2015
[6]杨宗志 Python入门与实作[M].科学出版社,2018
[7]曹锰 舒新峰 C#与Python程序设计[M].西安交通大学出版社,2017
[8]虞益诚 SQL Server 2000[M].中国铁道出版社,2019[9]董征宇 我国中小学校电子商务盈利策略探析[J].中国商贸,2018,22:94-95
[10]张爱军 电子商务技术的创新发展趋势[J].电脑知识与技术,2016,26:61-67
[11]马桂林 中小音乐学校经销商电子商务管理系统的设计[J].价值工程,2018,23:148-149
[12]蔡翔宇 电子商务与计算机网络应用[J].计算机应用研究,2017,2:366
[13]西尔伯沙茨(Silberschatz.A.) 计算机科学丛书:数据库系统概念(原书第6版)[M]. 机械工业出版社,2017,03..
[14]萨师煊 王珊 数据库系统概论[M].北京:高等教育出版社,2017:10-180.
[15]陈刚 PyCharm从入门到精通[M].(第2版).北京:清华大学出版社,2018:17-380.

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_1406299528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值