毕业设计论文-一个小型搜索引擎的设计与实现(含源程序代码)

上传人:二*** 文档编号:65416839 上传时间:2022-03-23 格式:DOC 页数:28 大小:753KB
收藏 版权申诉 举报 下载
毕业设计论文-一个小型搜索引擎的设计与实现(含源程序代码)_第1页
第1页 / 共28页
毕业设计论文-一个小型搜索引擎的设计与实现(含源程序代码)_第2页
第2页 / 共28页
毕业设计论文-一个小型搜索引擎的设计与实现(含源程序代码)_第3页
第3页 / 共28页
资源描述:

《毕业设计论文-一个小型搜索引擎的设计与实现(含源程序代码)》由会员分享,可在线阅读,更多相关《毕业设计论文-一个小型搜索引擎的设计与实现(含源程序代码)(28页珍藏版)》请在装配图网上搜索。

1、源程序代码等全套设计联系源程序代码等全套设计联系 QQ 174320523 各专业都有各专业都有分类号:分类号:TP315 U D C: D10621-408-(2007) 5794-0密密 级:公级:公 开开 编编 号:号:2003215061成成 都都 信信 息息 工工 程程 学学 院院学学 位位 论论 文文一个小型搜索引擎的设计与实现一个小型搜索引擎的设计与实现论论文作者姓名:文作者姓名:王王 海海 钰钰申申请请学位学位专业专业: :网网络络工程工程申申请请学位学位类别类别: :工学学士工学学士指指导导教教师师姓姓名名( (职职称称) ): :王王 翔翔论论文提交日期:文提交日期:200

2、7 年年 07 月月 25 日日一个小型搜索引擎的设计与实现一个小型搜索引擎的设计与实现摘摘 要要随着互联网和宽带上网的普及,搜索引擎在中国异军突起,并日益渗透到人们的日常生活中,在互联网普及之前,人们查阅资料首先想到的是拥有大量书籍的资料的图书馆。但是今天很多人都会选择一种更方便、快捷、全面、准确的查阅方式-互联网。而帮助我们在整个互联网上快速地查找到目标信息的就是越来越被重视的搜索引擎。本文通过分析国内外搜索引擎的发展现状,提出了一种功能强大,操作简单,通用性强,可以满足用户对信息搜索需要,利用 ASP 技术实现的一个 B/S 体系结构的搜索引擎系统方案。文中着重论述了该系统的功能与实现、

3、数据流程与存储、后台管理等。并对关键的有关技术作了较详细的介绍。论文在撰写过程中,力求将理论与系统应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中的应用与实现。关键词关键词:搜索引擎;ASP;B/S;关键字The Design and Implementation of a Small Search EngineAbstractWith the popularization of the Internet and surfing the Net broadband search engine likes a dark h

4、orse in China, going to peoples daily life day by day. Before this, when people consult materials the first thought is the library that has a large number of books. Now, more and more people will choose Internet to search for information. Its more convenient, and accurate for searching information.

5、The search engine that helps us in the whole Internet to quickly identify target information is played more and more attention to. Through analyzing the current development of search engine in domestic and international, this paper gives a plan that achieves the formidable function, simply operating

6、, stronger versatility and satisfies the users to the information search need, and realizes a systematic scheme of search engine of B/S system structure with the technology of ASP. This paper mainly describes the function and realization of this system, data procedure and storing, back-stage managem

7、ent, etc. And also introduces to the key relevant technology in detail. During this period, Ive made a lot effort to union the theory and practice, and coordinates with system to explain from practical application and operation skill while explaining various kinds of theories, hope to more fully ref

8、lect the knowledge and application in this system of technology and realize.Key words: Search Engine; ASP; B/S; Keyword目目 录录论文总页数:23 页1 引言引言.11.1 课题背景.11.2 搜索引擎的发展动向.12 系统所用技系统所用技术术分析分析.22.1 系统开发环境.22.2 B/S 结构.22.3 IIS 简介.22.4 Microsoft Access 简介.22.5 ASP 简介.33 系统结构设计系统结构设计.33.1 数据库设计.33.2 系统功能模块图.5

9、4 系统前台模块设计系统前台模块设计.64.1 网站搜索及图片搜索模块的实现.64.1.1 功能描述.64.1.2 流程图.64.1.3 界面设计.64.1.4 工作流程和代码设计.74.2 分类目录模块的实现.94.2.1 功能描述.94.2.2 代码设计.94.3 网站登录模块的实现.104.3.1 功能描述.104.3.2 数据流程图.114.3.3 工作流程.114.4 网站修改模块.124.4.1 功能描述.124.4.2 界面设计.134.4.3 工作流程.135 系统后台模块设计系统后台模块设计.145.1 网站管理模块的实现.155.1.1 功能描述.145.1.2 工作流程和

