毕业论文BBS论坛管理系统毕业论文文档格式.docx
《毕业论文BBS论坛管理系统毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《毕业论文BBS论坛管理系统毕业论文文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
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.PageBLL.tbUseruserBLL=newBLL.tbUser();
BLL.tbTopictopicBLL=newBLL.tbTopic();
stringsqlCon=ConfigurationManager.ConnectionStringsMyCon.ToString();
/用于将数据库中的帖子绑定到DataList中让其显示在页面上privatevoidSetBind()SqlConnection=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;
ViewStateLastPageIndex=pds.PageCount-1;
pds.CurrentPageIndex=int.Parse(ViewStatepageIndex.ToString();
dlMessage.DataSource=pds;
dlMessage.DataBind();
/主要用于将页面数据分页显示,方便用户浏览页面protectedvoidPageIndex(objectsender,EventArgse)LinkButtonlb=(LinkButton)sender);
intpageindex=Int32.Parse(ViewStatepageIndex.ToString();
if(lb.Text=上一页)pageindex=pageindex-1;
if(lb.Text=下一页)pageindex=pageindex+1;
if(lb.Text=最后一页)pageindex=Int32.Parse(ViewStateLastPageIndex.ToString();
if(lb.Text=第一页)pageindex=0;
ViewStatepageIndex=pageindex;
SetBind();
/在页面底部显示该页从开始到结束的页码,用户可以随便浏览页面的任何一页privatevoidPageBuilder()intpageCount=Int32.Parse(ViewStateLastPageIndex.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)ViewStatepageIndex=int.Parse(LinkButton)sender).Text)-1;
5.2发表帖子页面发表帖子页面图5-2发表帖子页面功能:
用户登录后进行选择感兴趣的主题进行发表帖子,先在标题栏输入你要发表的帖子相关代码如下:
publicpartialclassSendMessage:
DAL.tbBoardboardDAL=newDAL.tbBoard();
protectedvoidPage_Load(objectsender,EventArgse)if(!
IsPostBack)SetBind();
/先判断用户是否登录,若登录了,在tb_topic表中取出所有已发表的主题列表,并绑定到repeat控件中privatevoidSetBind()DataTabledtTopic=newDataTable();
stringstrWhere=;
if(SessionUserID!
=null)strWhere=TopicUserID=+SessionUserID.ToString()+;
dtTopic=topicBLL.GetListTable(strWhere);
rptMessage.DataSource=dtTopic;
rptMessage.DataBind();
/点击发送按钮将用户发表的帖子提交到数据库表tbTopic中protectedvoidbtnSendMessage_Click(objectsender,EventArgse)stringTopicID=Guid.NewGuid().ToString();
stringTopicUserID=SessionUserID.ToString();
stringTopicBoardID=boardDAL.GetBoardID(ddlBoardName.Text.Trim();
using(SqlConnection=newSqlConnection(sqlCon).Open();
stringsqlCmd=insertintotbTopic(TopicID,TopicTitle,TopicContent,TopicBoardID,TopicUserID,TopicCreateTime)Values(TopicID,TopicTitle,TopicContent,TopicBoardID,TopicUserID,TopicCreateTime);
using(SqlCommandcmd=newSqlCommand(sqlCmd,)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();
5.3管理员登录页面管理员登录页面图5-3管理员登录页面功能:
管理员登录后台进行管理,相关代码如下:
protectedvoidbtnLogin_Click(objectsender,EventArgse)stringstrWhere=UserName=+txtuserID.Text.Trim()+andUserPassword=+txtPassword.Text.Trim()+;
DataTabledtuser=userBLL.GetListTable(strWhere);
if(dtuser.Rows.Count0)/记录用户信息SessionUserID=dtuser.Rows0UserID.ToString();
/记录当前页SessionCurrentPageUrl=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()+;
if(dtuser.Rows.Count0)SessionUserID=dtuser.Rows0UserID.ToString();
SessionCurrentPageUrl=HttpContext.Current.Request.Url.PathAndQuery;
Response.Redirect(Default1.aspx);
elseResponse.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.RowsGridView1.EditIndex.FindControl(txtUserName).Text;
stringuserPwd=(TextBox)(GridView1.RowsGridView1.EditIndex.FindControl(txtPwd).Text;
stringuserEmail=(TextBox)(GridView1.RowsGridView1.EditIndex.FindControl(txtEmail).Text;
intuserGender=(GridView1.RowsGridView1.EditIndex.FindControl(rblSex)asRadioButtonList).SelectedValue=男?
stringuserIsMarried=(GridView1.RowsGridView1.EditIndex.FindControl(rblIsMerried)asRadioButtonList).SelectedValue=是?
True:
False;
stringuserRight=(TextBox)(GridView1.RowsGridView1.EditIndex.FindControl(txtUserRight).Text;
stringuserID=GridView1.DataKeysGridView1.EditIndex.Value.ToString();
boolHasFileUploaded=false;
FileUploadoUpload=GridView1.RowsGridView1.EditIndex.FindControl(uPhoto)asFileUpload;
stringfilename=;
if(oUpload.HasFile)/判断图片是否存在,无则上传,并保存在指定路径filename=Guid.NewGuid().ToString(D)+System.IO.Path.GetExtension(oUpload.FileName);
oUpload.SaveAs(Server.MapPath()+/images/faces/+filename);
HasFileUploaded=true;
SqlDataSource1.UpdateCommand=updatetbUsersetUserName=+userName+,UserPassword=+userPwd+,UserEmail=+userEmail+,UserGender=+userGender+,UserFace=+filename+,UserIsMarried=+userIsMarried+,UserRight=+userRight+whereUserID=+userID+;
else/执行更新语句,完成用户信息更新操作SqlDataSource1.UpdateCommand=updatetbUsersetUserName=+userName+,UserPassword=+userPwd+,UserEmail=+userEmail+,UserFace=+filename+,UserIsMarried=+userIsMarried+,UserRight=+userRight+whereUse