BBS论坛管理系统毕业论文.docx
- 文档编号:29293391
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:27
- 大小:727.54KB
BBS论坛管理系统毕业论文.docx
《BBS论坛管理系统毕业论文.docx》由会员分享,可在线阅读,更多相关《BBS论坛管理系统毕业论文.docx(27页珍藏版)》请在冰豆网上搜索。
BBS论坛管理系统毕业论文
摘要
本文是以ASP。
NET技术开发设计的文章发布系统.采用结构化生命周期法,自顶向下、逐层分解,模块化的系统结构设计。
全文共分为绪论、系统概述、系统需求分析、系统功能分析(编程和管理)、系统主要界面设计、系统总结等六章。
绪论中阐述了系统的意义和系统的开发环境。
系统概述中阐述了系统背景,所用技术、系统目标以及功能等。
系统设计阶段阐述了网站的总体设计思想、首页的设计、网站的总体功能设计以及数据库的逻辑设计。
在系统总结中阐述了系统的优劣势以及系统的扩展.文中详细说明了系统分析、系统设计的方法在系统实际开发中应用,并总结了开发过程中的一些经验和体会.
关键词:
BBSASP.NETC#系统开发
一、绪论
1。
1开发背景
BBS起源于20世纪80年代初.最初,论坛只是用于发布公告信息,讨论问题的在线交流平台.后来,随着网络的普及,论坛的功能越来越丰富,受到广大网民的欢迎。
因此,商业网站对论坛重视起来,纷纷在自己的网站上开辟论坛.作为与网民交流的园地。
同时在线技术支持和在线服务也在论坛中开展起来。
当代的大学生几乎都会接触甚至经常登陆自己感兴趣的论坛,在上面可以分享,也可以交流意见,但是,能把他们集中起来的论坛并不是很多.
BBS论坛系统是为了方便大家的沟通和获取信息而开发的系统.我们利用Asp.Net知识和SqlServer2005开发BBS论坛管理系统。
该系统以Internet为平台,前台可使任何人注册、登录、登录在论坛上进行发帖、回帖、浏览帖子等。
管理员也可以在后台对帖子、版块、用户等进行相关的管理。
一个小型BBS论坛系统的前台功能主要包括浏览搜索帖子、用户登陆注册、发表回复帖子、个人资料管理和帖子管理;后台功能主要包括用户管理、论坛版块管理和帖子管理等.
1.2系统目标
开发本系统意在吸纳大部分游离在众多论坛的大学生,达到校内网等论坛的目标。
系统开发的总任务是实现文章的成功发表,留言的发布与回复。
从而达到用户之间信息交流的目的.系统主要面向两类用户:
用户和系统管理员。
用户可以先注册,然后在网站里发表文章、留言等。
系统管理员可以对用户的信息进行增添和删除及修改,对版块进行增加、删除和修改操作;还可以对网站进行修改与维护。
1.3定义
论坛也称为BBS,是bulletinBoardSystem的简称,意即电子公告板,是一种在Internet上常见的用于信息服务的Web系统,它主要给浏览者提供相互沟通的平台,以此来吸引用户,服务用户。
二、系统概述
2。
1系统流程
图2-1系统整体流程图
2.2版块、帖子、用户模块的主要实现思路及图例
版块类有浏览列表和管理两个方法,管理方法可以分为创建、修改和删除3个方法,如图2—2和图2-3。
图2-2管理员参数分类
图2-3版块类的方法设置
帖子类有浏览、发帖、回帖、搜索和管理5个方法,浏览方法又可以分为列表和查看2个子方法,管理方法又可以分为编辑、删除、置顶等子方法,如图2—4
图2—4帖子类的方法和流程
用户类有注册、登录和管理3个方法,管理方法又分为添加、删除和设置权限3个子方法,如图2—5。
图2-5用户类的管理流程及方法
三、系统需求分析
3。
1系统基本功能需求
BBS实现功能
此次课程设计的题目是小型BBS论坛设计主要是实现新用户注册、会员登录、会员发布帖子、会员回复帖子、留言、回复留言、修改用户密码、查询帖子信息、修改发布帖子、删除发布帖子、删除非法用户(管理员权限)等功能。
3。
2系统数据库设计
经分析及需求得出BBS数据库包含六张表,具体内容如下:
(一)表tbClass存放论坛分类,主要字段就是分类编号ClassID和分类名称ClassName,详细信息如图3-1:
图3-1论坛分类表
(二)表tbBoard存放论坛分类中的版块,主要字段有板块编号BoardID、版块名称BoardName和版块类别编号BoardClassID,其中BoardClassID对应tbClass中的ClassID,详细信息如图3—2:
图3—2版块表
(三)表TranTest是版主表,主要字段有版主编号ID和版主所管的版块名称AccountName,详细信息如图3—3:
图3—3版主表
(四)表tbTopic是用来存放论坛帖子,主要字段有帖子编号TopicID、帖子标题TopicTitle、帖子内容TopicContent、帖子所属版块编号TopicBoardID、帖子发布者编号TopicUserID和帖子创建时间。
其中TopicBoardID对应表tbBoard中的BoardID,TopicUserID对应tbUser表中的UserID,TopicParentID代表父帖TopicID。
如果该帖子是主题帖,则TopicParentID为tbBoard中的BoardID,详细信息如图3-4:
图3—4主题表
(五)表tbUser存放论坛注册用户信息,主要字段有用户编号UserID、用户姓名UserName、用户密码UserPassword、电子邮件UserEmail、用户头像UserFace、用户性别UserGender,类型为整型,0表示女性,1表示男性,用户婚否UserIsMarried和用户权限UserRight,其中有两种类型:
admin表示管理员、user表示普通用户,只有管理员可以进入后台进行对版块的增加、删除、修改,也可以对用户进行增加、删除、修改;已注册的普通的用户可以浏览帖子、发帖和针对主题进行恢复;没有注册的用户只能浏览帖子,如果要进行发表帖子就只有先登录和注册,不然不能进行回复和发表帖子,详细信息如图3—5:
图3-5用户表
(六)表Tmp表示积分表,已注册的用户可以根据登录论坛的频繁程度进行积分的累积;假如用户发表的帖子点击率较高或回复人数很高,或者被用户置为精华帖等都可以增加积分,主要字段有编号ID和积分值Score;详细信息如图3—6:
图3—6积分表
3.3系统业务流程及描述
(一)会员注册流程
会员填写个人信息—〉信息合法性检验—〉会员信息持久化
用户注册后就可以进行发表帖子和回复帖子
具体流程图3-7:
图3-7会员注册流程图
(二)会员登录流程
输入用户凭证->基于角色授权
具体流程图3-8:
图3—8会员登录流程图
(三)会员管理流程
持有管理员角色角色调整或分配为版主或删除用户
具体流程图3—9:
图3-9会员管理流程图
(四)论坛版块管理流程
持有管理员角色添加、删除、调整、置顶、隐藏版块
具体流程图3—10:
图3—10版块管理流程图
(五)帖子发表
注册用户选择版块发表主题主题持久化
具体流程图3—11:
图3-11帖子发表流程图
(六)帖子回复
用户针对主题发表回复回复持久化
具体流程图3—12:
图3—12帖子回复流程图
四、系统功能分析
4.1功能界面框图
论坛是网络常见的一个应用,用于网络用户的信息交流。
如:
知名的天涯在线论坛.通过论坛系统,用户可以发表自己的言论(主题贴),其他的用户可以对主题贴进行评论(跟贴)或发表更多的言论(主题贴)。
图4-1系统主要功能模块图
4.2功能描述
(一)会员注册
新会员注册,提供会员信息,检验会员信息的有效性,
(二)会员登陆
提供用户凭证,验证用户信息,基于角色授权。
(三)会员管理
管理员由系统初始化分配一个,管理员可以对会员信息
户角色调整,版主调整,删除会员等。
(四)论坛版块管理
管理员可以添加、删除、调整、置顶、隐藏论坛版块
(五)帖子管理
管理员可以对所有帖子进行转移、置顶、删除等操作,
也可以对本版块帖子进行置顶、删除等操作。
(六)帖子发表
注册用户可以在感兴趣的版块中发表新主题帖
(七)帖子回复
用户可以对自己感兴趣的主题发表回复
(八)帖子浏览
用户可以浏览所有可见帖子
(九)帖子检索
用户可以提供标题关键字检索所以可见主题帖,注册用
的帖子
(十)意见建议
五、系统主要界面设计
5。
1显示帖子列表页面
图5-1帖子列表显示页面
功能:
主要是显示帖子列表,方便未注册的用户浏览查看;如果浏览过程中发现自己感兴趣的话题或帖子,可以回到登录页面进行注册,成功注册后可以发表自己的话题及对感兴趣的帖子进行回复等操作;相关代码如下:
publicpartialclassDefault1:
System。
Web.UI.Page
{
BLL.tbUseruserBLL=newBLL.tbUser();
BLL.tbTopictopicBLL=newBLL。
tbTopic();
stringsqlCon=ConfigurationManager.ConnectionStrings[”MyCon"].ToString();
//用于将数据库中的帖子绑定到DataList中让其显示在页面上
privatevoidSetBind()
{SqlConnectioncn=newSqlConnection(sqlCon);
stringsql="select*fromtbTopic,tbUserwhereTopicParentIDisnullandtbTopic.TopicUserID=tbUser。
UserIDorderbyTopicCreateTimedesc”;
SqlDataAdapterda=newSqlDataAdapter(sql,cn);
DataTabledt=newDataTable();
da。
Fill(dt);
DataViewdv=newDataView(dt);
PagedDataSourcepds=newPagedDataSource();
pds。
DataSource=dv;
pds.AllowPaging=true;
pds.PageSize=5;
ViewState["LastPageIndex"]=pds.PageCount-1;
pds。
CurrentPageIndex=int。
Parse(ViewState[”pageIndex"].ToString());
dlMessage。
DataSource=pds;
dlMessage.DataBind();
}
//主要用于将页面数据分页显示,方便用户浏览页面
protectedvoidPageIndex(objectsender,EventArgse)
{
LinkButtonlb=((LinkButton)sender);
intpageindex=Int32.Parse(ViewState[”pageIndex”].ToString());
if(lb。
Text=="上一页”)
{pageindex=pageindex—1;}
if(lb.Text=="下一页”)
{pageindex=pageindex+1;}
if(lb。
Text==”最后一页”)
{pageindex=Int32。
Parse(ViewState[”LastPageIndex"]。
ToString());}
if(lb。
Text=="第一页")
{pageindex=0;}
ViewState["pageIndex”]=pageindex;
SetBind();
}
//在页面底部显示该页从开始到结束的页码,用户可以随便浏览页面的任何一页privatevoidPageBuilder()
{intpageCount=Int32.Parse(ViewState["LastPageIndex”]。
ToString())+1;
HashtablehtPageIndex=newHashtable();
for(inti=pageCount-1;i〉=0;i-—)
{htPageIndex.Add(i,pageCount-i);}
DataList2。
DataSource=htPageIndex;
DataList2.DataBind();
}
protectedvoidlkbPageIndex_Click(objectsender,EventArgse)
{
ViewState["pageIndex"]=int.Parse(((LinkButton)sender)。
Text)—1;
SetBind();
}
5。
2发表帖子页面
图5-2发表帖子页面
功能:
用户登录后进行选择感兴趣的主题进行发表帖子,先在标题栏输入你要发表的帖子相关代码如下:
publicpartialclassSendMessage:
System.Web。
UI。
Page
{
BLL。
tbUseruserBLL=newBLL.tbUser();
BLL。
tbTopictopicBLL=newBLL.tbTopic();
DAL.tbBoardboardDAL=newDAL。
tbBoard();
stringsqlCon=ConfigurationManager。
ConnectionStrings[”MyCon”]。
ToString();
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
SetBind();
}
}
//先判断用户是否登录,若登录了,在tb_topic表中取出所有已发表的主题列表,并绑定到repeat控件中privatevoidSetBind()
{DataTabledtTopic=newDataTable();
stringstrWhere="”;
if(Session["UserID”]!
=null)
{
strWhere=”TopicUserID='"+Session["UserID"].ToString()+"'”;
}
dtTopic=topicBLL。
GetListTable(strWhere);
rptMessage。
DataSource=dtTopic;
rptMessage.DataBind();
}
//点击发送按钮将用户发表的帖子提交到数据库表tbTopic中
protectedvoidbtnSendMessage_Click(objectsender,EventArgse)
{stringTopicID=Guid。
NewGuid()。
ToString();
stringTopicUserID=Session[”UserID”]。
ToString();
stringTopicBoardID=boardDAL.GetBoardID(ddlBoardName。
Text.Trim());
using(SqlConnectioncn=newSqlConnection(sqlCon))
{cn。
Open();
stringsqlCmd=”insertintotbTopic(TopicID,TopicTitle,TopicContent,TopicBoardID,TopicUserID,TopicCreateTime)Values(@TopicID,@TopicTitle,@TopicContent,@TopicBoardID,@TopicUserID,@TopicCreateTime)”;
using(SqlCommandcmd=newSqlCommand(sqlCmd,cn))
{cmd。
Parameters。
AddWithValue("@TopicID”,TopicID);
cmd.Parameters.AddWithValue(”@TopicTitle",txtTitle.Text。
Trim());
cmd。
Parameters。
AddWithValue(”@TopicContent”,txtMessage。
Text。
Trim());
cmd.Parameters.AddWithValue("@TopicBoardID",TopicBoardID);
cmd。
Parameters。
AddWithValue(”@TopicUserID",TopicUserID);
cmd.Parameters。
AddWithValue("@TopicCreateTime",DateTime.Now);
cmd。
ExecuteNonQuery();
}
}
SetBind();
}
5。
3管理员登录页面
图5-3管理员登录页面
功能:
管理员登录后台进行管理,相关代码如下:
protectedvoidbtnLogin_Click(objectsender,EventArgse)
{
stringstrWhere=”UserName='"+txtuserID。
Text.Trim()+"'andUserPassword=’”+txtPassword。
Text.Trim()+”’";
DataTabledtuser=userBLL。
GetListTable(strWhere);
if(dtuser.Rows.Count>0)
{
//记录用户信息
Session["UserID"]=dtuser.Rows[0]["UserID"]。
ToString();
//记录当前页
Session[”CurrentPageUrl"]=HttpContext.Current.Request.Url。
PathAndQuery;
//跳转到首页
Response.Redirect(”Default1.aspx”);
}
else
{//用户密码或用户名错误,返回到错误页面
Response。
Redirect(”UserError。
aspx”);
}
}
protectedvoidimgLogin_Click(objectsender,ImageClickEventArgse)
{
stringstrWhere=”UserName='”+txtuserID。
Text。
Trim()+"’andUserPassword=’”+txtPassword.Text.Trim()+”’”;
DataTabledtuser=userBLL.GetListTable(strWhere);
if(dtuser。
Rows.Count〉0)
{
Session["UserID"]=dtuser.Rows[0]["UserID”].ToString();
Session["CurrentPageUrl"]=HttpContext.Current.Request。
Url.PathAndQuery;
Response.Redirect("Default1.aspx");
}
else
{
Response。
Redirect(”UserError.aspx");
}
}
protectedvoidimgZhuce_Click(objectsender,ImageClickEventArgse)
{//点击注册按钮,返回到注册页面
Response。
Redirect(”Register1.aspx");
}
5.4后台用户管理页面
图5—4后台用户管理页面
功能:
管理员登录用户管理页面对用户进行增加、删除、修改操作,相关代码如下:
protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse)
{
//若要添加新用户,在gridview底部显示可编辑的行
if(e。
CommandName==”New”)
{GridView1。
ShowFooter=true;}
//取消添加用户
if(e。
CommandName=="AddCancel")
{GridView1.ShowFooter=false;}
//点击添加成员按钮后,把已输入的信息提到数据库,并重新显示在gridview控件中if(e.CommandName==”Add”)
{
stringUserID=Guid。
NewGuid().ToString();
stringUserName=(GridView1。
FooterRow.FindControl("NewUser")asTextBox).Text;
stringUserPwd=((TextBox)(GridView1。
FooterRow.FindControl(”NewPWD")))。
Text;
stringUserGender=(GridView1。
FooterRow。
FindControl(”NewGender”)asRadioButtonList).SelectedValue=="男”?
"1”:
"0";
stringUserEmail=(GridView1.FooterRow.FindControl(”NewEmail")asTextBox)。
Text;
//在所编辑的行找到使用的控件,根据用户的UserID,更新用户信息
if(e.CommandName=="Update")
{
stringuserName=((TextBox)(GridView1。
Rows[GridView1。
EditIndex].FindControl(”txtUserName”)))。
Text;
stringuserPwd=((TextBox)(GridView1。
Rows[GridView1.EditIndex].FindControl("txtPwd”))).Text;
stringuserEmail=((TextBox)(GridView1.Rows[GridView1。
EditIndex].FindControl("txtEmail”))).Text;
intuserGender=(GridView1。
Rows[GridView1。
EditIndex]。
FindControl(”rblSex”)asRadioButtonList).SelectedValue=="男”?
1:
0;
stringuserIsMarried=(GridView1.Rows[GridView1.EditIndex].FindControl("rblIsMerried”)asRadioButtonList).SelectedValue=="是"?
"True”:
"False”;
stringuserRight=((TextBox)(GridView1.Rows[GridView1。
EditIndex]。
FindControl("txtUserRig
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BBS 论坛 管理 系统 毕业论文