毕业设计(论文)-BBS论坛管理系统.doc_第1页
毕业设计(论文)-BBS论坛管理系统.doc_第2页
毕业设计(论文)-BBS论坛管理系统.doc_第3页
毕业设计(论文)-BBS论坛管理系统.doc_第4页
毕业设计(论文)-BBS论坛管理系统.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

论坛管理系统目录一、绪论- 1 - 1.1开发背景- 1 - 1.2系统目标- 1 - 1.3定义- 1 -二、系统概述- 2 - 2.1系统流程- 2 - 2.2 版块、帖子、用户模块的主要实现思路及图例- 2 -三、系统需求分析- 5 - 3.1系统基本功能需求- 5 - 3.2系统数据库设计- 5 - 3.3系统业务流程及描述- 7 -四、系统功能分析- 11 - 4.1功能界面框图- 11 - 4.2功能描述- 11 -五、系统主要界面设计- 13 - 5.1 显示帖子列表页面- 13 - 5.2 发表帖子页面- 15 - 5.3 管理员登录页面- 18 - 5.4 后台用户管理页面- 20 -六、系统总结- 23 - 6.1系统特点及不足- 23 - 6.2系统以后的扩展与拓宽- 23 - 6.3自己的体会与感想- 23 -致谢- 24 -参考文献- 25 - - 26 - 安徽财贸职业学院毕业论文(设计)一、绪论1.1开发背景bbs起源于20世纪80年代初。最初,论坛只是用于发布公告信息,讨论问题的在线交流平台。后来,随着网络的普及,论坛的功能越来越丰富,受到广大网民的欢迎。因此,商业网站对论坛重视起来,纷纷在自己的网站上开辟论坛。作为与网民交流的园地。同时在线技术支持和在线服务也在论坛中开展起来。当代的大学生几乎都会接触甚至经常登陆自己感兴趣的论坛,在上面可以分享,也可以交流意见,但是,能把他们集中起来的论坛并不是很多。bbs论坛系统是为了方便大家的沟通和获取信息而开发的系统。我们利用asp.net知识和sqlserver2005开发bbs论坛管理系统。该系统以internet为平台,前台可使任何人注册、登录、登录在论坛上进行发帖、回帖、浏览帖子等。管理员也可以在后台对帖子、版块、用户等进行相关的管理。一个小型bbs论坛系统的前台功能主要包括浏览搜索帖子、用户登陆注册、发表回复帖子、个人资料管理和帖子管理;后台功能主要包括用户管理、论坛版块管理和帖子管理等。1.2系统目标开发本系统意在吸纳大部分游离在众多论坛的大学生,达到校内网等论坛的目标. 系统开发的总任务是实现文章的成功发表,留言的发布与回复。从而达到用户之间信息交流的目的。系统主要面向两类用户:用户和系统管理员。用户可以先注册,然后在网站里发表文章、留言等。系统管理员可以对用户的信息进行增添和删除及修改,对版块进行增加、删除和修改操作;还可以对网站进行修改与维护。1.3定义论坛也称为bbs,是bulletin board system的简称,意即电子公告板,是一种在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 帖子列表显示页面功能:主要是显示帖子列表,方便未注册的用户浏览查看;如果浏览过程中发现自己感兴趣的话题或帖子,可以回到登录页面进行注册,成功注册后可以发表自己的话题及对感兴趣的帖子进行回复等操作;相关代码如下:public partial class default1 : system.web.ui.pagebll.tbuser userbll = new bll.tbuser();bll.tbtopic topicbll = new bll.tbtopic();string sqlcon = configurationmanager.connectionstringsmycon.tostring();/用于将数据库中的帖子绑定到datalist中让其显示在页面上private void setbind() sqlconnection cn = new sqlconnection(sqlcon);string sql = select * from tbtopic,tbuser where topicparentid is null and tbtopic.topicuserid=tbuser.userid order by topiccreatetime desc;sqldataadapter da = new sqldataadapter(sql,cn);datatable dt = new datatable();da.fill(dt);dataview dv = new dataview(dt);pageddatasource pds = new pageddatasource();pds.datasource = dv;pds.allowpaging = true;pds.pagesize =5;viewstatelastpageindex = pds.pagecount - 1;pds.currentpageindex = int.parse(viewstatepageindex.tostring ();dlmessage.datasource =pds;dlmessage.databind();/主要用于将页面数据分页显示,方便用户浏览页面protected void pageindex(object sender, eventargs e)linkbutton lb = (linkbutton)sender);int pageindex = 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();/在页面底部显示该页从开始到结束的页码,用户可以随便浏览页面的任何一页private void pagebuilder() int pagecount = int32.parse(viewstatelastpageindex.tostring() + 1;hashtable htpageindex = new hashtable();for (int i = pagecount - 1; i = 0; i-) htpageindex.add(i, pagecount - i); datalist2.datasource = htpageindex;datalist2.databind();protected void lkbpageindex_click(object sender, eventargs e)viewstatepageindex = int.parse(linkbutton)sender).text) - 1;setbind();5.2 发表帖子页面图5-2 发表帖子页面功能:用户登录后进行选择感兴趣的主题进行发表帖子,先在标题栏输入你要发表的帖子相关代码如下:public partial class sendmessage : system.web.ui.pagebll.tbuser userbll = new bll.tbuser();bll.tbtopic topicbll = new bll.tbtopic();dal.tbboard boarddal = new dal.tbboard();string sqlcon = configurationmanager.connectionstringsmycon.tostring();protected void page_load(object sender, eventargs e)if (!ispostback)setbind();/先判断用户是否登录,若登录了,在tb_topic表中取出所有已发表的主题列表,并绑定到repeat控件中private void setbind() datatable dttopic = new datatable();string strwhere = ;if (sessionuserid != null)strwhere = topicuserid= + sessionuserid.tostring() + ;dttopic = topicbll.getlisttable(strwhere);rptmessage.datasource = dttopic;rptmessage.databind();/点击发送按钮将用户发表的帖子提交到数据库表tbtopic中protected void btnsendmessage_click(object sender, eventargs e) string topicid = guid.newguid().tostring();string topicuserid = sessionuserid.tostring();string topicboardid = boarddal.getboardid(ddlboardname.text.trim();using (sqlconnection cn = new sqlconnection(sqlcon) cn.open();string sqlcmd = insert into tbtopic (topicid,topictitle,topiccontent,topicboardid,topicuserid,topiccreatetime) values(topicid,topictitle,topiccontent,topicboardid,topicuserid,topiccreatetime);using ( sqlcommand cmd = new sqlcommand(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 管理员登录页面功能:管理员登录后台进行管理,相关代码如下:protected void btnlogin_click(object sender, eventargs e)string strwhere = username= + txtuserid.text.trim() + and userpassword= + txtpassword.text.trim() + ;datatable dtuser = userbll.getlisttable(strwhere);if (dtuser.rows.count 0)/记录用户信息sessionuserid = dtuser.rows0userid.tostring();/记录当前页sessioncurrentpageurl = httpcontext.current.request.url.pathandquery;/跳转到首页response.redirect(default1.aspx);else/用户密码或用户名错误,返回到错误页面response.redirect(usererror.aspx);protected void imglogin_click(object sender, imageclickeventargs e)string strwhere = username= + txtuserid.text.trim() + and userpassword= + txtpassword.text.trim() + ;datatable dtuser = userbll.getlisttable(strwhere );if (dtuser.rows.count 0)sessionuserid = dtuser.rows0userid.tostring();sessioncurrentpageurl = httpcontext.current.request.url.pathandquery;response.redirect(default1.aspx);elseresponse.redirect(usererror.aspx);protected void imgzhuce_click(object sender, imageclickeventargs e)/点击注册按钮,返回到注册页面response.redirect(register1.aspx);5.4 后台用户管理页面图5-4 后台用户管理页面功能:管理员登录用户管理页面对用户进行增加、删除、修改操作,相关代码如下: protected void gridview1_rowcommand(object sender, gridviewcommandeventargs e) /若要添加新用户,在gridview底部显示可编辑的行 if (e.commandname = new) gridview1.showfooter = true; /取消添加用户 if (e.commandname = addcancel) gridview1.showfooter = false; /点击添加成员按钮后,把已输入的信息提到数据库,并重新显示在gridview控件中 if (e.commandname = add) string userid = guid.newguid().tostring(); string username = (gridview1.footerrow.findcontrol(newuser) as textbox).text; string userpwd = (textbox)(gridview1.footerrow.findcontrol(newpwd).text; string usergender = (gridview1.footerrow.findcontrol(newgender) as radiobuttonlist).selectedvalue = 男 ? 1 : 0; string useremail = (gridview1.footerrow.findcontrol(newemail) as textbox).text;/在所编辑的行找到使用的控件,根据用户的userid,更新用户信息 if (e.commandname = update) string username = (textbox)(gridview1.rowsgridview1.editindex.findcontrol(txtusername).text; string userpwd = (textbox)(gridview1.rowsgridview1.editindex.findcontrol(txtpwd).text; string useremail = (textbox)(gridview1.rowsgridview1.editindex.findcontrol(txtemail).text; int usergender = (gridview1.rowsgridview1.editindex.findcontrol(rblsex) as radiobuttonlist).selectedvalue = 男 ? 1 : 0; string userismarried = (gridview1.rowsgridview1.editindex.findcontrol(rblismerried) as radiobuttonlist).selectedvalue = 是 ? true : false; string userright = (textbox)(gridview1.rowsgridview1.editindex.findcontrol(txtuserright).text; string userid = gridview1.datakeysgridview1.editindex.value.tostring(); bool hasfileuploaded = false; fileupload oupload = gridview1.rowsgridview1.editindex.findcontrol(uphoto) as fileupload; string filename = ; 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 = update tbuser set username= + username + ,userpassword= + userpwd + ,useremail= + useremail + ,usergender= + usergender + ,userface= + filename + ,userismarried= + userismarried + ,userright= + userright + where userid= + userid + ; else /执行更新语句,完成用户信息更新操作 sqldatasource1.updatecommand = update tbuser set username= + username + ,userpassword= + userpwd + ,useremail= + useremail + ,userface= + filename + ,userismarried= + userismarried + ,userright= + userright + where userid= + userid + ; /根据用户的userid,删除用户信息 if (e.commandname = delete) string userid = e.commandargument.tostring(); string strcon = data source=.;initial catalog=forum;integrated security=sspi; string sql = delete from tbuser where userid= + userid + ; sqldatasource1.deletecommand = sql; 六、系统总结6.1系统特点及不足本系统能完成留言的发送与回复。其中用户还可以注册,登录等功能。界面设计简单但不缺乏韵味。管理员能对系统进行管理,系统使用了母版页,还是用了一定的权限管理。所以会一个页面的设计就会其他的设计了。有的界面可以合并,比如说留言和查看留言就可以放到一个页面了,这样既方便又美观。修改密码界面还可以增加修改用户名,即可以对用户整体信息进行修改。如果能实现这个功能,系统将会更完善!6.2系统以后的扩展与拓宽有些方面没有考虑到,还有一些功能没有实现。比如说没有考虑版主的问题。不仅管理员可以登录后台对版块进行管理,其实版主

温馨提示

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

评论

0/150

提交评论