基于C#的BBS论坛需求分析.docx
- 文档编号:30736198
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:27
- 大小:594.28KB
基于C#的BBS论坛需求分析.docx
《基于C#的BBS论坛需求分析.docx》由会员分享,可在线阅读,更多相关《基于C#的BBS论坛需求分析.docx(27页珍藏版)》请在冰豆网上搜索。
基于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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C# BBS 论坛 需求 分析