10、代码设计.155.2 网站审核.165.3 分类管理模块.165.3.1 分类编辑.165.3.2 分类添加.175.3.3 分类删除.196 系统性能测试系统性能测试.206.1 系统测试环境.206.2 测试结果.20结结 论论.20参考文献参考文献.21致致 谢谢.22声声 明明.23第 1 页 共 23 页1 引言引言1.1 课题背景课题背景随着因特网的迅猛发展、Web 信息的增加,用户要在信息海洋里查找信息,就像大海捞针一样, 搜索引擎技术恰好解决了这一难题。目前,搜索引擎系统可以分类三大类,分别是:目录式搜索引擎:以人工方式或半自动方式搜集信息,由编辑员查看信息之后,人工形成信息摘

11、要,并将信息置于事先确定的分类框架中。机器人搜索引擎:由一个称为蜘蛛的机器人程序以某种策略自动地在互联网中搜集和发现信息,由索引器为搜集到的信息建立索引,由检索器根据用户的查询输入检索索引库,并将查询结果返回给用户。元搜索引擎:这类搜索引擎没有自己的数据,而是将用户的查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户。1.2 搜索引擎的发展动向搜索引擎的发展动向搜索引擎已成为一个新的研究、开发领域。因为它要用到信息检索、人工智能、计算机网络、分布式处理、数据库、数据挖掘、数字图书馆、自然语言处理等多领域的理论和技术,所以具有综合性和挑战性。又由

12、于搜索引擎有大量的用户,有很好的经济价值,所以引起了世界各国计算机科学界和信息产业界的高度关注,目前的研究、开发十分活跃,并出现了很多值得注意的动向:(1)十分注意提高信息查询结果的精度,提高检索的有效性。用户在搜索引擎上进行信息查询时,并不十分关注返回结果的多少,而是看结果是否和自己的需求吻合。(2)基于智能代理的信息过滤和个性化服务。信息智能代理是另外一种利用互联网信息的机制。它使用自动获得的领域模型(如 Web 知识、信息处理、与用户兴趣相关的信息资源、领域组织结构) 、用户模型(如用户背景、兴趣、行为、风格)知识进行信息搜集、索引、过滤(包括兴趣过滤和不良信息过滤) ,并自动地将用户感

13、兴趣的、对用户有用的信息提交给用户。(3)采用分布式体系结构提高系统规模和性能。搜索引擎的实现可以采用集中式体系结构和分布式体系结构,两种方法各有千秋。但当系统规模到达一定程度(如网页数达到亿级)时,必然要采用某种分布式方法,以提高系统性能。(4)重视交叉语言检索的研究和开发。交叉语言信息检索是指用户用母语提交查询,搜索引擎在多种语言的数据库中进行信息检索,返回能够回答用户问题的所有语言的文档。如果再加上机器翻译,返回结果可以用母语显示。该技术目前还处于初步研究阶段,主要的困难在于语言之间在表达方式和语义对应第 2 页 共 23 页上的不确定性。2 系统所用技术分析系统所用技术分析通过基于 I

14、nternet 互联网的动态 Web 数据库技术,可以解决远程的数据传输与读取,远程的客户终端可以通过 Web 页面提交请求,查询远端的数据服务器上的信息,同时还可以向远端数据服务器的数据库中存储信息以实现信息的共享,同时利用 Internet 技术可以降低软件的开发和部署成本,只要在服务器端安装 WEB 应用就可以使每个客户端都能浏览使用。2.1 系统开发环境系统开发环境本搜索引擎系统是一个 B/S 结构的系统,它的发布需要有 Web 服务器的支持,且需要数据库系统来方便的对系统数据进行存储,查询,修改,删除,及时更新系统信息,同时需要一种简单,方便的编程工具可以与数据库进行交互。鉴于上述需

15、求我选择 IIS 5.0Microsoft AccessASP 作为我的开发环境。2.2 B/S 结构结构B/S 结构,即 Browser/Server(浏览器/服务器)结构,是随着 Internet 技术的兴起,对 C/S 结构的一种改进的结构。在这种结构下,用户界面完全通过WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成 3 层结构。B/S 结构主要利用了不断成熟的 WWW 浏览器技术,结合浏览器的多种 Script 语言,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。2.3 IIS 简介简介I

16、IS 是 Internet 信息服务(Internet Information Server)的缩写,它是一种Web 服务,主要包括 WWW 服务器、FTP 服务器等,使得在 Intranet(局域网)或 Internet(因特网)上发布信息成了一件很容易的事。WWW 服务提供维护网站和网页,并回复基于浏览器的请求。有了 WWW 服务和它内置的功能,通过Internet 信息服务器可以创建各种各样的 Internet 应用程序,加上其内置的对数据库连接的支持,IIS 的功能就更强大。SQL 数据库信息或其他任何符合ODBC 的数据库信息都能在 Internet/Intranet 上灵活应用。2

