基于C#的BBS论坛需求分析.docx

上传人:b****5 文档编号:30736198 上传时间:2023-08-20 格式:DOCX 页数:27 大小:594.28KB
下载 相关 举报
基于C#的BBS论坛需求分析.docx_第1页
第1页 / 共27页
基于C#的BBS论坛需求分析.docx_第2页
第2页 / 共27页
基于C#的BBS论坛需求分析.docx_第3页
第3页 / 共27页
基于C#的BBS论坛需求分析.docx_第4页
第4页 / 共27页
基于C#的BBS论坛需求分析.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于C#的BBS论坛需求分析.docx

《基于C#的BBS论坛需求分析.docx》由会员分享,可在线阅读,更多相关《基于C#的BBS论坛需求分析.docx(27页珍藏版)》请在冰豆网上搜索。

基于C#的BBS论坛需求分析.docx

基于C#的BBS论坛需求分析

摘要

论坛用当今主流的网站开发技术C#语言进行开发。

论坛将采用B/S体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。

数据库Microsoft公司的SQLServer2005数据库。

该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。

本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。

关键字:

BBS论坛ASP.NETAjax

目录

第一章系统分析1

1.1系统开发运行环境1

1.2业务描述1

1.3系统功能概述2

第二章系统设计4

2.1数据库设计4

2.2概念模型设计(E-R图)4

2.3数据库表及关系建立5

2.4详细数据库结构设计6

2.5功能模块设计8

第三章12

系统详细设计与实现12

3.1系统前台界面设计12

3.2系统后台页面设计20

第四章结论22

第四章结论22

参考文献23

致谢24

第一章系统分析

1.1系统开发运行环境

鉴于系统的开发语言和数据库,采用如下的开发环境

开发环境:

WindowsXPMicrosoftVisualStudio2008SQLServer2005

硬件实现:

PentiumⅣ2.4G1G内存120G硬盘

开发语言:

C#

数据库:

SQLServer2005

开发工具:

MicrosoftVisualStudio2008

1.2业务描述

对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等,

系统的用例图如下:

 

图2.5系统用例图

1.3系统功能概述

本系统是一套网上交流的BBS软件,根据用户的需要和实际的管理条件,应由用户功能实现,帖子功能实现和后台管理等几个模块所构成,用户可以对一些数据进行查找和修改,并且注册的用户可以对帖子进行特定的操作,而管理员可以对用户和帖子进行相关的管理.

鉴于本系统的性质,系统应该实现以下功能.

1.用户功能实现

(1).用户的登录

(2).用户的注册

(3).用户的查找

(4).用户资料的修改

2.帖子功能实现

(1).帖子的发表

(2).帖子的回复

(3).帖子的查找

3.后台管理

(1).用户的管理

(2).帖子的管理

(3).论坛信息的管理

(4).论坛版块的管理

BBS论坛系统的数据流程图如下

说明:

⑴——访问信息,⑵⑶⑽⑾——用户信息,⑷——发表帖子信息,⑸更新帖子信息,⑹搜索信息

⑺——获取帖子信息,⑻回复信息,⑼搜索用户,⑿更新用户信息,⒀获取用户资料

图2.6数据流程图

第二章系统设计

2.1数据库设计

数据库和设计概述

