BBS论坛毕业设计论文_第1页
BBS论坛毕业设计论文_第2页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

海南软件职业技术学院毕业设计(论文)

-

PAGE

2

--

1

目录

摘要-2-

绪论-3-

1.1BBS的发展背景-3-

1.2BBS对大学生学习生活的影响-3-

1.2.1BBS提供了丰富的网络学习资源-3-

1.2.2BBS促进了协作学习-3-

1.2.3BBS提高了学生自主学习能力-4-

2软件介绍及基本原理-5-

2.1ADO技术-5-

2.2开发环境及工具-6-

2.3 ASP有关的内置对象的设置-6-

2.3.1 Request对象-6-

2.3.2 Response对象-6-

2.3.3 Server对象-6-

2.3.4 Session对象-7-

2.4与ADO 有关的设置-7-

3系统需求规划-8-

3.1需求分析-8-

3.2功能设计-11-

3.2.1基本功能设计-11-

3.2.2扩展功能设计-12-

3.3设计可扩充功能的接口-13-

4功能模块与数据库设计-14-

4.1设计框架-14-

4.2模块的划分及设计-16-

4.2.1我所负责的页面代码-18-

首页:-18-

4.3设计数据库-23-

4.4创建数据库-23-

5系统实现与测试-24-

5.1验证性测试-24-

5.2添加、编辑和删除功能测试 -27-

6结束语-28-

6.1系统的特点与局限性-28-

6.1.1特点-28-

6.1.2局限性-29-

6.2实施过程中的一些体会-29-

致谢-30-

参考文献-31-

摘要

BBS已经成为人们获取信息、发表言论的重要场所。它由论坛注册用户所发表的大

量主题组成。近些年来,随着校园网建设的发展,大学校园网BBS也越来越火,因此建设一个好的BBS显得越来越有必要了.本文论述了开发一个简单的BBS系统所用到的关键技术和方法。其中运用了VB技术、ACCESS数据库等等,对上述技术的实现方法进行了详细的讨论,介绍了在WEB服务器上,利用VB技术和ADO等技术,实现了一个简单的BBS系统的设计与开发,并详细讨论了该系统的实现过程及其结构。

Abstract

BBShasbeenaccesstoinformation,animportantplaceofspeech.Itis

published bytheForumtoregistered userscomposedofalarge numberoftopics.Inrecentyears,withthedevelopmentofthecampusnetworkconstruction,the

Universitycampusnetworkmoreandmorefire,BBS,BBSthereforeseemsagoodbuildingmoreandmorenecessary.ThisarticlediscussesthedevelopmentofasimpleBBSsystemisthekeytechnologyusedinandmethods.OneuseoftheVBtechnique,ACCESSdatabase,etc.,therealizationofthesetechnicalmethodsare

discussed indetail,describes theWEBserver, using VBandADOtechnologies such

astechnology, asimple BBSsystemdesignanddevelopment,discussed in detail thesystemimplementationprocessanditsstructure.

海南软件职业技术学院毕业设计(论文)

-

PAGE

5

--

3

绪论

BBS的发展背景

BBS是在1992年底随着国际互联网的开始流行而迅速发展起来的 .互联网的产生使得以前只能在本地访问的 BBS可以被全世界随意访问,这对大多数人来说是极具诱惑力

的.BBS是一个有多人参加的讨论系统,在BBS上大家可以对一个共同感兴趣的问题进行讨论,自由地发表自己的意见与观点,并且能直接与其他的人进行沟通 .按照网站的性质以及服务对象来分,迄今有以下几种类型:一是校园BBS.校园BBS作为主要的集中地,在BBS领

域具有举足轻重的地位.由于校园BBS的繁荣,吸引了很多的社会人士参与.二是专业BBS.一般是由各个著名的大公司组建,人们可以利用其交流自己对商品的看法 ,更为重要的是可以解决商品使用中的问题.三是商业BBS.它是由ISP建立的BBS站点,这类BBS站点各种信息比较多,内容相当丰富.四是小型局域BBS.一般是由个人或小型集体建立,为小范围信息交流服务.五是业余BBS.一般由BBS爱好者个人利用一些免费空间办的 BBS,目的是为广大网友提供一个在某些专业上的交流场所 .六是新闻媒体BBS.是由新闻媒体网站设立的,为广大网友提供对新闻信息进行评论、发表意见和观点的场所 .随着互联网事业的蓬勃发展.BBS,这个具有强大实时交互功能,信息交流的平台,使人们不再像电视观众、电台听众、报纸杂志读者一样只是被动地观看、收听、阅读 ,而是可以积极而及时地参与讨论,在了解他人观点意见的同时也可以发表自己的看法 .

