旅游信息系统的设计和实现Java毕业论文.doc
本科毕业论文旅游信息系统的设计和实现马泽锐200930690119指导教师 司徒浩臻 讲师学院名称信息学院 专业名称软件工程论文提交日期2013年4月30日 论文答辩日期2013年5月18日摘 要个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品。这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的消费者不断流失。为了解决这些问题,个性化推荐系统应运而生。随着网络技术的发展,旅游业与计算机网络紧密结合,形成了一种全新的旅游形式网络旅游。据统计:全球约有17万家旅游企业在网上开展综合、专业、特色的网站服务;全球约有8500万人次以上享受到旅游网站服务。然而,在国内,网络旅游的发展程度与国外还存在一定的差距。因此,研究我国网络旅游的发展现状,分析其存在的问题,提出促进我国网络旅游发展的对策具有重要的意义。本旅游信息系统,主要采用后台管理,前台展示推荐的方式设计,通过后台页面对旅游线路信息,旅游租车信息,旅游酒店信息,旅游图片信息的增加、删除、修改、查询操作,并在前台页面上进行推荐展示,达到将用户最关心,最感兴趣的旅游信息通过本系统显示出来。本旅游信息系统主要采用的推荐方法有三种:基于评价的推荐方法,基于用户注册信息的推荐方法和基于关键字的推荐方法。使用了上述推荐方法之后,使得本旅游信息系统变得更加智能化、个性化、自动化,这也是本旅游信息系统设计的一个主要目标。本系统的一个重点,也是难点就是大数据量的查询。在一个系统之中,查询是必不可少的功能,而查询设计的好坏,又直接决定了系统的性能的优越与否。本系统巧妙的采用了两种方式来解决这个问题,第一个方法是:在HQL语句上进行优化,尽量不要全表扫描,尽量避免多表联合查询,这样能够提高数据库查询的速度;另一个方法是:设计Hibernate的数据缓存机制,先把查出来的数据存到缓存中去,以后去取的话就可以节约很多时间了,这样能够迅速提高二次查询的速度。关键词:旅游信息系统 旅游推荐 大数据量数据优化Tourism Information SystemMa Zerui(College of Information, South China Agricultural University, Guangzhou 510642, China)Abstract: Personalized recommendation is based on the characteristics of user's interest and purchase behavior, information recommendation user interest to users and commodities. With the development of e-commerce, goods number and types of rapid growth, the customer needs to spend a lot of time to find you want to buy. In order to solve these problems, a personalized recommendation system emerge as the times require.With the development of network technology, tourism is closely combined with the computer network, the formation of a new form of Tourism characteristics in the online services; there are around more than 85000000 passengers enjoy travel website service. However, in China, there is still a gap between the level of development of tourism and foreign network. Therefore, the study on the development of the network of tourism in China, analyzed the existing problems, has the important countermeasures are put forward to promote the tourism development of China network.The tourism information system, mainly uses the backstage management, design front display the recommended way, through the back page for tourist route information, tourist information, Turisthotellet information, increase, delete, modify the tourism image information, query, and display recommended in the front page, the users are most concerned about, the tourism information interest through the system display. After the use of the recommended method, the tourism information system becomes more intelligent, personalized, automation, one of the main goals of the tourism information system design.A key point of this system, which is also a difficult problem, is the large amount of data query. In a system, the query is essential for the function, and the query design directly determines the performance of the system. This system uses two ways to solve this problem. Firstly: optimization in the HQL statement,avoiding full table scans and multi-table union-inquiry, this can increase the speed of database query. Secondly, the data caching mechanism of Hibernate is used to keep the data, and save a lot of query time. This can rapidly improve the query speed.Keywords: Tourism Management System Tourism comment large data query optimzation目 录1 引言31.1 选题背景31.2 目的和意义31.3 可行性分析41.3.1 技术可行性41.3.2 经济可行性41.3.3 运行的可行性42 需求分析52.1 开发环境及工具52.2 系统的业务分析52.2.1 系统流程图52.2.2 系统用例图72.3 系统的具体需求82.3.1 系统前台页面业务逻辑92.3.2 系统后台页面业务逻辑142.4 系统性能需求193 概要设计203.1 具体实现的技术203.2 功能结构的思想设计213.2.1 系统的推荐方法213.2.2 系统的功能结构图223.3 系统数据流图223.4 系统数据字典234 详细设计244.1 数据库设计244.2 功能模块设计284.2.1 管理员与会员模块284.2.2 旅游线路信息模块304.2.3 图片信息模块334.2.4 用户评论模块354.2.5 酒店和租车信息模块374.3 网站安全394.3.1 数据库安全模块设计394.3.2 安全通讯协议394.3.3 系统整体性安全405 系统测试415.1 系统测试的原则415.2 系统测试的方法415.3 系统测试的结果426 大数据量查询优化436.1 大数据量查询优化436.1.1 Hibernate缓存的简介436.1.2 Hibernate二级缓存的适用性436.1.3 Hibernate缓存的配置方法447 总结归纳45参考文献46致谢471 引言1.1 选题背景随着互联网的发展,人们正处于一个信息爆炸的时代。相比于过去的信息匮乏,面对现阶段海量的信息数据,对信息的筛选和过滤成为了衡量一个系统好坏的重要指标。一个具有良好用户体验的系统,会将海量信息进行筛选、过滤,将用户最关注最感兴趣的信息展现在用户面前。这大大增加了系统工作的效率,也节省了用户筛选信息的时间。一个好的信息系统一方面能够帮助用户发现对自己有价值的信息,另一方面能够让信息能够展现在对他感兴趣的人群中,从而实现信息提供商与用户的双赢(连漪,梁健爱,2007)。旅游业具有“无烟产业”和“永远的朝阳产业”的美称,它已经和石油业、汽车业一起成为世界三大产业。随着网络技术的发展,旅游业与计算机网络紧密结合,形成了一种全新的旅游形式网络旅游。网络旅游是兴起于20世纪末的一种现代旅游方式。据CNN公布的数据:旅游业电子商务销售额突破270亿美元,占全球电子商务销售总额的20以上;全球约有17万家旅游企业在网上开展综合、专业、特色的网站服务;全球约有8500万人次以上享受到旅游网站服务;全球旅游电子商务连续5年以350以上的速度发展(李江风,2003)。1.2 目的和意义对旅游业这个行业而言:促进旅游业朝着信息化,技术化,成熟化的方向发展,做到与时俱进,做到与世界接轨;对游客而言:通过提供旅游信息系统这个平台,给用户带来各种各样的方便,用户不再需要跑旅游社就可以体验旅游的信息,甚至可以推荐出一些更加适合旅客的信息,从而实现系统的个性化,智能化。对本人而已,通过这个旅游信息系统,不仅仅可以了解到旅游业的相关信息,而且可以掌握到系统开发的相关技术。在这个旅游信息系统中,主要采用后台管理,前台展示推荐的方式设计。通过后台对旅游线路信息,旅游租车信息,旅游酒店信息,旅游图片信息录入,并在前台页面进行推荐展示,达到将用户关心的旅游信息通过系统显示出来的目的。用户在登陆此系统后,不用去旅行社,便可以看到旅行社推荐出来的线路信息,从而实现信息化、推荐化管理的目标(应莉,朱艺华,2008)。1.3 可行性分析1.3.1 技术可行性根据系统功能、性能及实现系统的各项约束条件,一般可从硬软件的性能要求、环境条件、操作人员水平和数量等方面考虑和分析。本系统是一个向用户展示旅游信息的系统,现有的技术已经较为成熟,硬件、软件的性能要求、环境条件等各项条件要求相对较低,利用现有技术条件应完全可以达到该系统的功能目标。在硬件方面,CPU :I5处理器、32MHz或更高。内存:16GB可用内存。硬盘:1TB以上可用磁盘空间。显示器:可达800×600像素的256色显示器。当然,硬件的配置越高,系统的开发与运行会更流畅。系统在硬件方面是可行的。在软件方面,有Macromedia Dreamweaver 8和MYSQL,操作系统Windows系列操作系统或者Linux系列操作系统,浏览器:Firefox系列,IE系列,谷歌系列或其更高版本浏览器即可。无论在安全性、可用性、可靠性还是可扩展性都是毫无疑问的,因此软件方面是可行的。1.3.2 经济可行性本系统使用的基本开发工具为MyEclipse,MYSQL(数据库软件),IIS (Internet 信息服务器),Dreamweaver 8和Photoshop 7等软件。他们都是网络提供的免费软件。系统投入使用后,只需系统管理员登陆后台管理系统进行相应操作:对系统信息和数据做更新、修改、删除就可完成对系统的维护和管理。如果用户能够可以通过网上直接登陆本旅游信息管理系统,这样将会为旅游行业带来立竿见影的效果,能大大的提升旅游行业的业务量,使旅行社获得丰厚的利润,收益将远远大于投资。1.3.3 运行的可行性本系统的发布适合市场空间,占据市场的寿命长,管理员会不断及时更新,随时了解同行业系统的动态。系统初试规模小,点击率少,不可求速,欲速则不达,我们要循序渐进,关注、了解旅游信息的最新动态,运用网络的方便快捷方式进行浏览网页以及发布旅游信息,配备新式设计思想。2 需求分析2.1 开发环境及工具(1)开发环境硬件环境:PC服务器作为Web和数据库服务器,配置需求(CPU 4 × 2GB MHz I5系列处理器;内存 16GB内存 ;硬盘:1TB及以上 );PC机作为各部门用户的前端,配置需求(CPU 2GB、内存 4GB)。软件环境:服务器端安装Linux操作系统,MYSQL数据库,JDK,MyEclipse;Apach Tomcat;Web服务器安装Window系列的操作系统;支持TCP/IP协议系列的浏览器。(2)开发工具MyEclise:MyEclipse 是一个十分优秀的用于开发Java,J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属Eclipse开发工具。2.2 系统的业务分析2.2.1 系统流程图系统流程图(System Flowchart)是描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。特别注意:系统流程图表达的是系统各部件的流动情况,而不是表示对信息进行加工处理的控制过程。下面介绍本旅游信息系统的两个流程图,主要有后台管理员的操作流程图和前台会员的操作流程图。本旅游信息系统采用台后台管理,前台展示的方式设计的。首先,后台管理员输入用户名和密码登陆后台管理系统,进入系统后通过增加,删除,修改及查询数据库的方式,对用户信息,旅游线路信息,旅游图片信息,用户评论信息,旅游酒店信息,旅游租车信息进行后台的增加操作,删除操作,查找操作,修改操作,达到后台修改的目的。具体的后台管理员操作流程图如图1所示:图1 后台页面操作流程图前台页面主要是向用户展示后台录入的信息。前台页面主要分六个部分:用户注册及登陆,旅游路线信息展示,旅游图片信息展示,用户评论,旅游租车信息展示,旅游酒店信息展示六个部分。其中本系统核心部分为旅游线路信息的展示,主要包括周边旅游路线,国内旅游路线,境外旅游路线和个性化推荐4个页面。其中,周边旅游路线,国内旅游路线,境外旅游路线是以列表的形式展示出来。列表排列的顺序是按照用户投票的数目由多到少推荐展示出来,达到线路推荐的目的。而个性化推荐采用了基于用户统计和基于内容的推荐算法,将用户的注册时候输入的个性关键词和具体线路关键词进行匹配,将结果推荐给用户,达到个性化推荐的目的。前台页面的具体操作流程图,如图2所示:图2 前台页面操作流程图2.2.2 系统用例图用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。本旅游信息管理系统中,主要采用后台管理,前台推荐的方式设计。通过后台对旅游线路信息。旅游租车信息,旅游酒店信息,旅游图片信息录入,并在前台页面进行推荐展示,达到将用户关心的旅游信息通过系统显示出来的目的。其主要包含以下六个模块:用户理模块,线路管理模块,图片管理模块,酒店管理模块,租车管理模块,评论管理模块。由于旅游线路信息包含了租车信息和酒店信息,因此,核心模块线路管理模块使用到了酒店管理模块和租车管理模块具体的用例图如图3所示:图3 顶层用例图其中,每个模块,包括用户模块,图片管理模块,线路管理模块,租车管理模块,图片管理模块,酒店管理模块,评论管理模块都有自己的用例图,它们分别可以实现增加,删除,修改,查询功能,具体的用例图如图4所示:图4 其他模块用例图2.3 系统的具体需求本旅游信息系统中,主要采用后台管理,前台推荐展示的方式设计。通过后台对旅游线路信息,旅游租车信息,旅游酒店信息,旅游图片信息录入,并在前台页面进行推荐展示,达到将用户关心的旅游信息通过系统显示出来的目的。2.3.1 系统前台页面业务逻辑由于本系统是一个旅游信息系统,因此,最核心的模块便是旅游线路的推荐展示。推荐展示部分采用了三种推荐方法:基于用户评论的推荐方法,基于用户兴趣的推荐方法,基于关键词搜索的方法。对于浏览用户而言,通过浏览本系统的前台页面,主要可以浏览到以下一些线路的推荐:周边旅游线路,国内旅游线路,出境旅游线路,个性化推荐线路。周边旅游路线主要是对广州周边一些著名的旅游线路进行推荐。本系统采用了基于评价统计的推荐方法:将旅游线路信息采用列表的形式进行展示,列表的排列顺序按照用户投票的数目排列出来的。此外,用户点击开每一个线路之后,还可以在登陆系统之后对景点进行投票。具体的界面模型如图5所示:图5 周边旅游景点推荐国内旅游线路推荐主要是对中国国内一些著名的旅游景点线路进行推荐(包括港澳台)。本旅游信息系统采用了基于评价统计的推荐方法:将旅游线路信息采用列表的形式进行展示,列表的排列顺序按照用户投票的数目排列出来的。此外,用户点击打开每一条国内旅游线路之后,还可以在登陆本旅游信息系统之后对该条国内旅游线路进行投票。国内旅游线路的界面模型如图6所示:图6 国内旅游线路推荐出境旅游线路推荐主要是对外国一些著名的旅游线路进行推荐。本旅游信息系统采用了基于评价统计的推荐方法,将旅游线路信息采用列表的形式进行展示,列表的排列顺序是按照用户投票的数目排列出来的。票数高的线出境旅游线路路排的在前,票数低的出境旅游线路排在后面,这样做的目的是为了将最热门的出境旅游线路信息推荐给用户。除此之外,用户点击打开每一条出境旅游线路之后,还可以在登陆本旅游信息系统之后对该出境旅游路线进行投票。国内旅游线路的界面模型如图7所示:图7 境外旅游景点推荐个性化推荐是针对本旅游信息系统设计出来的一个个性化推荐方案,目标是让这个系统变得更加个性化,自动化,智能化。本旅游信息系统中个性化推荐模块采用了基于用户兴趣的推荐方法和基于关键字查询统计的两种推荐方法来设计而成的。分别为以下两种:第一种,基于注册信息的推荐算法的原理如下:用户注册的时候,系统会让用户填入用户喜欢景点的关键字。点击该模块是,系统将用户注册时候的喜欢景点的关键字和线路的关键字进行判断匹配,将相似的信息推荐给用户。因此用户仅仅需要登陆并打开此页面,系统便会将用户可能最感兴趣的线路展现出来。具体的界面模型如图8所示:图8 基于注册信息的个性化推荐第二种,基于关键字查询的推荐方法的原理如下:系统在页面上提供了输入文本框给用户输入关键字。用户输入成功后,系统根据用户输入的关键字信息自动匹配线路的关键字,并将与关键字匹配的线路信息通过列表列举出来,达到推荐的目的。因此用户只需要输入您想浏览的旅游线路的关键字,系统就会自动匹配所有与关键字相符的旅游景点出来,达到个性化推荐的目的,这增加了系统的智能化和创新化服务。基于内容统计的个性化推荐的界面模型如图9所示:图9 基于关键字搜索的个性化推荐上述三种旅游推荐方法:基于评价的推荐方法,基于注册信息的推荐方法,基于关键字搜索的推荐方法,使得本旅游信息系统的核心模块旅游线路信息模块变得更加的自动化,智能化,个性化,大大提高了系统的易操作性。这也是本旅游信息系统最初设计的一个目标和方向之一。风景美图展示主要是展示了旅游线路中各个景点的美丽的图片。图片以列表的形式展现出来,图片的顺序是随机排列的,没有按照投票的顺序进行排列。此外,如果用户对某一张图片感兴趣的话,用户还可以点击打开图片,这个时候用户将看到更加具体形象的图片样式和图片信息。具体的界面模型如图10所示:图10 旅游图片展示用户评论主要是给浏览用户发表自己的感慨和言论的地方。用户可以在这里发表自己对旅游景点的看法,意见和建议。具体的界面模型如图11所示:图11 旅客评论酒店租车信息主要是展示旅游线路相关的酒店信息和租车信息。每一条旅游路线都有一架租车和一个酒店,用户除了可以在具体线路中点击查看外,还可以在这个旅游信息页面和租车信息页面中点击查看。具体的界面模型如图12所示:图12 酒店信息2.3.2 系统后台页面业务逻辑由于本系统是一个旅游信息系统,所有的旅游信息都是通过后台系统发布的。因此,对于管理员而言,系统管理员是被赋予了管理本系统的全部权限的用户,能对系统的所有信息进行修改操作、查看操作、更新操作和删除操作。其可以通过操作后台管理系统,对用户(包括管理员和会员)进行管理,对旅游线路信息进行管理,对旅游景点图片信息进行管理,对旅游图片信息进行管理,对旅游酒店信息进行管理,对旅游租车信息进行管理。管理员对用户进行管理,主要包括对后台管理员进行管理,对前台登录会员进行管理两种。第一种,在对后台管理员进行管理的后台页面中,后台管理员可以增加管理员信息,删除管理员信息,查看管理员和修改管理员信息,具体的界面原型如图13所示:图13 管理员管理第二种,管理员对会员用户的操作,在对会员进行管理的后台页面中,还可以增加会员,删除会员,查看会员和修改会员。修改完身份后的会员可以在前台页面上进行登录投票操作,具体的界面原型如图14所示:图14 会员管理管理员对旅游线路信息的操作,主要包括对旅游线路类别的管理和具体的旅游线路信息的管理两种。第一种,在后台管理员对旅游线路类别的设置中,主要是通过设置线路的类别,使得可以在前台页面进行推荐展示时方便地进行分类。每一条具体的旅游线路信息都是按照这些类别进行分类的。这样做有利于各种不同旅游线路在前台页面的展示。具体操作包括对每一条线路类别中进行删除操作、修改操作、添加操作。具体的界面原型如图15所示:图15 旅游线路类别管理第二种,在后台管理员对旅游线路信息的设置中,除了对旅游线路的类别设置外,还对具体的旅游线路的具体信息进行设置。具体操作包括对旅游线路进行添加操作,删除操作,修改操作和查看操作。增删查改后,前台页面展示推荐的内容也会随着变化,具体的界面原型如图16所示:图16 旅游线路管理后台管理员对图片信息进行操作,主要是通过对旅游景点的图片操作,用来展示到前台页面中去,具体操作有添加图片,删除图片,修改图片,查询图片,具体的界面原型如图17所示:图17 景点图片管理后台管理员对酒店信息的管理,这个后台页面主要是实现了通过后台管理员对旅游线路中酒店信息的管理操作,以达到将酒店信息添加到具体的旅游线路中去的目的。除此之外,旅游线路中酒店信息也会被展示到前台页面中去,以供用户查看。后台管理员具体的操作包括添加酒店信息,删除酒店信息,查找酒店信息,修改酒店信息。后台操作结束,前台页面中酒店信息的展示内容也会随着酒店信息发生改变而改变,具体的界面原型如图18所示:图18 酒店管理后台管理员对旅游租车信息的管理,这个后台页面主要是实现了通过后台管理员对旅游线路中的租车信息的管理操作,以达到将租车信息添加到具体的旅游线路中去的目的。除此之外,旅游租车信息还将被展示到前台页面中去,以供用户查看,具体的操作有添加旅游租车信息,删除旅游租车信息,查找旅游租车信息,修改旅游租车信息,后台操作结束,前台页面旅游租车页面信息也会随着旅游租车信息的改变而发生改变的。具体的界面原型如图19所示:图19 租车管理管理员用户评论进行管理,主要是查看前台页面上用户的留言信息,具体的操作有查询留言。具体界面模型如图20所示:图20 用户留言管理2.4 系统性能需求网站系统在因特网正常状况下全天候提供服务,客户可以随时随地的对网站进行浏览访问,这就需要一台比较大型的服务器存储网站上的各种数据,同时也需要一台电脑部署和运行该项目。点击页面时,显示速度要尽可能的快。这必须保证服务器数据的及时清理,出现故障要及时的修理。要随时随地保证网站的安全和用户的安全,这必须要求本系统有足够的安全机制。在硬件方面要做好足够杀毒软件安装和防火墙设置,防止病毒侵入;在系统设置方面也要考虑到各种安全设置,只有注册,登录的用户才能使用到该系统的核心模块。3 概要设计3.1 具体实现的技术(1)Strut2 + Hibernet + Spring 三大框架SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层,业务层,数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate(刘京华,2010)。(2)JSPJSP是由Sun Microsystems公司倡导,许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页(张新曼,2007)。(3)MYSQLMYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就提高了速度并增加了灵活性。 MYSQL的SQL语言是用于访问数据库的最常用标准化语言,由于其体积小、速度快、成本低,尤其是开放性源码的特点,一般中小型网站的开发都选择MYSQL作为网站数据库。由于其社区版的性能卓越,搭配Jsp和Apach可组成良好的开发环境(施伯乐,丁宝康,汪卫,2003)。(4)EasyUI、JQueryJQuery是继Prototype之后又一个优秀的Javascript框架。它是轻量级的Js库(压缩后只有21k) ,它兼容CSS3,还兼容各种版本浏览器,JQuery2.0及后续版本将不再支持IE系列浏览器。jQuery使用户能更方便地处理HTML Documents、Events、实现动画效果,并且方便地为网站提供AJAX交互(陶国荣,2011)。(5)Struts2标签Struts2标签是Struts2框架封装出来的标签。它能够大大简化前台页面的代码的使用,使得系统开发变得更加简洁,开发效率变得更加高,但同时也会带来性能上的一些问题。3.2 功能结构的思想设计3.2.1 系统的推荐方法在这个旅游信息系统的开发设计中,我主要采用了3种推荐算法:基于评论统计的推荐方法、基于用户注册信息的推荐方法和基于关键字搜索的推荐方法。(1)基于评论统计的推荐方法就是将大多数人都认同的东西推荐给其他人。在这个旅游信息系统中,每个线路类别中具体的旅游线路信息的排列顺序都是按照用户点击投票数目“由多到少”进行排列的;也就是说越排在前面的旅游路线人口统计越高,越值得推荐给用户。(2)基于注册信息的推荐算法的原理如下:用户在注册时候要求填写一个喜欢经典类别的关键字。系统将用户注册时候的喜欢景点的关键字和线路的关键字进行判断匹配,将相似的信息推荐给用户,从而达到推荐的目的,是系统变得更加智能化、自动化、个性化。(3)基于关键字查询的推荐方法的原理如下:系统在页面上提供了输入文本框给用户输入关键字。用户输入成功后,系统根据用户输入的关键字信息自动匹配线路的关键字,并将与关键字匹配的线路信息通过列表列举出来,达到推荐的目的。3.2.2 系统的功能结构图系统的结构功能图表示了一个系统的层次分解关系,模块之间的调用关系,以及模块之间数据流和控制流信息的传递关系,它是描述系统物理结构的主要图表工具。本旅游信息系统中,主要采用后台管理,前台推荐展示的方式设计。通过后台对旅游线路信息,旅游租车信息,旅游酒店信息,旅游图片信息录入,并在前台页面分别对他们进行推荐展示,达到将用户关心的旅游信息通过系统显示出来的目的,其结构功能图如图21所示:图21 结构功能图3.3 系统数据流图数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具(Post,2006)。根据以上对系统的基本功能实现目标的分析,现在将本系统的顶层数据流图描述如图22所示:图22 数据流图顶层数据流图从整体上较清楚地描述了本系统的数据流向和加工处理过程,但是要清楚地描述系统数据的流向和加工处理的每个细节,仅用顶层数据流图是不够的。因此,在全局数据流图的基础上对局部进行单独放大,进一步细化,采用多层的数据流图来描述。根据层级数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图。从零开始编号中层数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再细化,形成子图;中间层次的多少,一般视系统的复杂程度而定(姜承尧,2011)。3.4 系统数据字典数据字典的作用是对数据流图中的各种成分进行详细说明,作为数据流图的细节补充,和数据流图一起构成完整的系统需求模型。数据字典一般应包括对数据项,数据结构、数据存储和数据处理的说明。以下列出本系统的主要数据字典条目。User(管理员/用户表) = Id(PK) + Username + Password + Email + Phone + Qq;Tour_Line(线路表)= Id (PK) + Des_City + Src_City + Hotel + Car + Price + Info;Tour_Line_Div(景点类别) = Id(PK) + Name + Hot;Hotel(酒店表)= Id (PK)+ Name+ Address + Pay + Start_Time + End_Time;Car(租车表)= Id (PK)+ Type + Price + Start_Time + End_Time + Phone;Picture(图片表)= Id (PK) + Name + Add_Time + Pic_Des + Pic_Path;Tour_Comment(留言)=Id(PK) + Name + Content + Satify + Mark;4 详细设计4.1 数据库设计在本次系统设计中,主要有以下几个表,分别为管理员/会员信息表,旅游线路信息表,用户留言信息表,旅游景点图片信息表,旅游酒店信息表,旅游租车信息:各个表之间相互独立,但也有联系,其结构设计如下:管理员/会员信息表(用户名,密码),管理员/会员信息表主要是用来存储管理员、会员的基本信息。通过一个标识符role来区别是不是管理员还是会员,如果role=20的用户即为管理员,如果role=0的用户即为会员用户;user表中有一个字段like字段主要记录着用户的喜好,这个字段将和路线的这个字段进行匹配,从而实现个性化推荐,其表结构设计如表1所示:表1 管理员和会员信息表字段名称数据类型长度说明IdInt20主键UsernameVarchar20字段PasswordVarchar20字段LikeVarchar20字段EmailVarchar20字段PhoneVarchar20字段QqVarchar20字段RoleVarchar20字段旅游线路信息表(名称,所在城市,简介,地址,酒店,租车,景点信息),旅游线路信息表是本旅游信息系统的一个核心的数据结构表,主要是用来记录一个旅游线路的表格。它有一个属性叫tour_line_div的字段是用来设置旅游路线类别的字段,主要分为周边旅游,国内旅游,境外旅游,个性化推荐等类型;它还有2个属性分别为Hotel和Car属性,这两个属性分别记录了旅游线路中的酒店信息和租车信息,其表结构如表2所示:表2 旅游线路信息表字段名称数据类型长度说明IdInt20主键Src_CityVarchar20字段Des_CityVarchar20字段PriceInt20字段HotelClass20字段CarClass20字段Line_DivClass20字段InfoVarchar20字段NameVarchar20字段用户留言表(用户编号,用户姓名,景点信息,对于景点意见