BBS论坛管理系统毕业论文
摘 要
本文是以ASP.NET 技术开发设计的文章发布系统。采用结构化生命周期法,自顶向下、逐层分解,模块化的系统结构设计。全文共分为绪论、系统概述、系统需求分析、系统功能分析(编程和管理)、系统主要界面设计、系统总结等六章。绪论中阐述了系统的意义和系统的开发环境。系统概述中阐述了系统背景,所用技术、系统目标以及功能等。系统设计阶段阐述了网站的总体设计思想、首页的设计、网站的总体功能设计以及数据库的逻辑设计。在系统总结中阐述了系统的优劣势以及系统的扩展。文中详细说明了系统分析、系统设计的方法在系统实际开发中应用,并总结了开发过程中的一些经验和体会。
关键词:BBS ASP.NET C# sql server2005
Abstract
This paper is to release system based on ASP.NET technology development and design of the article. Use structured life cycle method, top-down, layer decomposition, modular structure design. The full text is divided into the introduction, system analysis, system requirements analysis, outline of system function (programming and management), the main interface of system design, system summary chapter six. The introduction expounds the meaning and system development environment. System overview describes the background of the system, technology, system objectives and functions used. The system design expounded website design ideas, home page design, website design and database functions of the overall logic design. In the system summary describes the advantages and disadvantages of the extended system and system. This paper details the methods of system analysis, system design and application in the actual development of the system, and summarizes some experience in the process of development and experience.
Keywords: BBS ASP.NET C# SQL Server2005
目录
摘 要 ............................................................................................................................................... I Abstract . ........................................................................................................................................... II 1 引 言 ....................................................................................................................................... - 1 -
✧ 1.1开发背景................................................................................................................ - 1 - ✧ 1.2系统目标............................................................................................................... - 1 - ✧ 1.3定义 ....................................................................................................................... - 1 - 2 系统概述 ................................................................................................................................. - 2 -
✧ 2.1系统流程................................................................................................................ - 2 - ✧ 2.2 版块、帖子、用户模块的主要实现思路及图例 . .............................................. - 2 - 3系统需求分析 .......................................................................................................................... - 4 -
✧ 3.1系统基本功能需求 . ............................................................................................... - 4 - ✧ 3.2系统数据库设计 . ................................................................................................... - 4 - ✧ 3.3系统业务流程及描述 . ........................................................................................... - 6 - ✧ 4.1功能界面框图 . ..................................................................................................... - 10 - ✧ 4.2功能描述.............................................................................................................. - 10 - 5系统主要界面设计 ................................................................................................................ - 12 -
✧ 5.1 显示帖子列表页面 . ............................................................................................ - 12 - ✧ 5.2 发表帖子页面 . .................................................................................................... - 13 - ✧ 5.3 管理员登录页面 . ................................................................................................ - 13 - ✧ 5.4 后台用户管理页面 . ............................................................................................ - 14 - 6 系统总结 ............................................................................................................................... - 14 -
✧ 6.1系统特点及不足 . ................................................................................................. - 14 - ✧ 6.2系统以后的扩展与拓宽 . ..................................................................................... - 14 - ✧ 6.3自己的体会与感想 . ............................................................................................. - 15 - 致 谢 ....................................................................................................................................... - 16 - 参考文献 ................................................................................................................................... - 17 - 附录 ........................................................................................................................................... - 18 -
1 引 言
1.1开发背景
BBS 起源于20世纪80年代初。最初,论坛只是用于发布公告信息,讨论问题的在线交流平台。后来,随着网络的普及,论坛的功能越来越丰富,受到广大网民的欢迎。因此,商业网站对论坛重视起来,纷纷在自己的网站上开辟论坛。作为与网民交流的园地。同时在线技术支持和在线服务也在论坛中开展起来。当代的大学生几乎都会接触甚至经常登陆自己感兴趣的论坛,在上面可以分享,也可以交流意见,但是,能把他们集中起来的论坛并不是很多。
BBS 论坛系统是为了方便大家的沟通和获取信息而开发的系统。我们利用Asp.Net 知识和SqlServer2005开发BBS 论坛管理系统。该系统以Internet 为平台,前台可使任何人注册、登录、登录在论坛上进行发帖、回帖、浏览帖子等。管理员也可以在后台对帖子、版块、用户等进行相关的管理。一个小型BBS 论坛系统的前台功能主要包括浏览搜索帖子、用户登陆注册、发表回复帖子、个人资料管理和帖子管理;后台功能主要包括用户管理、论坛版块管理和帖子管理等。
1.2系统目标
开发本系统意在吸纳大部分游离在众多论坛的大学生, 达到校内网等论坛的目标. 系统开发的总任务是实现文章的成功发表,留言的发布与回复。从而达到用户之间信息交流的目的。系统主要面向两类用户:用户和系统管理员。用户可以先注册,然后在网站里发表文章、留言等。系统管理员可以对用户的信息进行增添和删除及修改,对版块进行增加、删除和修改操作;还可以对网站进行修改与维护。
1.3定义
论坛也称为BBS ,是bulletin Board System的简称,意即电子公告板,是一种在Internet 上常见的用于信息服务的Web 系统,它主要给浏览者提供相互沟通的平台,以此来吸引用户,服务用户。
2 系统概述
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系统需求分析
3.1系统基本功能需求
BBS 实现功能
此次课程设计的题目是小型BBS 论坛设计主要是实现新用户注册、会员登录、会员发布帖子、会员回复帖子、留言、回复留言、修改用户密码、查询帖子信息、修改发布帖子、删除发布帖子、删除非法用户(管理员权限)等功能。
3.2系统数据库设计
经分析及需求得出BBS 数据库包含六张表,具体内容如下: (一)
表tb_Users存放论坛用户,主要字段就是分类编号UserId 和分类名称UserName ,详细信
息如图3-1:
图3-1论坛分类表
(二) 表tb_hf存放论坛回帖版块,主要字段有板块hfId 、ContId 等,详细信息如图3-2:
图3-2回复表
(三) 表tb_Content是用来存放论坛帖子,主要字段有帖子编号ContId 、Subject 、Words 等详细信
息如图3-4:
图3-4主题表
(四) 表tb_toxiang存放论坛头像,主要字段有用户编号Id 、Image 详细信息如图3-5:
图3-5 头像表
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 系统功能分析
4.1功能界面框图
论坛是网络常见的一个应用,用于网络用户的信息交流。如:知名的天涯在线论坛。通过论坛系统,用户可以发表自己的言论(主题贴),其他的用户可以对主题贴进行评论(跟贴)或发表更多的言论(主题贴)。
图4-1 系统主要功能模块图
4.2功能描述
(一) 会员注册
新会员注册,提供会员信息,检验会员信息的有效性, (二) 会员登陆
提供用户凭证,验证用户信息,基于角色授权。 (三) 会员管理
管理员由系统初始化分配一个,管理员可以对会员信息 户角色调整,版主调整,删除会员等。
(四) 论坛版块管理
管理员可以添加、删除、论坛版块 (五) 帖子管理
管理员可以对所有帖子进行删除等操作, 也可以对本版块帖子进行置顶、删除等操作。 (六) 帖子发表
注册用户可以在感兴趣的版块中发表新主题帖(七) 帖子回复
用户可以对自己感兴趣的主题发表回复 (八) 帖子浏览
用户可以浏览所有可见帖子
5系统主要界面设计
5.1 显示帖子列表页面
图5-1 帖子列表显示页面
功能:主要是显示帖子列表,方便未注册的用户浏览查看;如果浏览过程中发现自己感兴趣的话题或帖子,可以回到登录页面进行注册,成功注册后可以发表自己的话题及对感兴趣的帖子进行回复等操作;
5.2 发表帖子页面
图5-2 发表帖子页面
功能:用户登录后进行选择感兴趣的主题进行发表帖子,先在标题栏输入你要发表的帖子:
5.3 管理员登录页面
图5-3 管理员登录页面
功能:管理员登录后台进行管理
5.4 后台用户管理页面
图5-4 后台用户管理页面
功能:管理员登录用户管理页面对用户进行增加、删除、修改操作
6 系统总结
6.1系统特点及不足
本系统能完成留言的发送与回复。其中用户还可以注册,登录等功能。界面设计简单但不缺乏韵味。管理员能对系统进行管理,系统使用了母版页,还是用了一定的权限管理。所以会一个页面的设计就会其他的设计了。
有的界面可以合并,比如说留言和查看留言就可以放到一个页面了,这样既方便又美观。修改密码界面还可以增加修改用户名,即可以对用户整体信息进行修改。如果能实现这个功能,系统将会更完善!
6.2系统以后的扩展与拓宽
有些方面没有考虑到,还有一些功能没有实现。比如说没有考虑版主的问题。不仅
管理员可以登录后台对版块进行管理,其实版主也可以直接对版块进行相关的操作。另外界面的友好性可能还不够,也许有些地方只是按照自己的理解设计的,可能存在缺陷,以后慢慢拓宽和改善,也由于自己努力不够,能力有限,希望在以后的学习中让系统尽可能的从各方面完善。
6.3自己的体会与感想
通过努力,BBS 论坛系统基本完成。系统实现了用户注册、登录,帖子浏览,管理员对用户信息、版块信息及帖子信息管理等基本功能。通过本系统的开发,本人感受颇深,受益匪浅,获得了许多宝贵的软件开发经验,对将来的学习和工作都有极大的帮助。但同时,由于个人经验及能力尚欠不足,系统在技术实现上还有很多不尽如人意的地方。比如,一开始就编码,没有很好的做好概要设计,加重了代码修改及维护的工作量;公共类设计的不够精炼,常用方法没有完全集成到公共类中,导致经常重复性编码;只考虑技术的实现,对美工考虑不足,页面间的逻辑关系有时不是很合理等,这些问题都还有待进一步优化、完善。总之觉得开发一款完美的软件真是件不容易的事情,以后我会更加努力。
致 谢
本系统能够顺利完成要大力感谢指导老师:陈老师在百忙中抽出时间给予指导和帮助。同样感谢寝室成员的大力支持!最后,向这些给予我帮助的老师同学致以衷心的谢意。
本次毕业设计中,我从陈良敏指导老师身上学到了很多很多的东西。该老师认真负责的工作态度、严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给予了我很大的帮助,使我得到了不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在系统开发过程中陈老师给予我很大的帮助,帮助解决了不少的难点,使得系统能及时开发完成。谢谢!
参考文献
[1] 邵鹏明.C#面向对象程序设计. 清华大学出版社,2008年4月
[2] 孟宪会 张慧研.ASP.NET 2.0应用开发技术. 人民邮电出版社,2007年8月 [3] 金旭亮..NET 2.0面向对象编程揭秘. 电子工业出版社,2007年6月 [4] 周奇.SQL Server2005数据库基础及应用技术. 北京大学出版社,2009年2月
[5] 陈元春 张亮 王勇. 实用数据结构基础.2007年8月第2版. 中国铁道出版社,2008年8月 [6] 王养廷 李磊 宋汉珍.UML 基础与应用. 清华大学出版社,2009年6月 [7] 杜文洁. 软件测试教程. 清华大学出版社,2009年7月 [8] 韩陵宜. 网页制作. 中国科学技术大学出版社,2008年1月 [9] 曾光 马军.JavaScript 入门与提高. 科学出版社,2008年11月 [10]朱晔.ASP.NET 第一步.2007年7月第一版. 清华大学出版社, 2008,01
附录
主界面
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this .IsPostBack)
{
// 将系统时间与13进行比较,来获取问候语
int Time = System.DateTime .Now.Hour.CompareTo(13);
string str;
if (Time > 0)
{
str = " 下午好!" ;
}
else if (Time
{
str = " 上午好!" ;
}
else
{
str = " 中午好!" ;
}
if (Session["UserName" ] == null && Session["UserPwd" ] == null )
{
}
else
{
//this.Label6.Visible = true;
}
this .aa();
this .Label6.Text = str;
}
}
public void aa()
{
SqlConnection con = DB .createDB();
cmd.Connection = con;
con.Open();
SqlDataAdapter sda = new SqlDataAdapter ("select * from tb_Content", con);
DataSet ds = new DataSet ();
sda.Fill(ds, "tb_Content");
this .gvlt.DataSource = ds;
this .gvlt.DataKeyNames = new string [] { "ContId" };
this .gvlt.DataBind();
con.Close();
}
protected void gvlt_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this .gvlt.PageIndex = e.NewPageIndex;
this .aa();
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("~/teizixinxi/addteizi.aspx");
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
Response.Redirect("~/denglu/denglu.aspx");
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
Response.Redirect("~/dangqianxinxi/dqyhxinxixg.aspx");
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("~/yonghuxinxi/yonghu.aspx");
}
protected void LinkButton5_Click(object sender, EventArgs e)
{
Response.Redirect("~/yonghuxinxi/yonghuchaxun.aspx");
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("~/teizixinxi/addteizi.aspx");
}
protected void ImageButton1_Click1(object sender, ImageClickEventArgs e)
{
SqlConnection con = DB .createDB();
cmd.Connection = con;
con.Open();
cmd.CommandText = "select count(*) from tb_Users where UserName='" + this .txtname.Text + "'and UserPwd='" + this .txtpwd.Text + "' ";
int a = Convert .ToInt32(cmd.ExecuteScalar());
if (a > 0)
{
Response.Write("");
Session["UserName" ] = this .txtname.Text;
Session["UserPwd" ] = this .txtpwd.Text;
this .Literal1.Text = Session["UserName" ] .ToString()+ " " + " 登录成功" ;
txtname.Text = "" ;
txtpwd.Text = "" ;
}
else
{
Response.Write("");
}
con.Close();
}
protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("~/zhucexinix/zhucexinxi.aspx");
}
protected void gvlt_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
if (Session["UserName" ] == null && Session["UserPwd" ] == null )
{
Response.Redirect("~/denglu/denglu.aspx");
}
else
{
if (Session["UserName" ].ToString() == "curt" && Session["UserPwd" ].ToString() == "curt" ) {
string ContId = this .gvlt.DataKeys[e.RowIndex].Value.ToString();
SqlConnection con = DB .createDB();
con.Open();
SqlCommand cmd = new SqlCommand ("delete from tb_Content where ContId='" + ContId + "'" , con); cmd.ExecuteNonQuery();
this .aa();
Response.Redirect("~/tisixinxi/chenggong.aspx");
this .gvlt.EditIndex = -1;
}
else
{
Response.Write("");
}
}
}
}
注册
public partial class zhuce : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection con = DB .createDB();
SqlCommand cmd = new SqlCommand ();
cmd.Connection = con;
con.Open();
string sqlstr = "select * from tb_touxiang";
SqlDataAdapter myda = new SqlDataAdapter (sqlstr, con);
DataSet myds = new DataSet ();
myda.Fill(myds, "tb_touxiang");
this .ddltouxiang.DataSource = myds.Tables["tb_touxiang"];
this .ddltouxiang.DataTextField = "Image" ;
this .ddltouxiang.DataBind();
this .imgtouxiang.ImageUrl = this .ddltouxiang.SelectedValue;
con.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (this .txtname.Text != "curt" )
{
SqlConnection con = DB .createDB();
con.Open();
SqlTransaction st = con.BeginTransaction();//通过SqlConnection 的BeginTransaction 方法创建名为st 的对象Transaction
SqlCommand cmd = con.CreateCommand();
cmd.Transaction = st;////将SqlTransaction 对象分配给SqlCommand 对象的Transaction 属性 try
{
//向用户表中插入注册信息
cmd.CommandText = "insert into tb_Users(UserName, UserPwd, Ename, Email, Logo) values('" + this .txtname.Text + "','" + this .txtpwd.Text + "','" + this .txtywname.Text + "','" + this .txtemail.Text + "','" + this .ddltouxiang.SelectedItem.Text.ToString() + "')" ;
cmd.ExecuteNonQuery();
st.Commit();//提交事物
Response.Redirect("~/tisixinxi/chenggong.aspx");
}
catch (Exception error)
{
Response.Redirect("~/tisixinxi/shibai.aspx");
st.Rollback();//回滚事物
}
}
else
{
Response.Write("");
}
//con.Close();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this .imgtouxiang.ImageUrl =this .ddltouxiang.SelectedValue;
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("~/Default.aspx");
}
protected void lyhgl_Click(object sender, EventArgs e)
{
Response.Redirect("~/yonghuxinxi/yonghu.aspx");
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
Response.Redirect("~/dangqianxinxi/dqyhxinxixg.aspx");
}
protected void LinkButton5_Click(object sender, EventArgs e)
{
Response.Redirect("~/yonghuxinxi/yonghuchaxun.aspx");
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
Response.Redirect("~/denglu/denglu.aspx");
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e) {
Response.Redirect("~/teizixinxi/addteizi.aspx");
}
protected void lbtnsy_Click(object sender, EventArgs e)
{
Response.Redirect("~/Default.aspx");
}
}
注册修改
public partial class zhucexinxi : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnty_Click(object sender, EventArgs e)
{
Response.Redirect("zhuce.aspx" );
}
protected void btnbty_Click(object sender, EventArgs e)
{
Response.Redirect("~/default.aspx");
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("~/yonghuxinxi/yonghu.aspx");
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
Response.Redirect("~/denglu/denglu.aspx");
}
protected void lbtnsy_Click(object sender, EventArgs e)
{
Response.Redirect("~/Default.aspx");
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
Response.Redirect("~/dangqianxinxi/dqyhxinxixg.aspx");
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e) {
Response.Redirect("~/teizixinxi/addteizi.aspx");
}
}