BBS对大学生学习生活的影响

BBS提供了丰富的网络学习资源

论坛是一个经过学习者整理加工过的网络资源汇 en集中心,从新闻、学习到娱乐、体育,从文字到视频、音频,BBS汇集了各种形式、内容的网络资源。不少 BBS都设有专门的NetResources(网络资源)板块;FTP技术和BT技术的发展更是为BBS站内资源的更新、共享提供了方便。如今,大部分大学的 BBS论坛都有相应的FTP服务器,不少BBS还与网络新兴的BT技术、Blog(博客)技术等连接起来BBS水木清华站就有“水木Blog”的栏目)。

BBS促进了协作学习

基于网络的论坛社区也是各种学习资源组合的场所,为学习者提供了学习环境。作为一个学生参与论坛的网络活动可包括许多种学习的意义,在特定板块内,论坛参与者围绕某个话题或者问题,通过发表、回复话题、版面讨论、站内信件等方式进行互动讨论、相互探讨,形成了一种以学习者为中心的学习方式。从教育网内人气排名前十名的论坛的网友参与的情况来看,在各大学习板块里,基本上每张帖子提出的问题都可以得到网友友好的、认真的回复解答,有着浓郁的协作探讨的学习气氛和良好的学习效果。

BBS提高了学生自主学习能力

网络学习的本质是一种自主学习,论坛提供了丰富的网络学习资源,使学习者能自主选择和控制学习地点、学习时间、学习方法和学习内容。在论坛里,学生可以自主地围绕学习问题,通过发帖、回复的形式提出讨论,寻求解答帮助,提高了学习的积极性和自主学习的能力。

ADO 技术

2软件介绍及基本原理

ADO(ActiveXDataObjects) 是微软公司提供给网页开发者在网页中存取数据库的最新技术, 它也是ASP内置的重要组件,ADO主要的目的是为了存取或修改数据源的数据、或增加数据到指定的数据源, 数据源不仅包括数据库,而且包括dBase、Excel、Foxpro、Access或文本文件等一些小型的数据表 , 所以, 只要是ODBC驱动程序所能存取的数据源皆是ADO 存取的对象。ADO主要是由Connection对象、Command对象、Parameter对象、Dataset对象、Field对象、Property对象及Error对象等七个对象与Fields数据集合、Properties数据集合、Parameters数据集合及Errors数据集合等四个数据集合所组合而成,其功能概述如下:

ADO 提供的七个对象:

Connection对象负责对指定的数据源进行连接,除此之外,它还可以通过事物(Transaction)

来确保在事物中所有的数据源变更的全部成功。

Command对象负责对数据库提供请求,也就是传递指定的SQL使命,除此之外,也可能通过Command对象对数据库发出数据定义语言 (DDL,DataDefinitionLanguage)。(3)Parameter对象负责传递Command对象所需要的SQL命令参数。

(4)DataSet对象负责浏览和操作从数据库取出的数据。(5)Field对象表示指定DataSet对象的数据字段。(6)Property对象表示ADO 的各项对象属性值。(7)Error对象负责记录连接过程所发生的错误信息。ADO的七个对象及四个数据集合相互的关系图如图

海南软件职业技术学院毕业设计(论文)

-

PAGE

10

--

6

ActiveXDataObject关系图

开发环境及工具

软件:InternetInformationServer(IIS)5.0,DreamweaverMX,

ACCESS2000。

ASP有关的内置对象的设置

Request对象

HTTP通讯协议是一种请求与响应(Request/Respons)e的通讯协议,因此通常由客户端向Web服务器提出请求,Web服务器才会响应信息。因此在ASP中,特别将“客户端提出的要求”与“Web服务器响应的信息”等动作封装成Request对象与Response对象。换言之,Request对象通常包含了用户端的相关信息,如浏览器的种类、表头信息、表单参数及cookies等等。

Response对象

每一种程序语言或开发工具一定都有与用户沟通的界面或函数 , ASP也不例外。在

ASP中负责将信息传达到用户的对象就是Response对象。

Server对象

