本科毕业设计百度搜索引擎下的百度知道系统的设计和实现Word格式文档下载.docx
- 文档编号:8390655
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:25
- 大小:308.91KB
本科毕业设计百度搜索引擎下的百度知道系统的设计和实现Word格式文档下载.docx
《本科毕业设计百度搜索引擎下的百度知道系统的设计和实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《本科毕业设计百度搜索引擎下的百度知道系统的设计和实现Word格式文档下载.docx(25页珍藏版)》请在冰点文库上搜索。
和大家习惯使用的搜索服务有所不同,“XX知道”并非是直接查询那些已经存在于互联网上的内容,而是用户自己根据具体需求有针对性地提出问题,通过积分奖励机制发动其他用户,来创造该问题的答案。
同时,这些问题的答案又会进一步作为搜索结果,提供给其他有类似疑问的用户,达到分享知识的效果。
XX知道的最大特点,就在于和搜索引擎的完美结合,让用户所拥有的隐性知识转化成显性知识,用户既是XX知道内容的使用者,同时又是XX知道的创造者,在这里累积的知识数据可以反映到搜索结果中。
通过用户和搜索引擎的相互作用,实现搜索引擎的社区化。
XX知道可以说是对过分依靠技术的搜索引擎的一种人性化完善。
1.2选题背景
1.2.1问题定义
之所以搜索引擎这么火,大家这么依赖,是因为技术的进步,搜索引擎技术的进步非常的快。
技术进步快,实际上是需求在推动。
搜索最近两年来变得这么火,实际上是需求在推动搜索技术和产业推动。
宽带越来越普及,上网越来越容易,上网的人越来越多,信息量越来越大。
现在已经是非常繁荣的大路,这里面的内容很多很多,搜索一下初中的初恋情人,可能也会查找他的名字。
“用户提出任何一个问题,很快就会有人帮助回答,通过投票选出的最佳答案,往往又作为搜索结果被分享到更多用户”,这一简单、便捷的模式受到了网民的热烈欢迎,同时也改变着网民的日常生活习惯。
网友表示,“生活上一遇到解决不了的问题,我第一个想到的就是上XX知道”,目前,XX知道每天解决超过5万个问题,也就意味着,通过用户的互动参与,两天时间即可编辑完成一本《十万个为什么》。
1.2.2选题意义
众所周知,XX知道已经是一套开发过并且比较成熟完善的正在互联网上广泛使用的系统了,而之所以我选择这个系统作为我的毕业设计主要是因为现实中的该系统是由PHP语言开发的,而在大学期间的所学使我对于Java,JSP语言有了浓厚兴趣,一方面可以利用自己所学的知识实现一套正规的系统,更加锻炼自己和提高自己的技术水平,另外实用JSP语言版本开发与真实的系统实现方式不同也大大的增加我开发的兴趣。
所以我选择XX知道这个系统作为我的毕业设计。
1.3系统功能分析
要开发一个应用系统,首先要了解用户对整个系统的具体要求,确定系统应该实现的功能和系统应该具有的性能;
设计应用软件时所使用的设计平台,所开发的应用软件的运行环境;
通过调查分析去了解系统的业务流程,确定数据库设计中需要的数据结构;
还要分析系统中的数据流和长期使用的数据存储等等,这些都是需求分析中应该完成的任务。
本章采用软件工程的方法对“XX知道”模块进行了需求分析。
“XX知道”是一个基于搜索的互动式知识问答分享平台。
它实现登录用户在线提问回答并解决问题共享知识的过程。
该平台的维护为自动维护,由定义规则进行数据的维护,默认不设网站管理员角色。
1.用户角色:
普通用户(只有查询权限,无需登录)、信息发布用户(提问和回答问题的用户)
2.功能模块划分:
(1)问题信息查询(普通用户)
1)按照问题的栏目进行问题信息查询
2)按照问题的标题内容进行问题信息的查询
3)按照问题的状态(解决,待解决)来进行问题信息的查询
4)查询全部信息
(2)问题信息的管理(注册用户)
1)提出问题
2)对自己提出的提问进行信息处理
3)回答待解决的问题
4)问题信息查询
每一个模块的功能详见总体设计。
1.4数据流图
根据该系统问题的需求进行分析,使用数据流图示描述数据处理过程。
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。
数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表现系统的逻辑处理功能。
(数据流图描述数据处理过程,起点和终点必须是人,用矩形表示;
处理过程是动作,用圆角矩形表示;
数据存储就是数据表,用开口矩形表示;
请大家注意,参考软件工程书画图)
图1-1用户模块的数据流图
数据流图中的一些专业词汇在数据字典中解释如下:
(请注意:
数据字典是解释前面的数据流图中出现的容易产生歧义的词,没有数据流图只出现数据字典是毫无意义的。
在数据流图中没有的词出现在数据字典中也是毫无意义的。
)
第二章基础理论知识
XX知道系统的设计采用了JSP,Struts框架来实现,因此从采用了MVC结构模式进行开发。
整个开发的过程也是完全按照Struts框架结构进行的。
下面了解一下MVC开发模式和Struts框架技术。
2.1MVC模式概述
MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。
使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
比如一批统计数据你可以分别用柱状图、饼图来表示。
C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)是XeroxPARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。
最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。
模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
MVC模式是“Model-View-Controller”的缩写,中文翻译为“模式-视图-控制器”。
MVC应用程序总是由这三个部分组成。
Event(事件)导致Controller改变Model或View,或者同时改变两者。
只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。
类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。
MVC模式最早是Smalltalk语言研究团提出的,应用于用户交互应用程序中。
Smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在potstone(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。
MVC模式是一种架构模式,其实需要其他模式协作完成。
在J2EE模式目录中,通常采用servicetoworker模式实现,而servicetoworker模式可由集中控制器模式,派遣器模式和PageHelper模式组成。
2.2MVC如何工作
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
1.视图
视图是用户看到并与之交互的界面。
对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash和类XHTML,XML/XSL,WML等一些标识语言和Webservices。
2.模型
模型表示企业数据和业务规则。
在MVC的三个部件中,模型拥有最多的处理任务。
例如它可能用像EJBs和ColdFusionComponents这样的构件对象来处理数据库。
被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
3.控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。
所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。
它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
2.3Struts概述
Struts最早是作为ApacheJakarta项目的组成部分问世运作。
项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。
你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
除此之外,Struts的优点主要集中体现在两个方面:
Taglib和页面导航。
Taglib是Struts的标记库,灵活动用,能大大提高开发效率。
另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。
Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。
第三章概要设计
XX知道是一个基于搜索的互动式知识问答分享平台。
3.1系统概述
该系统的最大特点,就在于和搜索引擎的完美结合,让用户所拥有的隐性知识转化成显性知识,用户既是本系统内容的使用者,同时又是该系统的创造者,在这里累积的知识数据可以反映到搜索结果中。
3.2功能分析
下面我们着重介绍各个模块的具体功能以及设计要求。
根据需求分析,得到了本系统应该具有的功能,下面具体分析本系统的功能模块。
经过分析,“XX知道”大致分为两大模块六大功能。
即用户模块,用户处理问题模块。
两个模块的功能分别为:
1.用户模块
(1)用户注册。
(2)用户登录。
2.用户处理问题模块
(1)问题发布。
(2)问题查询。
(3)回答问题。
(4)解决问题。
系统的层次图如图3-1XX知道系统的层次图所示:
图3-1XX知道系统的层次图
(注意:
层次图按照功能模块来划分)
系统各功能部分说明如下:
1.用户模块:
主要包括对用户的注册以及登录的功能。
2.问题模块,主要包括以下几个功能的实现:
(1)问题发布:
已登录用户发布新的问题。
(2)问题回答:
其他用户对已存在问题的回答以及提问用户对自己问题的补充。
(3)解决提问:
提问用户将其他用户对于自己提出问题的某个回答设为最佳答案或者问题长时间未处理自动过期。
(4)查询问题:
注册用户登录或者游客用户访问系统时对问题的分类浏览以及对于单个问题的信息查询。
3.3数据库分析
3.3.1实体的分析
根据XX知道的总体设计,我们定义了XX知道整个系统分为两大模块和六大功能。
由此我们可以首先确定XX知道的两大实体:
用户和问题,而由于用户可以根据提问来进行回答,所以问题答案也是实体。
因此该系统共有三个实体。
1.用户实体。
2.问题实体。
3.问题答案实体。
3.3.2实体的属性
XX知道系统涉及到的实体分别为用户实体,问题实体,问题答案实体。
根据系统需求,我们将以下实体的属性确定如下:
1.用户实体,包含所有XX知道的注册用户信息,其详细的属性如下:
(1)客户编号。
(2)客户名称。
(3)客户密码。
(4)真实姓名。
(5)性别。
(6)身份证号。
(7)电子邮件。
(8)用户积分。
(9)用户权限。
2.问题实体,包含所有用户提出的问题的信息,其详细的属性如下:
(1)问题编号。
(2)问题标题。
(3)问题内容。
(4)提问者ID。
(5)所在栏目号。
(6)问题状态。
(7)奖赏分数。
(8)回答次数。
(9)发布时间。
3.问题答案实体,包含所有问题回答的属性,其详细的属性如下:
(1)回答编号。
(2)问题编号。
(3)回答标题。
(4)回答内容。
(5)回答状态。
(6)回答者编号。
3.3.3实体之间的联系
通过对XX知道系统中所需实体以及属性的分析,我们已经对于XX知道的数据模型有了一定的了解,由此我们可以确定三大实体之间的联系。
1.每一位注册用户都可以提出若干问题,发布问题信息。
但是每个问题只能由一个用户提出,即只能和一个用户关联。
2.每个用户都可以对某一问题发表若干回答。
但是每一项回答只能由一个用户发表,即只能和一个用户关联。
3.每个问题都会有零到多个回答,每个回答也可以发表到不同的问题上去。
即多个问题有多个回答。
3.4数据库的概念设计
通常使用实体-联系图来建立数据模型。
可以把实体-联系图简称为ER图,相应的可把用ER图描绘的数据模型称为ER模型。
XX知道的实体-联系图如图3-2XX知道的ER图所示:
ER图描绘的是数据之间的关系,矩形代表实体;
圆角矩形或椭圆代表属性;
菱形代表实体和实体之间的关系;
在实体关系的实线上要标出数字代表对应关系,1:
1或1:
N或M:
N)
图3-2XX知道的ER图
3.5数据库的逻辑结构设计
表3-1用户表
作用
保存客户的信息
名称
User_Info
序号
英文字段名
中文字段名
数据类型
长度
是否关键字
备注
1
User_ID
用户编号
int
主键
自动编号
2
User_Name
用户名称
varchar
30
3
User_PWD
用户密码
4
User_RealName
真实姓名
5
User_Sex
性别
0:
男1:
女
6
User_IDCard
身份证号
18
7
User_Email
电子邮件
50
8
User_Score
用户积分
9
User_Limit
用户权限
管理员
1:
普通用户
表3-2问题表
保存客户提出的问题
Question_Info
Ques_ID
问题编号
10
Ques_Title
问题标题
100
Ques_Context
问题内容
2000
提问者ID
外键
Item_ID
所在栏目号
Ques_Status
问题状态
10:
最佳
待解决
2:
已解决
Ques_Score
奖赏分数
Ques_Count
回答次数
Ques_date
发布时间
Date
表3-3回答表
保存问题答案
Result_Info
Res_ID
回答编号
Res_Title
回答标题
Res_Date
回答时间
Res_Context
回答内容
Res_Status
回答状态
最佳
普通
回答者编号
表3-4栏目表
显示栏目
Item_Info
栏目编号
Item_Name
栏目名称
200
3.6数据库的物理设计
1.创建用户表
createtableUser_Info(--用户表,保存客户的信息
User_IDintprimarykeyidentity(1,1),--客户编号
User_Namevarchar(30),--客户名称
User_PWDvarchar(30),--客户密码
User_RealNamevarchar(30),--真实姓名
User_Sexint,--性别
User_IDCardvarchar(18),--身份证号
User_Emailvarchar(50),--电子邮件
User_Scoreint,--用户积分
User_Limitint--用户权限
2.创建问题表
createtableQuestion_Info(--问题表,保存客户提出的问题
Ques_IDintprimarykeyidentity(1,1),--问题编号
Ques_Titlevarchar(30),--问题标题
Ques_Contextvarchar(2000),--问题内容
User_IDintreferencesUser_Info,--提问者ID
Item_IDintreferencesItem_Info,--所在栏目号
Ques_Statusint,--问题状态
Ques_Scoreint,--奖赏分数
Ques_Datedatetime,--发布时间
Ques_Countint--回复数
3.创建回答表
createtableResult_Info(--回答表,保存问题答案
Res_IDintprimarykey
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 百度 搜索引擎 知道 系统 设计 实现