(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。

  

(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。

  (3)数据库设计是信息系统开发和建设的重要组成部分。

 

2.2概念模型设计(E-R图)

数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。

描述了数据结构、数据操作及数据约束。

本系统的ER图

图2.1系统E-R图

 

2.3数据库表及关系建立

根据以上这些步骤就可以创建一个数据库,依次建立下列表结构。

1.用户基本资料表

2.用户详细信息表

3.论坛文章表

4.论坛版区表

5.论坛初始化信息表

(1).用户基本信息表和文章表是一对多的关系,即一个用户可以发表多篇文章和回复。

(2).论坛版区表和论坛文章表是一对多的关系,在一个论坛中可以含有多个文章和回复。

(3).论坛文章和回复表是一对多的关系,在一篇文章中可以对应多条回复内容。

 

2.4详细数据库结构设计

数据库名:

BBSDatabase

(1).管理员基本资料表:

表名:

manager

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

1

MID

int

4

0

2

Mname

varchar

50

0

3

Mpassword

varchar

50

0

4

McreateDate

datetime

8

3

(getdate())

5

Mremake

varchar

500

0

(2).回复信息表:

表名:

replay

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

1

RID

uniqueidentifier

16

0

(newid())

2

RtID

uniqueidentifier

16

0

(newid())

3

RsID

int

4

0

4

Rface

int

4

0

5

Rcontents

text

16

0

6

Rtime

datetime

8

3

(getdate())

(3).角色权限表:

表名:

role

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

1

ID

int

4

0

2

RoleID

int

4

0

3

Rode

varchar

50

0

(4).版块信息表:

表名:

section

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

1

SID

int

4

0

2

Sname

varchar

50

0

3

SmasterID

int

4

0

4

SclickCount

int

4

0

((0))

5

StopicCount

int

4

0

((0))

6

Sprofile

varchar

50

0

(5).帖子信息表:

表名:

topic

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

1

TID

uniqueidentifier

16

0

(newid())

2

TsID

int

4

0

3

TuID

int

4

0

4

TreplyCount

int

4

0

((0))

5

Tface

int

4

0

6

Ttopic

varchar

50

0

7

Tcontents

text

16

0

8

Ttime

datetime

8

3

(getdate())

9

TclickCount

int

4

0

((0))

10

Tstate

int

4

0

((0))

11

TlastTime

datetime

8

3

 

(1).用户基本资料表:

表名:

users

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

1

UID

int

4

0

2

Uname

varchar

50

0

3

Upassword

varchar

50

0

((888888))

4

Usex

bit

1

0

((0))

5

Uemail

varchar

50

0

6

Uclass

int

4

0

(1))

7

Uremark

varchar

50

0

8

UregDate

datetime

8

3

(getdate())

9

Ustate

int

4

0

((0))

10

Upoint

int

4

0

((20))

11

Uface

varchar

50

0

2.5功能模块设计

绘制出的用例图,将本系统分为三个大的模块,他们分别是会员资料模块,帖子资料模块和后台管理模块!

本系统的功能层次图如图2.2所示

 

图2.2系统功能层次图

 

如图2.2系统实现了如下的功能.

(1).会员模块:

此模块用来实现会员的登陆注册和会员资料的修改和查找.

1.会员登陆模块:

会员可以通过此模块对论坛进行登陆,登陆后便可以使用所有的会员功能,比如发帖回复等等.

2.会员注册模块:

没有会员帐号的用户,可以通过此模块添加会员信息,添加成功后便可登陆论坛,使用会员功能.

3.资料修改模块:

已注册的会员在登陆后,可以通过此模块,对会员的基本资料,联系方式,密码,头像等资料进行修改.

4.会员查找模块:

已注册的会员在登陆后,可以通过此模块,对会员进行查找,并可以查看对方的资料,联系方式等等,从而方便会员之间的联系.

(2).帖子模块:

1.帖子发表模块:

已注册的会员在登陆后,可以在相应的论坛中,发表或转载自己的大作,发表成功后,其他会员便可以在相应的论坛中看到这篇帖子,并可以对其进行回复等操作.

2.帖子回复模块:

会员在发表完帖子后,用户便可查看相关文章,并可以在文章中对已发表的帖子进行回复,

3.帖子查找模块

会员可以通过此模块,根据帖子的标题和作者,对相关的帖子进行查找.

(3).后台管理:

1.帖子查找模块:

此模块和帖子模块中的帖子查找类似,只是管理员的搜索条件比普通用户更加的广泛,使搜索变的便捷.

2.帖子管理模块:

帖子管理模块是管理员对帖子管理的平台,如果管理员查看到帖子有不适宜发表的内容时,可以对帖子选择删除或者锁定等操作,如果看到优秀的帖子,还可以将帖子进行置顶,加精,

图2.3帖子管理模块功能层次图

3.会员管理模块:

管理员可以通过此模块,对会员进行管理,对一些不法的用户可以修改或者删除资料,

4.论坛版块管理

管理员对论坛版块的添加,创建,删除等功能都是在此模块里进行处理.

第三章

系统详细设计与实现

3.1系统前台界面设计

(1)用户登录页面

主要代码:

publicpartialclassSite1:

System.Web.UI.MasterPage

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(Session["UserName"]!

=null)

{

Panel1.Visible=false;

Panel3.Visible=true;

 

Label4.Text=Session["UserName"].ToString();

}

else

{

Panel3.Visible=false;

Panel1.Visible=true;

}

}

protectedvoidbtnOK_Click(objectsender,EventArgse)