Server对象允许用户取得服务器提供的各项功能 ,例如Server对象CreateObject方法允许客户端用户建立一个 ActiveXServer组件实例,其建立组件实例会随着服务器端完成ASP网页的处理而自动被释放。如果希望此对象实例可以跨多个 ASP网页,就要用到Session对象保留该组件实例,直到Session对象的运行时间到了,或是在其他ASP网页调用Session对象的Abandon方法,此组件实例才会被释放。

Session对象

Session对象在ASP程序编写中占了相当重的份量, 由于网页是一种无状态的程序 ,因此几乎无法知道用户的浏览状态。必须通过 Session对象记录用户的相关信息, 以供用户再次对此 Web服务器提出要求时作确认, 例如, 在某些特定的网页中, 常需要用户输入确认的账号和密码, 假如这些身份确认的结果无法保留, 那岂不是每一个网页都需要重新输入一次密码。必须说明,Session对象只能适用于具备Cookie功能的浏览器。

与ADO 有关的设置

在本BBS系统中主要对ADO 提供的四个数据集合进行了设置 :

Connection对象包含Errors数据集合, 在Errors数据集合中包含数据源响应失败时所建立的Errors对象.

Command对象包含Parameters数据集合, 在Parameters数据集合中包括Command对象所有的Parameters对象.

DataSet对象包含Fields数据集合, 在Fields数据集合中包含DataSet对象的所有

Field数据字段对象.

Connection对象、Command对象、DataSet对象与Field对象皆包含一个Properties数据集合, 在Properties数据集合中包含所对应Connection对象、Command对象、DataSet对象与Field对象的Property对象.

3系统需求规划

用户使用论坛,有一定的流程:用户注册登陆进入论坛,就某个话题(主题帖)展开讨论,通过发帖功能发布新的话题,通过回帖的功能回复已有的话题,通过搜索功能查找已有的话题;管理员通过管理功能创建、编辑、删除论坛的板块,管理注册用户,管

理帖子,设置论坛基本参数。这样的流程就决定了论坛的需求,如图所示:

需求分析

论坛流程图

从流程图上可以看到论坛完成的走向,其实每一个流程的节点处都有许多功能,如下

表:

论坛功能列表

论坛板块列表

浏览帖子

发帖回帖

搜索帖子

编辑帖子

删除帖子

精华帖

置顶帖子

转移帖子

用户注册

用户登陆

控制用户权限

修改注册信息

设置论坛参数

管理板块

管理用户

在这十六个凌乱无序的需求进行整理、归纳、再构建系统的整体框架,设计处数据实体、接口、用户界面,最终将所有功能需求装化为可以编码实现的程序框架。首先,通过观察论坛所有功能需求,可以发现在这十六个功能需求中,如果按照不同事务分类,可以分为四类对象:板块、帖子、用户和论坛。这四类对象,可以设计为四个数据实体,如果用数据库存储它们,即可以设计四个基本数据表。如图:

论坛配置信息表 模块信息表

帖子信息表 用户信息表

板块类有浏览列表和管理两个方法,管理方法又可以分为创建、修改和删除 3个子方

法,如图:

板块对象的相关用例图

海南软件职业技术学院毕业设计(论文)

-1-0-

1

帖子类有浏览、发帖、回帖、搜索和管理

5个方法,浏览方法又可以分为列表和查看

2个子方法,管理方法又可以分为编辑、删除、置顶、转移、指定精华

5个子方法,如

图:

帖子对象的相关用例图

用户类有注册、登陆和管理3个子方法,管理方法又分为添加、删除和设置权限 3个子方法,如图:

海南软件职业技术学院毕业设计(论文)

-1-

PAGE

3

-

1

用户对象的相关用例图

论坛一般存在两种用户,分别为注册用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限,在本论坛中,管理员的权限是上级权限。与注册用户相关的功

能,其实就是论坛前台的主要功能。论坛系统的前台,是用户讨论问题的平台,发帖、回帖一直贯穿用户整个的前台活动。同时,由于论坛系统的帖子管理是管理员在帖子浏览时进行的,所以编辑帖子、删除帖子、转移帖子、置顶帖子和指定精华帖等功能也安排在前台实现。其他与管理员相关的功能,包括板块管理、用户管理和论坛设置等都是管理员在后台进行的操作。

功能设计

基本功能设计

通过需求分析,论坛的基本功能可以从众多的需求中筛选出来。顾名思义,基本功能就是构成论坛系统的必要功能,具备这些功能的 Web系统即是论坛。

基本功能:

发帖。论坛最初是为了相互讨论话题而诞生的,发表帖子就是表达自己的看法,与他人进行讨论,因此发帖是论坛首要的功能。