17、.4 Microsoft Access 简介简介Access 是 Office 系列软件中用来专门管理数据库的应用软件。所谓数据库是指经过组织的、关于特定主题或对象的信息集合。数据库管理系统分为两类:文件管理系统和关系型管理系统。Access 应用程序就是一种功能强大且使用方便的关系型数据库管理系统,一般也称关系型数据库管理软件。它可运行于各种 Microsoft Windows 系统环境中,由于它继承了 Windows 的特性,不仅易于第 3 页 共 23 页使用,而且界面友好,如今在世界各地广泛流行。它并不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数

18、据库管理系统。2.5 ASP 简介简介ASP 全称为 Active Server Pages,即动态服务器页面,它是一套微软开发的服务器端脚本环境,ASP 内含于 IIS 3.0 以上版本中,通过 ASP 我们可以结合HTML 网页、ASP 指令建立动态、交互且高效的 Web 服务器应用程序。ASP脚本在服务器端解释执行,结果自动生成符合 HTML 语言的主页去响应用户的请求。ASP 目前已成为目前应用最广泛的动态网页开发工具,同时应用 ASP 进行网络化的信息管理系统也逐步得到推广。ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境。ASP 程

19、序其实是以扩展名为.asp 的纯文本形式存在于 Web 服务器上的,可以用任何文本编辑器打开它。ASP 程序中可以包含纯文本、HTML 标记以及脚本命令。用户只需将.asp 程序放在 Web 服务器的虚拟目录下(该目录必须要有可执行权限) ,就可以通过 WWW 的方式访问 ASP 程序了。3 系统结构设计系统结构设计本系统是一个 B/S 结构的系统,采用 IIS 5.0Microsoft AccessASP 作为开发环境。它的发布需要有 Web 服务器的支持,且需要数据库系统来对系统数据进行存储,查询,修改,删除,及时更新系统信息。系统设计 6 个功能模块,分别是网站搜索模块、图片搜索模块、分

20、类目录模块、网站登录模块、网站管理模块和管理员登录模块。用户登录到首页,首先进入的是网站搜索界面。点击页面上其他功能模块的超链接,可进入相应的模块界面。网站登录模块和网站管理模块需要用户输入用户名和密码,成功通过验证才能进入相应的管理模块,如果验证失败则返回到前一个功能模块界面。管理员登录模块同样需要成功通过验证才能进入相应的管理模块。但他又提供了网站审核、网站管理和分类目录修改 3 个子模块。 3.1 数据库设计数据库设计数据库结构设计几乎所有的 Web 项目都要基于数据库,这使得数据库的设计在整个项目中举足轻重。本购物系统中大部分前台的显示信息都是从数据库中读取所需信息,而系统管理员则只需

21、在后台通过修改数据库中的数据即可达到改变前台显示内容的目的,所以数据库在本系统中作为中间介质连接前台和后台,其重要性不言而喻。本设计根据系统需求分析,选用 Microsoft Access 作为该系统的数据库。数据库取名为 SEARCH.MDB,其中包含了系统中所有的第 4 页 共 23 页数据。下面对一些关键表作详细说明。网站登录数据信息数据库在数据库中标记的是 Web 数据表,它记录的是网站名称、网站简介、网站地址、是否审核、网站关键字、联系人姓名、联系人E-mail、联系人 qq 号码、联系人地址、联系人邮政编码、网站登录时间、网站单击次数、所属子类名称、子类路径和所属子类 ID。Web

22、 表的具体结构如表 1所示:表 1 网站登录数据表字段名称字段名称数据类型数据类型说明说明主关键字主关键字ID自动编号编号*Title文本网站名称Content文本网站内容简介URL文本网站地址Verify是/否管理员是否已经确认Keyword文本网站关键字Name文本联系人姓名Email文本联系人 E-mailQQ文本联系人 qqAddress文本联系人地址PostCode文本联系人邮政编码Time日期/时间网站登录时间Click数字网站访问次数Sort文本子类名称Sort_path文本子类路径Sort_ID数字子类 ID 分类目录数据库表在数据库中标记的是 Sort 数据表,它记录的是子类

23、信息,包括子类名称、父类 ID 和是否在首页显示。Sort 表的具体结构如表 2 所示:表 2 分类目录数据表字段名称字段名称数据类型数据类型说明说明主关键字主关键字ID自动编号编号*Sort文本子类名称Sort-ID数字父类 IDShow数字是否在首页显示第 5 页 共 23 页管理员数据表即:数据表 Admin,记录的是管理员的登录名和密码。具体结构如表 3 所示:表 3 管理员数据表字段名称字段名称字段名称字段名称说明说明字段名称字段名称ID自动编号编号*UserName文本管理员登录名Password文本管理员密码图片数据表即:PIC 数据表,记录的是图片编号、图片名称、图片介绍、图片