{

 

stringstrConn=ConfigurationManager.ConnectionStrings["BBSConn"].ToString();

SqlConnectionconn;

using(conn=newSqlConnection(strConn))

{

conn.Open();

using(SqlCommandcmd=newSqlCommand())

{

cmd.Connection=conn;

cmd.CommandText="Selectcount(*)fromuserswhereUname=@UserName";

cmd.Parameters.AddWithValue("@UserName",TextBox1.Text);

if(cmd.ExecuteScalar().ToString()=="0")

{

Page.ClientScript.RegisterStartupScript(this.GetType(),"","");

}

else

{

cmd.CommandText="selectUIDfromuserswhereUname=@UserNameandUpassword=@UserPassword";

cmd.Parameters.AddWithValue("@UserPassword",TextBox2.Text);

if(cmd.ExecuteScalar()==null)

{

Page.ClientScript.RegisterStartupScript(this.GetType(),"","");

}

else

{

Session["UserID"]=cmd.ExecuteScalar().ToString();

Session["UserName"]=TextBox1.Text;

Page.ClientScript.RegisterStartupScript(this.GetType(),"","");

}

}

 

}

}

}

protectedvoidbtnExit_Click(objectsender,EventArgse)

{

Session.Abandon();

Page.ClientScript.RegisterStartupScript(this.GetType(),"","");

}

protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse)

{

BLL.topict=newMyBBS.BLL.topic();

stringtid;

tid=t.GetTid(tbSearch.Text.Trim());

Response.Redirect(string.Format("Topic.aspx?

id='{0}",tid));

}

}

}

(2)论坛首页界面

(3)论坛帖子页面

主要代码:

publicpartialclassSection:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!

IsPostBack)

{

ViewState["orderBy"]="orderbyTtimeDESC";

MyBind();

}

}

publicstaticintcurPageIndex=0;

publicstaticintpageCount;

publicconstintPAGESIZE=10;

BLL.topictop=newMyBBS.BLL.topic();

privatevoidMyBind()

{

stringid=Request["id"].ToString();

Application["Sid"]=id;

intID=Int32.Parse(id);

GridView1.DataSource=top.GetList(ID,ViewState["orderBy"].ToString()).Tables[0];

GridView1.DataBind();

}

protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse)

{

Response.Redirect("../User/WriteTopic.aspx");

}

protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)

{

GridView1.PageIndex=e.NewPageIndex;

MyBind();

}

}

(4)论坛发帖页面

(5)个人主页页面

主要代码:

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!

IsPostBack)

{

MyBind();

DetailsBind();

TopicBind();

}

intuid=Convert.ToInt32(Session["UserID"]);

lbPwd.Text=user.GetList(uid).Tables[0].Rows[0][2].ToString();

tbPwd.Text=user.GetList(uid).Tables[0].Rows[0][2].ToString();

//tbUserHeple.Text=user.GetList(uid).Tables[0].Rows[0][1].ToString();

}

privatevoidTopicBind()

{

intuid=Convert.ToInt32(Session["UserID"]);

stringsql=string.Format("TuID={0}andSID=TsIDorderbyTtimeDESC",uid);

gvUserTopic.DataSource=top.GetUserTopic(sql);

gvUserTopic.DataBind();

}

privatevoidDetailsBind()

{

intuid=Convert.ToInt32(Session["UserID"]);

dtvUserInfo.DataSource=user.GetList(uid);

dtvUserInfo.DataBind();

}

privatevoidMyBind()

{

intuid=Convert.ToInt32(Session["UserID"]);

dlUserInfo.DataSource=user.GetList(uid);

dlUserInfo.DataBind();

}

BLL.usersu=newMyBBS.BLL.users();

Model.usersMuser=newMyBBS.Model.users();

publicstaticSystem.Drawing.ImageGetNewImage(stringoldImgPath,intnewWidth,intnewHeight)

{

System.Drawing.ImageoldImg=System.Drawing.Image.FromFile(oldImgPath);//加载原图片.

System.Drawing.ImagenewImg=oldImg.GetThumbnailImage(newWidth,newHeight,newSystem.Drawing.Image.GetThumbnailImageAbort(IsTrue),IntPtr.Zero);//对原图片进行缩放

returnnewImg;

}

privatestaticboolIsTrue()//在Image类别对图片进行缩放的时候,需要一个返回bool类别的委托

{

returntrue;

}

protectedvoidbtnOK_Click(objectsender,EventArgse)

{

intuid=Convert.ToInt32(Session["UserID"]);

stringuName=Session["UserName"].ToString();

boolb=user.IsUserName(uName,tbUserName.Text.Trim());

if(b)

{

//rfvPassword.ErrorMessage="密码不正确!

";

Page.ClientScript.RegisterStartupScript(this.GetType(),"提示!

","");

}

else

{

Muser.UID=uid;

Muser.Uname=tbUserName.Text.Trim();

Muser.Upassword=tbNewPwd1.Text.Trim();

Muser.Uemail=tbEmail.Text.Trim();

boolbSex=rblSex.Items.FindByValue("0").Value=="0"?

true

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1