浏览帖子。发表了帖子,就要供他人浏览查看,与他人分享自己的想法和经验。

回帖。浏览了他人发表的帖子,想要发表自己的想法,参与讨论,就可以回复这个帖子。

其实,发帖→浏览帖子→回帖三大功能周而复始的循环进行,就构成论坛。每个参与

论坛的人,主要目的就是发帖,查看已经发表的帖子,针对自己感兴趣的帖子进行回帖,参与讨论。三大基本功能的相互关系如图:

扩展功能设计

除了基本功能之外,其他的论坛功能都是扩展功能。

注册登陆。原先的论坛在发帖回帖时,需要填写自己的笔名。这样,经常发帖的人总是要重复填写笔名,比较麻烦。因此,论坛扩展了用户注册登陆功能,参与论坛的注册自己的笔名以及个人信息,拥有论坛中的身份,发言时就不需要重复填写个人信息了。

分板块浏览帖子。随着论坛帖子数量的增多,讨论相同话题的帖子聚集在一起,

引出了论坛新的扩展功能,即分板块浏览帖子,属于同一板块的帖子讨论同样的话题。这样,就使得对某一话题感兴趣的用户不会被其他帖子干扰,也有利于相同兴趣的用户相互间讨论,不易跑题。

编辑帖子。发帖回帖的用户,如果需要修改更新自己发表的帖子内容,就引出了编辑帖子内容这个扩展功能,提供给用户更新自己发言的选择。对于论坛管理员,可以编辑任何帖子的内容,也算是提供给管理员进行管理的选择。

删除帖子。如果用户发表了不符合论坛规则的帖子,则需要管理员删除这些帖子,这就引出了删除帖子的扩展功能。

转移帖子。论坛划分了板块,如果帖子内容不属于所在板块的关注话题,那么管理员可以选择将此帖移动到所属话题的板块中去,这就引出了移动帖子的扩展功能。这个功能是随着板块功能的出现而出现的,板块将帖子进行了分组,从而提出了随板块移动帖子的要求。

置顶帖子。帖子一般是根据发表以及回复时间到序排列的,这样先发的帖子就慢慢排到后面,管理员如果需要强调某些帖子重要,又必看性,就要打乱默认的排列顺序,将这些帖子放在列表的最前端,不再按照时间进行顺序的变化,但是还

要保证其他帖子按照时间变化顺序进行排列,这就引出了置顶帖子的扩展功能。指定精华帖。如果管理员认为某个帖子的内容非常好,可以打上标记,推荐给看帖的用户,这就引出了指定精华帖的扩展功能。用户可以选择只看打上标记的精华帖。

搜索帖子。论坛中的帖子越来越多,用户需要从大量的帖子中找到自己需要的内

容,这就引出了搜索帖子的扩展功能。

管理板块。论坛板需要先创建,才能被使用,管理员还可以删除修改板块的相关信息,因此管理板块是管理员使用的扩展功能。

设置参数。论坛一般有一些初始化信息,比如论坛名称,每页显示帖子数量等参数信息,管理员也可以在后台界面自行设置,这页属于扩展功能。

管理用户。管理员可以对论坛的注册用户进行管理,直接添加用户,赋予相关权

限,也可以修改已注册用户权限,对违规用户可以删除,这个扩展功能便于管理员对论坛用户的管理。

论坛的扩展功能如图:

设计可扩充功能的接口

列出了所有基本的和扩展功能之后,在设计时需要考虑以后扩充的余地,即在给论坛添加新的功能的时候,原有的功能正常可用,不受影响。或者丰富扩展某个功能时,

海南软件职业技术学院毕业设计(论文)

能够方便衔接。

这就要求在设计程序时,每个功能保留开放的接口,通过接口可以对功能进行扩充,也可以与新功能进行挂接。其实现的原理及思路如图:

功能的可扩充接口实现原理

设计框架

4功能模块与数据库设计

在确定了论坛系统的设计思路之后,还需要归纳成系统的相关模块,每个模块实际上就是功能的合理组合。

由于已经将功能做了前台与后台的分类,因此模块也应该分为两大类:前台模块和后台模块。用户在前台的注册、登陆,以及修改个人的注册信息组合成注册信息组合成注册登陆模块。用户浏览板块、浏览主题帖列表、查看帖子组合成浏览模块。用户发帖、

-1-4-

1

海南软件职业技术学院毕业设计(论文)

-1-

PAGE