24、地址、是否确认、图片关键字、小图片相对路径、大图片相对路径、图片添加的日期、网站访问次数。具体结构如表 5 所示:表 4 图片数据表字段名称字段名称数据类型数据类型说明说明主关键字主关键字id自动编号编号*Name文本图片名称Introduce文本图片内容简介URL文本图片地址Verify是/否管理员是否已经确认Keyword文本图片关键字smallImg文本小图片相对路径bigImg文本大图片相对路径recommendDate日期/时间设置为图片添加的日期Click数字网站访问次数3.2 系统的功能模块图系统的功能模块图系统的功能模块图如图 1 所示:主界面网站搜索管理员登录图片搜索分类搜索

25、网站管理网站登录第 6 页 共 23 页图 1 系统的功能模块图4 系统前台模块设计系统前台模块设计4.1 网站搜索及图片搜索模块的实现网站搜索及图片搜索模块的实现4.1.1 功能描述功能描述用户访问系统时,首先接触到的是首页面 index.asp,它提供了到达 6 个功能模块的超链接,默认显示为网站搜索模块。另外页面还提供一个表单 from,让用户输入要搜索的关键字,当用户输入关键字单击搜索按钮后,表单中的数据将被提交到 search.asp 文件中处理。在 search.asp 首先读取传递过来的数据,然后判断该数据是否为空。如果不为空。则将数据分割为多个关键字,然后在数据库中查找匹配的记

26、录,并在页面上显示。4.1.2 流程图流程图在网站搜索模块中,数据流程如图 2 所示: 数据是否为空关键字处理否是输入关键字搜索并显示结图 2 网站搜索流程图4.1.3 界面设计界面设计搜索模块的界面设计如图 3 所示: 图 3 网页搜索模块界面图第 7 页 共 23 页图片搜索结果如图 4 所示:图 4 图片搜索结果图4.1.4 代码设计代码设计输入关键字后,数据被提交到 search.asp 中,首先使用 Request 对象的QueryString()方法读取表单传递过来的关键字。if keyword= then关键词为空 给出提示,返回前一页。history.back() 函数的作用是

27、返回前一页response.write window.alert(请输入关键词!);history.back();else然后将多个关键字进行处理后分开保存在一维数组中:keyword = replace(keyword, )用空格替换关键词中的字符keyword = replace(keyword, )用空格替换关键词中的字符keyword = replace(keyword, )用空格替换关键词中的字符keyword = replace(keyword,,, )用空格替换关键词中的中文字符,keyword = replace(keyword, ) 用空格替换关键词中的英文字符,keywor