9

-

1

回帖、编辑自己发布的帖子组合成发帖回帖模块。管理员编辑帖子、删除帖子、转移帖

子、置顶帖子和精华帖子组合成管理帖子模块。以上

4个模块是前台模块。后台模块都是

与管理员相关的,设置论坛参数单独为论坛设置模块;创建、修改和删除板块为管理板

块模块;添加、删除和设置权限为管理用户模块。

BBS的模块体系图:

从用户角度分析问题,首先区分系统中有几种用户,目前的论坛系统,为了使其清楚易懂,简化了用户体系,论坛中只有两种用户:注册用户和管理员。一般论坛中的版主权限,划分为管理员,这也是为了使读者容易分清论坛的使用者和管理者。对于注册用户,在论坛中的行为可归纳如下:

注册个人身份,登陆论坛,登陆成功后可以修改自己的注册信息。这些行为只与用户自身相关,功能独立,设计成注册登陆模块。

浏览板块列表,选择某板块,浏览其下的主题帖列表,查看帖子内容,搜索需要的帖子。这些行为是用户读取论坛的板块及其帖子的相关信息,设计成浏览模块。

可以发表新帖子,也可以回复已有的帖子,同时可以编辑自己写的帖子内容。这些行为

是用户参与论坛讨论,发表自己见解的行为,设计为发帖回帖模块。

管理员需要负责整个论坛的正常运转,因此他需要更多的管理功能,可以归纳为如下行为:

具备注册用户的所有功能。因为管理员也是论坛用户,可以参与论坛中的讨论。管理帖子。管理员对论坛的帖子有监督的权利,好的帖子要奖励,捣乱的帖子要删

除,标识精华帖,置顶帖子,转移发错板块的帖子,这些行为都是针对帖子的操作,设计成管理帖子模块。

管理板块。论坛中的板块,需要管理员进行创建、管理板块信息,这些针对板块的操

作,设计成管理板块模块。

管理用户。用户注册成功后,需要管理员赋予权限,才能使用论坛的相关功能。同时,管理员可以自主添加、删除用户,这些针对用户信息的操作,设计成管理用户模块。

模块的划分及设计

每个模块的功能都真实反映需求,通过对需求的认真分析,可以设计出符合要求的单独模块。但是,对于一个论坛系统来说,要很好地把握系统地构架,把零散地功能模块用一条主线串连起来,构建完整的系统。

对论坛系统来说,联系各个模块的主线是使用者的权限,用户能够使用论坛的哪些功能是由用户的权限决定的。论坛的每个功能都与相应的权限对应。例如,注册用户具有浏览帖子、发帖、回帖的权限,那么他就能使用论坛中的浏览、发帖、回帖功能。同一类用户使用的功能模块,是以使用者为中心连接起来的。另外,操作同类事务的功能模块,也是有相互关系的。

因此,浏览模块与发帖回帖模块、管理帖子模块关联,是由论坛的系统流程决定

的,如图:

帖子相关模块关系图

管理板块模块与浏览模块关联,是由帖子与板块的父子关系决定的。帖子依附于板

块,先有板块,后有帖子,帖子必须发表在某个板块中,如图:

管理板块模块于浏览模块关系图

管理用户模块与注册登陆模块关联,是由同一类对象 ——用户决定的。注册后获得论坛的身份,成为用户,所有的用户需要接受管理员的管理,用户登陆证明自己在论坛

中的身份,如图:

管理用户模块与注册登陆模块关系图

弄清楚模块间的相互关系,就可以设计出论坛系统的整体架构了,如图:

系统整体架构图

系统因入口的不同而分为前台系统与后台系统。前台系统包括注册登陆模块、浏览模块、发帖回帖模块、管理帖子模块;后台包括管理用户模块、管理板块模块。之所以要把属于管理员权限的管理帖子模块归属于前台,是因为,对于一个论坛系统,帖子是最主要的,为了方便管理,管理员需要一边浏览查看一边进行管理,管理时需要了解帖子的详细内容,以及相关回帖信息,因此将帖子的管理界面融合在前台的浏览界面中。至于其他的模块则比较清楚,是根据用户的权限划分的。

我所负责的页面代码

首页:

相关事件重要代码

Imports System.DataImports System.Data.OleDbPartial Classbbs_Default

Inherits System.Web.UI.Page

DimcnData AsNewOleDbConnectionDimcmdSQLAsNewOleDbCommandDimtypeID AsString

Protected SubbtnLogin_Click( ByValsenderAsObject,ByValeAsSystem.EventArgs) HandlesbtnLogin.ClickIf btnLogin.Text= "登陆" Then

If txtName.Text= "" OrtxtPass.Text= "" ThenExit Sub

EndIf

cmdSQL.Parameters.Clear()

cmdSQL.Parameters.Add( "@name,"OleDbType.WChar).Value=txtName.TextcmdSQL.Parameters.Add( "@pass",OleDbType.WChar).Value=txtPass.Text

cmdSQL.CommandText= "SELECTuserID,lastTimefrom[user]WHEREuserID=@nameAND[passWord]

=@pass"

TrycnData.Open()

Dimrd AsOleDbDataReader

rd=cmdSQL.ExecuteReader

Dimlast AsDate

If Notrd.Read Thenrd.Close()

cnData.Close()

Response.Write( "<script>window.alert("" 登陆失败!用户名或密码错误 "");</script>" )Exit Try

Else

last=rd.GetDateTime(1)

Response.Cookies(

"userInfo"

)("name")=txtName.Text

Response.Cookies(

"userInfo"

)("pass")=txtPass.Text

Session( "name")=txtName.Text

海南软件职业技术学院毕业设计(论文)

-2-0-

2

If chkAuto.Checked Then

Response.Cookies( "userInfo" ).Expires=DateTime.Now.AddMonths(1)Else

Response.Cookies( "userInfo" ).Expires=DateTime.Now.AddHours(1)EndIf

rd.Close()

EndIf

cmdSQL.Parameters.Clear()

cmdSQL.Parameters.Add( "@name,"OleDbType.WChar).Value=txtName.Text

=?"

If last.Date=Now.Date Then

cmdSQL.CommandText= "UPDATE[user]SETlastTime='" &Now.ToString& "'WHEREuserID

Else

cmdSQL.CommandText= "UPDATE[user]SETscoreKy=scoreKy+20,lastTime='" &

Now.ToString& "'WHEREuserID=?"

EndIfcmdSQL.ExecuteNonQuery()

Catchex AsException

FinallycnData.Close()

EndTry

Else

Session( "name")= Nothing

EndIf

Response.Write( "<script>window.location.href=window.location.href;</script>" )

EndSub

Protected SubPage_Init( ByValsender AsObject, ByVale AsSystem.EventArgs) Handles Me.InitcnData.ConnectionString= "JetOLEDB:GlobalPartialBulkOps=2;JetOLEDB:RegistryPath=;Jet

OLEDB:DatabaseL"&_