28、d = replace(keyword, , ) 第 8 页 共 23 页keyword = replace(keyword, , ) keyword = replace(keyword, , ) 清除多余的空格keyword=ltrim(rtrim(keyword) 去掉关键词左边和右边的空格。函数 LTrim 去掉字符串左边空格,函数 RTrim 去掉字符串右边空格keywordlist=split(keyword) 将用户输入的关键词用空格分成多个关键词并保存在一维数组 keywordlist 中然后在循环写出查询的 spl 语句:set rs=server.createobject(a

29、dodb.recordset)建立 RecordSet 对象for i=0 to ubound(keywordlist)ubound 函数获得数组最大下标值keywordlist(i) = Trim(keywordlist(i)Trim 函数去掉字符串左边和右边函数sql=sql & web.title like % & keywordlist(i) & % or sql 语句,web.title 指的是数据表 web 中 title 列的值,web.title 中包含关键词 keywordlist(i)sql=sql & web.keyword like % & keywordlist(i)

30、 & % or sql=sql & web.content like % & keywordlist(i) & % or sql=sql & web.url like % & keywordlist(i) & % or nextsql=Left(sql,(LEN(sql)-3)LEN 函数获得字符串的长度,left 函数获得字符串从左边数指定数目的字符,在此是去掉字符串中最后几位的or if path= or sort_path=/0/ thensearch_sql=verify=0 and (&sql&) order by click descelsesearch_sql=sort_path

31、 like % & sort_path & % and verify=0 and (&sql&) order by click descend if 从数据库中查询满足条件的记录,并保存在 rs 中rs.open selectid,sort_path,sort_id,title,keyword,url,content,address,postcode,verify,click from web where &search_sql,conn,1,1执行查询。使用 html 代码显示查询页面的网站搜索部分,然后判断是否存第 9 页 共 23 页在满足条件的记录,如果存在,则使用 showconte

32、nt()过程显示满足条件的所有记录,并将记录中的关键字用红色字体显示。然后使用 showpage()过程显示记录的页数信息,包括当前页、总页数等。最后显示查询页面的底部的管理入口及版本信息,并建立到管理员登录的超连接。4.2 分类目录模块的实现分类目录模块的实现4.2.1 功能描述功能描述分类目录界面由 dir.asp 实现,在该页面显示的分类信息包括 sort_id=0 的分类和 sort_id=1 的分类,即最上级分类和要求显示在首页上的下级分类。例如,如果把“医疗健康”作为最上级分类。 “医疗健康”又分为以下 10 个类:紧急救助、瘦身、性保健/知识、心理健康、医院、癌症、医学、营养品、

33、养生保健和女性健康。设置这 10 个分类也显示在首页上,即 show=1。这 10 个分类的下一级分类不在首页上显示。当单击分类目录首页上的某分类时,将进入 list.asp 文件,在该文件中,将详细显示这一分类及其下级分类,并显示属于这一分类的所有网站信息。4.2.2 工作流程和代码设计工作流程和代码设计单击分类目录首页上的某一分类,进入 list.asp 文件,在该文件中,首先使用 Request 对象的 QueryString()方法读取 sort_id 的值在数据库中查找这一分类的所有上级分类,并连接在一起,其逐级显示分类的代码如下:locality= &sort要在网页上显示的逐级分

34、类,如计算机软件编程语言if sort_id0 thensort_id 0 表示该类存在上级分类for i=1 to 8 8 表示在本系统中分类只有 8 级set rs=conn.execute(select * from sort where id=&sort_id)if rs.eof and rs.bof thenelsesort=rs(sort) locality= &sort&locality sort_id=rs(sort_id) 上一层分类的 idend ifrs.closeset rs = nothingnextend if第 10 页 共 23 页若该分类还存在下级分类,将显示

35、下级分类,最后显示属于这一分类的所有网站信息,在显示网站信息的代码出来中,用到了两个过程:showcontent()过程和 showpage()过程。Showcontent()过程显示所有满足条件的记录。Showpage()过程显示页数信息,包括当前页、总页数等,其中过程 showpage()的处理代码如下:Function showpage(totalnumber,maxperpage,filename) 定义过程Dim nIf totalnumber Mod maxperpage=0 Then totalnumber 能够整除maxperpagen= totalnumber maxperp

36、age Elsetotalnumber 不能够整除maxperpagen= totalnumber maxperpage+1 End If If CurrentPage 第一页 上一页 a href=?sort_id=&page=1第一页 a href=?sort_id=&page=上一页 % End If If n-currentpage 下一页 最后一页 共个网站 页次:/页4.3 网站登录模块的实现网站登录模块的实现4.3.1 功能描述功能描述网站登录页面为 jion.asp,在网站登录模块,包含一个表单,用于网站联系第 11 页 共 23 页人输入网站和个人信息,在表单中,包含输入网站

37、信息的文本域。其中。显示分类目录的文本域为 sort_id,它为只读类型,只能单击文本域右边的“选择分类”按钮来输入,当网站联系人输入所有的信息,并单击“确定”按钮,然后判断用户输入的分类目录是否存在,如果存在,则生成输入网站的最终分类目录。接着再判断用户输入的网站网址是否已经保存在数据库中,如果没有保存在数据库中,则在数据库中插入一条新的记录。如果数据库中已经存在该网址,则给出提示,并返回到前一页,当所有的数据保存在数据库中之后,页面上显示网站登录成功的提示。4.3.2 数据流程图数据流程图网站登录的数据流程图如图 5: 请填写完整信息提示网站登录失败提示网站重复填写基本信息网站是否重复登录

38、是否成功信息是否完整登录成功界面是否否否是是查找数据库对应的记录图 5 网站登录流程图4.3.3 工作流程工作流程当网站联系人输入所有的信息提交后,表单中的数据首先在 check()过程中检查其合法性,如果合法,数据将被提交到 join_ok.asp 文件中处理,在该文件中将使用 Request 对象的 From()方法获取网站登录数据,然后判断用户输入的分类目录是否存在,如果存在,则生成输入网站的最终分类目录,接着再判断用户输入的网站网址是否已经保存在数据库中,如果没有保存在数据库中,则第 12 页 共 23 页在数据库中插入一条新的记录:rs.addnew 插入新记录rs(sort)=pa

39、th子类名称rs(sort_path)=path_id子类 id 路径rs(sort_id)=sort_id父类 idrs(title)=request.form(title)网站名称rs(url)=request.form(url)网站网址rs(keyword)=request.form(keyword)关键字rs(content)=request.form(content)网站描述rs(name)=request.form(name)联系人姓名rs(email)=request.form(email)联系人 emailif oicq= thenqq 为空rs(oicq)=nullelser

40、s(oicq)=oicqqqend ifrs(address)=request.form(address)联系人地址rs(postcode)=request.form(postcode)邮政编码rs(verify)=-1 -1 表示为审查rs(click)=0点击次数rs(time)=date() 登录时间rs.update 更数数据库rs.close 关闭 RecordSet 对象end ifset rs=nothing如果数据库中已经存在该网址,则给出提示,并返回到前一页。当所有的数据保存到数据库中后,将在页面上显示登录成功的提示。4.4 网站修改模块网站修改模块4.4.1 功能描述功能描

41、述管理员登录页面为 admin.asp。在管理员登录页面上,包含两个表单。一张表单用来输入网站搜索的关键字,实现的功能与网站搜索模块一样。另一张表单是网站联系人登录时输入姓名和电子邮箱,在该表单中,输入联系人的姓名第 13 页 共 23 页的文本域为 name,输入联系人电子邮箱的文本域为 email。从表单定义语句可以看出当网站联系人输入姓名和电子邮箱,单击“登录”按钮后,表单的数据将被提交到 login.asp 文件中处理,当网站联系人输入修改的信息。并单击“确定”按钮后,所有的数据提交到 join_edit_ok.asp 文件中,该文件将所有的数据保存在数据库中。并在页面上显示网站修改成

42、功的信息。4.4.2 界面设计界面设计在首页页面或者分类目录页面或登录页面上单击“网站修改”超连接,首先进入网站修改登录页面,在该页面上输入网站登录时填写的联系人姓名和联系人电子邮件。单击“登录”按钮既可进入网站修改页面。网站修改页面也分两部分:上面为网站搜索部分,下面为网站信息修改部分。在信息修改部分,网站联系人可以修改输入的网站信息。网站修改的设计界面如图 6 所示:图 6 网站修改界面图4.4.3 工作流程工作流程在表单中输入联系人名称以及邮箱后,数据被提交到 login.asp 文件中处理,在 login.asp 中首先使用 QueryString()方法兑取 action 的值,如果

43、 action 的值为login,则读取表单传递过来的联系人姓名和电子邮箱数据,判断联系人姓名和电子邮箱是否为空: if name= then 联系人姓名为空response.write window.alert(联系人不能空);_history.back();第 14 页 共 23 页elseif email= then 联系人电子邮response.writewindow.alert(电子邮箱不能为空 );_history.back();如果二者都不为空,则从数据库中查询 email 列的值为输入电子邮箱的记录。如果存在记录,则判断输入的用户名是否正确,如果不正确,返回到登录页面。如果全部

44、正确,则登录成功,保存联系人登录的电子邮箱和 id,并将页面转到jion_edit_ok.asp 修改页面。进行网站登录信息的修改。5 系统后台模块设计系统后台模块设计 前台页面可以看成是对数据库中表的查询,读入,而后台则是对数据库中表中的信息进行修改,添加,删除,从而改变前台的显示信息。后台由管理员通过管理员 id 和密码登录进行操作。管理员登录模块示意图如图 7 所示:管理员登录网站管理网站审核分类管理退出系统添加分类删除分类修改分类修改已审核网站删除已审核网站修改未审核网站删除未审核网站图 7 管理员登录模块示意图5.1 网站管理模块的实现网站管理模块的实现5.1.1 功能描述功能描述管

45、理员登录之后,首先进入的就是网站管理模块,该模块管理员能够对已审核的网站进行修改和删除操作。网站管理模块的界面如图 8:第 15 页 共 23 页图 8 管理模块界面图5.1.2 工作流程和代码设计工作流程和代码设计进入该界面时,程序首先从数据库中查询 verify=0 的记录,然后将所有的记录分页显示在页面上。当管理员单击某个网站对应的“删除”超连接,就可以将该网站及其所有信息从数据库中删除。执行删除文件的部分代码如下:if session(admin)= thenresponse.writewindow.alert(你目前还没登录,请先登录!);_location.replace(inde

46、x.asp);第 16 页 共 23 页end ifIf Request(action)=delete Thendelid=replace(request(id),)获得要删除记录的id,Replace 过程将获得的 id 字符串中的用空字符替换if delid= or isnull(delid) then要删除的记录 id 为空则给出提示response.write alert(操作失败,没有选择合适参数,请单击确定返回!);response.redirect main.asp返回到网站管理界面response.endelseid 存在执行数据库中的删除操作,删除数据库中 id 列的值在 d

47、elid 数组中的记录conn.Execute(delete * from web where ID in (&delid&)删除成功,给出提示response.write alert(网站删除成功,请单击确定返回!);response.redirect main.asp5.2 网站审核网站审核网站审核模块与网站管理模块非常相似。不同的地方在于,网站审核模块显示的所有网站均为未审核网站,已经审核了的网站将不会在次页面显示。而网站管理模块显示的是已审核网站,网站审核模块查询数据库的代码如下:Set rs=server,createobject(“adodb.recordset”)rs.open”

48、select id,sort_id,title.url.verify.click.time.from web where verify=-1 order by id desc”.conn,1,15.3 分类管理模块分类管理模块5.3.1 分类编辑分类编辑在分类显示界面的每个分类的下面,对应着一个“编辑”超连接,单击该超连接,进入该分类的编辑界面,分类编辑界面和分类添加界面相同,二者的界面是由同一个文件生成,进入某一分类的界面,则在界面上显示该分类保存在数据库中的信息。当用户输入修改后的信息,单击确定按扭,所有的数据将被第 17 页 共 23 页提交到 sort_ok.asp 文件中处理,部分处

49、理代码如下: case edit action 的值为 editshow=request.form(show) 是否首页显示sort_id=request.form(sort_id)上级 IDset rs=server.createobject(adodb.recordset)创建 RecordSet 对象从数据库中查询 id 列的值为 request.form(id)的记录,将结果保存在 rs 中rs.open select * from sort where id=&request.form(id),conn,1,3rs(sort)=request.form(sort)分类名称rs.upd

50、ate 更新数据库rs.close 关闭 RecordSet 对象if sort_id=0 then 判断 sort_id 的值,并根据 sort_id 的值返回到不同的界面response.write window.alert(分类修改成功);location.replace(sort_manage.asp);elseresponse.write window.alert(分类修改成功);location.replace(sort.asp?sort_id=&sort_id&);end Ifcase delete 删除操作delid=request.QueryString(id) 读取要删除记

51、录的 idsort_id=Request.QueryString(sort_id)读取 sort_id 的值If sort_id = Thensort_id = 0End IfDel sort_id,delidif sort_id=0 then 判断 sort_id 的值,并根据 sort_id 的值返回到不同的界面response.write window.alert(分类删除成功);location.replace(sort_manage.asp);elseresponse.write window.alert(分类删除成功);location.replace(sort.asp?sort_

52、id=&sort_id&);end If第 18 页 共 23 页end select5.3.2 分类添加分类添加在分类显示界面的最下方,有一个“添加分类”超连接。单击该超连接,能够添加当前分类的下一层分类。界面中包含表单 forms,用来输入要添加的分类信息。表单中定义分类名称文本域为 sort。首页显示为一个下拉列表 show。可以选择是否要在首页显示,默认为否,上级 id 文本域为 sort_id。操作文本域为action。它为只读型,当操作为添加时,文本域中显示“add”。表单中还定义了一个隐藏域 id,用来保存当前分类的 id。其页面显示如图 9 所示:图 9 分类添加界面图当输入要

53、添加的分类信息并单击“确定”按钮后,表单中的数据被提交到sort_ok.asp 文件中处理。在 sort_ok.asp 文件中,首先判断用户是否登录,如果登录,则读取操作 action 的值,如果 action 的值为 add,则执行添加处理。分类添加的部分代码如下:action = request(action)h 读取 action 的值select case action select 条件语句case add action 的值为 addshow=request.form(show) 是否首页显示sort_id=request.form(sort_id)上级 IDset rs=serv

54、er.createobject(adodb.recordset)创建 RecordSet 对象第 19 页 共 23 页从数据库中查询 id 为空的记录,将结果保存在 rs 中rs.open select * from sort where id is null,conn,1,3rs.addnew 添加新记录rs(sort)=request.form(sort)分类名称rs(sort_id)=sort_idend Ifrs.update 更新数据库rs.close 关闭 RecordSet 对象Set rs=nothingif sort_id= or sort_id = 0 then 判断 s

55、ort_id 的值,并根据 sort_id 的值返回到不同的界面response.writewindow.alert(分类添加成功);_location.replace(sort_manage.asp);elseresponse.write window.alert(分类添加成功);_location.replace(sort.asp?sort_id=&sort_id&);end If5.3.3 分类删除分类删除删除操作也是在 sort_ok.asp 文件中执行的。在 sort_ok.asp 文件中,如果读取 action 的值为 delete,则执行删除操作,在代码中,首先读取 id 和 s

56、ort_id 的值,然后执行 del()过程将所有相关分类删除,最后根据 sort_id 的值将页面转到相关页。其中 del()过程是一个递归过程,其基本思想是:首先判断改分类的下级分类,对每一个下级分类,如果是,则直接删除改分类,完成操作。如果不是最下级分类,则查询该分类的下级分类,对每一下级分类,执行与该分类同样的操作,即首先根据情况处理。最后直到所有的下级分类以及下下级分类等都删除掉,然后再将改分类删除。del()的具体代码如下: Function Del(sort_id,id)Set drs = Server.CreateObject(ADODB.RecordSet)drs.Open

57、Select * from sort where sort_id=&id,conn,1,3If drs.EOF or drs.BOF Then 不存在满足条件的记录,即该分类是最下级分类conn.Execute(delete * from sort where ID=&id) 删除该分类Exit Function 跳出 Function 第 20 页 共 23 页过程Else 还存在下级分类Do While Not drs.EOF 循环处理每一个下级分类nid = drs(id) 下级分类的 idDel id,nid 删除该下级分类drs.MoveNext 指向下一条记录LoopEnd Ifd

58、rs.Close 关闭 RecordSet 对象Set drs = nothingconn.Execute(delete * from sort where id=&id) 删除该分类End Function6 系统性能测试系统性能测试6.1 系统测试环境系统测试环境本系统测试环境:CPU intel(R)2.10GHz,内存 SDRAM 256M,WIN2000/XP,2003 下均测试通过。6.2 测试结果测试结果在系统的各个模块设计完成之后,需要对整个系统进行全面的测试。目的是让整个系统能够快速、稳定、安全的运行。在进行系统测试过程中会出现如下几种情况:1管理员能准确无误的对数据库进行修

59、改。2客户能顺利的进行查询、登录和修改。3管理员和客户都能进行基本信息的修改。4可以安全退出系统。5. 权限控制,通过 session 会话变量对管理员和用户的权限进行控制。6. 页面的编码方式不同,需要的对字符串进行转码操作。第 21 页 共 23 页结结 论论 通过此次课题的设计,我们深刻感觉到代码重用和合理建库的重要性。代码重用是近年来软件工程领域一直提倡的开发方法。同时,在开发过程中要注意质量管理,否则开发工作一旦进行到后期,无论怎样通过测试和补漏洞,都会无济于事。编码的错误容易查出,但设计的错误如果带到编码阶段就会使错误逐步扩大,最终很可能造成严重的后果。所以应编写一些公共的类的方法

60、,提供统一的数据读写方法,以降低代码重用率。文章首先介绍了搜索引擎的发展动向,然后对该系统所采用的技术以及数据库的设计作了详细的分析和说明。然后再深入剖析该系统各功能模块的详细设计思路。在论文的最后,建立了测试系统,并根据系统的要求,对实现的功能进行了测试。该系统操作简单,通用性强,可以满足用户对信息搜索的需要。并且对用户设定了网站的管理权限。普通用户不需要登录便可使用搜索功能。但是系统还有如下工作需要进一步研究:(1)数据库的大小与搜索性能的关系 。目前并没对数据库的设计做优化处理。检索速度的快慢会随着数据库的增大而变慢。因此下一步将对数据库的优化作进一步的研究。(2)搜索功能缺乏人性化。目

61、前比较流行的搜索引擎,如“百渡”和“谷歌”,都有自己独特的中文分词算法和强大的中文分词库。对用户输入的关键字再进行分词,才体现出现代搜索引擎的人性化特点。因此下一步还要对中文分词的功能作进一步研究。参考文献参考文献1 张海藩.软件工程导论M.北京:清华大学出版社,19992 方睿,刁仁宏,吴四九. 网络数据库原理及应用M四川:四川大学出版社3 邓文渊.,陈惠贞. ASP 与网络数据库技术M.北京:中国铁道出版社,20054 吴涛.网站全程设计技术J.北京:清华大学出版社,2003。5 周枫,刘晓燕,李秀敏,李丹.软件工程J.重庆:重庆大学出版社,19986 尹喆,冯码,贾志博. Visual

62、Basic 数据库编程宝典译M.北京:电子工业出版社,19987 石志国. ASP 精解案例教程M. 北方交通大学出版社,2004第 22 页 共 23 页致致 谢谢本文是在王翔老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!在论文完成过程中,本人还得到了其他老师和许多同学的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!作者简介姓 名: 王海钰 性别:男 出生年月:1983-11-01 民族:汉E-mail: 第 23 页 共 23 页声声 明明本论文的工作是 2

63、007 年 2 月至 2007 年 7 月在成都信息工程学院网络工程系完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使用过的材料。除非另有说明,本文的工作是原始性工作。关于学位论文使用权和研究成果知识产权的说明:本人完全了解成都信息工程学院有关保管使用学位论文的规定,其中包括:(1)学校有权保管并向有关部门递交学位论文的原件与复印件。(2)学校可以采用影印、缩印或其他复制方式保存学位论文。(3)学校可以学术交流为目的复制、赠送和交换学位论文。(4)学校可允许学位论文被查阅或借阅。(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定) 。除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。特此声明! 作者签名: 2007 年 07 月 25 日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!