"ockingMode=0;DataSource=""" &Server.MapPath( "~\App_data\" )& "BBSdata.mdb"";JetOLEDB:E" &_"ngineType=5;Provider=""Microsoft.Jet.OLEDB.4.0"";JetOLEDB:Systemdatabase=;JetO" &_"LEDB:SFP=False;persistsecurityinfo=False;ExtendedProperties=;Mode=ShareDeny" &_

"None;JetOLEDB:EncryptDatabase=False;JetOLEDB:CreateSystemDatabase=False;Jet" &_

海南软件职业技术学院毕业设计(论文)

-2-

PAGE

2

-

2

"OLEDB:Don'tCopyLocaleonCompact=False;JetOLEDB:CompactWithoutReplicaRepa" &_"ir=False;UserID=Admin;JetOLEDB:GlobalBulkTransactions=1"

cmdSQL.Connection=cnData

EndSub

Protected SubPage_Load(ByValsender AsObject, ByVale AsSystem.EventArgs) Handles Me.LoadtypeID=CMyFunc.GetTypeID(TreeView1.SelectedValue)

If Session( "name")IsNot Nothing ThenlbName.Text=Session( "name").ToStringpnLogin.Visible= False

btnLogin.Text= "注销"

rblMy.Visible= TrueElse

lbName.Text= "客人"pnLogin.Visible= True

btnLogin.Text= "登陆"

rblMy.Visible= False

EndIf

MyDataBind()

hlkAsk.NavigateUrl= "~/bbs/AddTopic.aspx?type=" &typeID.ToString

If typeID= "00" Then

hlkAsk.Text= "提问请先选择子论坛"hlkAsk.Enabled= False

rblMy.Enabled= FalseElse

hlkAsk.Text= "我要提问"

hlkAsk.Enabled= True

rblMy.Enabled= TrueEndIf

DimstrType AsString

strType=CMyFunc.GetTypeName(typeID)

If strType= "NoThisType" ThenlbType.Text= "社区起点"

Else

lbType.Text=strTypeEndIf

EndSub

SubMyDataBind()

DimstrSQL AsString

If typeID= "00" Thenrbl1.Visible= False

strSQL= "SELECTTOP30ID,[text],[user],score,rep,lasttime,stateFROM(topic)ORDERBYlasttimeDESC"

Else

rbl1.Visible= TrueDimstrState AsString

If rbl1.SelectedIndex=0 Then

strState= "AND(state='1'ORstate='3')"

Else

strState= "AND(state='2')"EndIf

If Session( "name")IsNot Nothing ThenIf rblMy.SelectedIndex=1 Then

strState&= "AND([user]='" &Session( "name").ToString& "')"

EndIfEndIf

strSQL= "SELECTTOP300ID,[text],[user],score,rep,lasttime,stateFROM(topic)" &_

"WHERE[type]='" &typeID.ToString& "'" &strState& "ORDERBYlasttimeDESC"

EndIf

Dimdap AsNewOleDbDataAdapter(strSQL,cnData)

Dimds AsNewDataSetdap.Fill(ds, "main")

Dimdt AsDataTable=ds.Tables( "main")

海南软件职业技术学院毕业设计(论文)

-2-

PAGE

9

-

2

dgv1.DataSource=dtdgv1.DataBind()

EndSub

Protected SubTreeView1_SelectedNodeChanged(ByValsenderAsObject,ByValeAsSystem.EventArgs) HandlesTreeView1.SelectedNodeChanged

EndSubEndClass

设计数据库

本系统所使用的数据库服务器为 ACCESS2000,它在ACCESS2000的基础上, 扩展了ACCESS的总体功能与性能、工具界面更加方便合理、全面的数据完整性保护、系统安

全性更高。ACCESS2000的数据库空间不会受限于Device空间大小, 方便了数据空间的扩展, 使ACCESS2000作为一个网络数据库管理系统,其扩展已超出了单个物理计算机的限制,并且多服务器“分布式”事物的内在支持更加充分 .本系统主要使用了存储过程StoredProcedure, 所谓StoredProcedure实际上就是一段保存在数据库中的程序 , 通过一个名称的命名,其中包含有处理数据库存取与运算的SQL语句, 并且将这样的程序文件紧密结合在数据库中,这样我们的前台应用系统在执行过程中,可以直接执行数据库中设置好的StoredProcedure,甚至可以传递参数。

创建数据库

ACCESS2000的Manager管理工具是一个非常好用的可视化管理工具 ,ACCESS2000中提供的datetime和text两种字段类型,其中datetime是用来保存日期和时间数据的,text是用来保存不定长度的备注说明内容的, 有了这两个数据类型, 应用系统中就不用再为输出格式和限制字符串长度而增加额外代码了。

数据表间关系:

序 号 数据表名称 说 明

T_Operator 操作员(用户)表

T_Forum 论坛回帖表

T_Topic 论坛主题表

4

T_UserPara

系统参数表

5

T_Mark

积分头衔表

6

T_OperatorFunction

用户功能权限关联表

7

T_Function

功能表

之所以这样设计数据表间关系,主要是考虑论坛中各个对象得相互关系,帖子属于板块,回复帖从属于主题帖,帖子的作者属于用户,因此板块、主题帖、回复帖是一层层的从属依赖关系,帖子的作者必须是论坛的用户,帖子不能脱离板块、用户而单独存在。

5系统实现与测试

本论坛系统完成之后,就必须设计许多的测试用例来验证本系统的正确性,容错能力/恢复能力,信息安全性,可靠性等,尽可能多地找出系统的错误所在。

验证性测试

在登录论坛之前,论坛首页上显示 “您的当前状态是:未登录!”(如图1)此时,该用户除了能够进行用户注册之外,没有任何权限访问论坛的任何一个模块。当点击任

何一个功能按钮时,页面将会显示:“您没有登录,请返回!”

当用户点击“注册”按钮,页面便跳转到用户注册界面(如图 2),若注册成功,则显示“注册成功”(如图3),否则显示“发生错误···返回”。

图1

图2 图3

当点击登录按钮,则页面跳转到登录界面(如图 4)用户成功登陆之后,页面即显示您的当前状态为“已登录”(如图5)。只有当用户登录之后才能够修改该用户的信息,否则,当用户点击“修改注册信息”按钮时,页面会显示“没有登录,取不到用户信息。

请返回”。

图4 图5

添加、编辑和删除功能测试

当管理员点击“新建论坛”按钮,页面即跳转到图 9,管理员可以根据需要添加某些论坛,若添加成功则显示“添加成功”,否则显示错误信息。

图9

有了论坛的添加当然也少不了论坛的编辑和删除(如图 10),点击编辑按钮,则论

坛信息全部变为编辑状态,当编辑完成,则点击更新,否则点取消。若要删除某个论

坛,在点击删除按钮时会有确认信息提示,以防错误操作 (如图11)。若这些操作成功,则页面显示更新过的数据,否则提示错误信息。

图10

图11

6结束语

系统的特点与局限性

特点

海南软件职业技术学院毕业设计(论文)

-2-

PAGE

10

-

2

本系统最大的特点就是结构简单,界面清晰、简洁,一目了然。它不同于网络上的其他论坛的地方在于,主界面只显示每个板块的名称,板块描述,建立时间以及版主,而不细列出每个板块里的主题情况,这样就使原本繁杂的主界面大大简化,层层分明,给人一种很干净清新的感觉,不会象其他网络论坛一样使人眼花缭乱,不知从何处进入板块才好。

本系统还有一个特点就是可扩展性非常强。由于采用的是原型法的开发模式,一开

始只是对论坛的基本功能,即浏览帖子、发帖和回帖这三个功能进行了设计,而后来的注册登陆、分板块浏览帖子、编辑帖子、删除帖子、转移帖子、置顶帖子、指定精华帖、搜索帖子、管理板块、设置参数、管理用户以及文件的上传和下载等功能则是在后来的开发中陆续添加进去的。

局限性

事物总是一分为二的,本论坛系统的优点也就导致了它的局限性,由于界面简洁,每个板块没有列出所包含的主题,用户必须点击进入才能看到该板块中的所有主题,然后点击回复,这样就加大了用户的工作量,令他们的操作有些许累赘。第二,用户在发帖之后,并不能马上对自己发的帖子进行修改或删除,要想进行这些操作,必须进入管理登录界面,这样使得登录过的用户必须又要再登录一遍,又一次增加了用户操作的复杂性。这一点还有待改进。第三,由于最初的设计没有考虑到头衔的显示,因此在对用户进行管理的时候,头衔的管理和用户其他信息及权限的管理是分开的,这样就导致了管理员的工作量有所增加。最后,由于时间的关系,本论坛没有实现系统自动对发帖的用户增加积分的功能,这是本论坛的一大瑕疵。

实施过程中的一些体会

为期多月的毕业设计已经接近尾声了,本系统的整个实施过程中,遇到了很多很多的困难。看着自己的设计从无到有,从最初的雏形到如今的完整系统,虽说算不上完善,但也基本符合需求,这不仅仅是自己这几个月来辛勤劳动的结晶,更是对自己学习

成果的一个检验。在最初选择VB和ACCESS2000作为开发工具的时候,我考虑到 VB的强大功能和ACCESS良好的可移植性很适合做Web开发,但是也考虑到我以前从来没有使用过这两种工具来开发项目,也就是说对于这两种工具的使用我没有任何的经验,这无形

之中就增加了我做毕业设计的难度,我必须从头开始学习 VB和ACCES。S我的感觉是VB跟

海南软件职业技术学院毕业设计(论文)

-3-0-

3

JAVA很相似,而ACCES上S手很难,但是一旦学懂了,就会发现它真的很有用,并且越来

越觉得所掌握的知识远远不够用。在我开发的整个过程中我在不断的学习,一边学一边做,很多时候在一个问题上要花好几个小时甚至一两天,当我好不容易将这个问题解决时才发现其实这是个很小的问题,也许只是由于不了解它的一个对象或者时一个函数的功能。但是,每当我费尽心思解决了一个关键问题时,那种成功的喜悦和茅塞顿开的感觉是没有办法来形容的,它不仅让我感受到自己知识的浅薄也会激励我更加努力的去学习更多的东西,好把我的设计做的更完善更好,因为我根本就不会知道自己在接下来的设计中又会遇到怎样的挫折。

从我的毕业设计上很容易看出来这个系统的稚嫩,很多地方的需求没有考虑到,很多功能实现的也很不完善,这可能跟我平时很少上网逛论坛有很大的关系。虽说在老师的指导下已经改进了很多,一些我觉得不必要而实际上很必要

温馨提示

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

评论

0/150

提交评论