BBS论坛需求分析设计与实现.doc

上传人:精*** 文档编号:831225 上传时间:2023-09-06 格式:DOC 页数:27 大小:867.19KB
下载 相关 举报
BBS论坛需求分析设计与实现.doc_第1页
第1页 / 共27页
BBS论坛需求分析设计与实现.doc_第2页
第2页 / 共27页
BBS论坛需求分析设计与实现.doc_第3页
第3页 / 共27页
BBS论坛需求分析设计与实现.doc_第4页
第4页 / 共27页
BBS论坛需求分析设计与实现.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、摘要1当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。为了方便信息的交流,在结合Asp.Net和Ajax 技术之下开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。论坛用当今主流的网站开发技术C#语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。数据库Microsoft公司的SQL Server2005数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们

2、还可以对网友的问题及时地解决,获取对自己有用的知识。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!关键字:BBS论坛 ASP.NET Ajax目录第 一 章 系统分析11.1 系统开发运行环境11.2 业务描述11.3 系统功能概述2第 二 章系统设计42.1 数据库设计42.2概念模型设计(E-R图)42.3数据库表及关系建立52.4详细数据库结构设计62.5功能模块设计8第 三 章12系统详细设计与实现1

3、23.1系统前台界面设计123.2系统后台页面设计20第 四 章结论22第 四 章结论22参考文献23致 谢2424第 一 章 系统分析1.1 系统开发运行环境鉴于系统的开发语言和数据库,采用如下的开发环境开发环境: Windows XP Microsoft Visual Studio 2008 SQL Server 2005硬件实现: Pentium2.4G 1G内存 120G硬盘开发语言: C#数 据 库: SQL Server 2005开发工具: Microsoft Visual Studio 20081.2 业务描述对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不

4、同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等,系统的用例图如下:会员用户临时用户浏览帖子发表帖子回复帖子修改资料会员搜索管理员会员管理帖子管理论坛信息管理图2.5 系统用例图1.3 系统功能概述本系统是一套网上交流的BBS软件,根据用户的需要和实际的管理条件,应由用户功能实现,帖子功能实现和后台管理等几个模块所构成,用户可以对一些数据进行查找和修改,并且注册的用户可以对帖子进行特定的操作,而管理员可以对用户和帖子进行相关的管理.鉴于本系统的性质,系统应该实现以下功能.1.用户功能实现(1).用户的登录(2

5、).用户的注册(3).用户的查找(4).用户资料的修改2.帖子功能实现(1).帖子的发表(2).帖子的回复(3).帖子的查找3.后台管理(1).用户的管理(2).帖子的管理(3).论坛信息的管理(4).论坛版块的管理BBS论坛系统的数据流程图如下用户查看帖子P2F1帖子资料P3回复帖子P1发表帖子P4搜索帖子P5搜索用户F2用户资料P6资料修改(1)(3)(2)(4)(5)(5)(6)(7)(8)(9)(10)(11)(12)(13)说明:访问信息,用户信息,发表帖子信息,更新帖子信息,搜索信息获取帖子信息,回复信息,搜索用户,更新用户信息,获取用户资料图2.6 数据流程图第 二 章系统设计2

6、.1 数据库设计数据库和设计概述(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。(3)数据库设计是信息系统开发和建设的重要组成部分。2.2概念模型设计(E-R图)数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。 本系统的ER图用户M发表N帖子 详细资料11N管理管理员 1 N添加1修改

7、论坛图2.1 系统E-R图2.3数据库表及关系建立根据以上这些步骤就可以创建一个数据库,依次建立下列表结构。1.用户基本资料表2.用户详细信息表3.论坛文章表4.论坛版区表 5.论坛初始化信息表 (1).用户基本信息表和文章表是一对多的关系,即一个用户可以发表多篇文章和回复。(2).论坛版区表和论坛文章表是一对多的关系,在一个论坛中可以含有多个文章和回复。(3). 论坛文章和回复表是一对多的关系,在一篇文章中可以对应多条回复内容。2.4详细数据库结构设计数据库名:BBSDatabase(1).管理员基本资料表:表名:manager序号列名数据类型长度小数位标识主键允许空默认值说明1MIDint

8、40是是否2Mnamevarchar500否3Mpasswordvarchar500否4McreateDatedatetime83否(getdate()5Mremakevarchar5000是(2).回复信息表:表名:replay序号列名数据类型长度小数位标识主键允许空默认值说明1RIDuniqueidentifier160是否(newid()2RtIDuniqueidentifier160否(newid()3RsIDint40否4Rfaceint40是5Rcontentstext160否6Rtimedatetime83否(getdate()(3).角色权限表:表名:role序号列名数据类型长

9、度小数位标识主键允许空默认值说明1IDint40是是否2RoleIDint40是3Rodevarchar500是(4).版块信息表:表名:section序号列名数据类型长度小数位标识主键允许空默认值说明1SIDint40是是否2Snamevarchar500否3SmasterIDint40是4SclickCountint40是(0)5StopicCountint40是(0)6Sprofilevarchar500是(5).帖子信息表:表名:topic序号列名数据类型长度小数位标识主键允许空默认值说明1TIDuniqueidentifier160是否(newid()2TsIDint40否3TuID

10、int40否4TreplyCountint40否(0)5Tfaceint40是6Ttopicvarchar500否7Tcontentstext160否8Ttimedatetime83否(getdate()9TclickCountint40否(0)10Tstateint40否(0)11TlastTimedatetime83是(1).用户基本资料表:表名:users序号列名数据类型长度小数位标识主键允许空默认值说明1UIDint40是是否2Unamevarchar500否3Upasswordvarchar500否(888888)4Usexbit10是(0)5Uemailvarchar500是6Uc

11、lassint40否(1)7Uremarkvarchar500是8UregDatedatetime83否(getdate()9Ustateint40否(0)10Upointint40否(20)11Ufacevarchar500否2.5功能模块设计绘制出的用例图,将本系统分为三个大的模块,他们分别是会员资料模块,帖子资料模块和后台管理模块!本系统的功能层次图如图2.2所示BBS系统会员模块帖子模块后台管理会员登录会员注册资料修改帖子发表回复帖子帖子查找论坛管理帖子管理图片管理会员管理会员查找图2.2系统功能层次图如图2.2 系统实现了如下的功能.(1).会员模块: 此模块用来实现会员的登陆注册和

12、会员资料的修改和查找.1.会员登陆模块:会员可以通过此模块对论坛进行登陆,登陆后便可以使用所有的会员功能,比如发帖回复等等.2.会员注册模块:没有会员帐号的用户,可以通过此模块添加会员信息,添加成功后便可登陆论坛,使用会员功能.3.资料修改模块:已注册的会员在登陆后,可以通过此模块,对会员的基本资料,联系方式,密码,头像等资料进行修改.4.会员查找模块:已注册的会员在登陆后, 可以通过此模块,对会员进行查找,并可以查看对方的资料,联系方式等等,从而方便会员之间的联系.(2).帖子模块:1.帖子发表模块:已注册的会员在登陆后,可以在相应的论坛中,发表或转载自己的大作,发表成功后,其他会员便可以在

13、相应的论坛中看到这篇帖子,并可以对其进行回复等操作.2.帖子回复模块:会员在发表完帖子后,用户便可查看相关文章,并可以在文章中对已发表的帖子进行回复,3.帖子查找模块会员可以通过此模块,根据帖子的标题和作者,对相关的帖子进行查找.(3).后台管理:1.帖子查找模块:此模块和帖子模块中的帖子查找类似,只是管理员的搜索条件比普通用户更加的广泛,使搜索变的便捷.2.帖子管理模块:帖子管理模块是管理员对帖子管理的平台,如果管理员查看到帖子有不适宜发表的内容时,可以对帖子选择删除或者锁定等操作,如果看到优秀的帖子,还可以将帖子进行置顶,加精,帖子管理模块帖子修改帖子删除帖子锁定帖子置顶帖子加精图2.3帖

14、子管理模块功能层次图3.会员管理模块:管理员可以通过此模块,对会员进行管理,对一些不法的用户可以修改或者删除资料,4.论坛版块管理管理员对论坛版块的添加,创建,删除等功能都是在此模块里进行处理.第 三 章系统详细设计与实现3.1系统前台界面设计(1)用户登录页面主要代码:public partial class Site1 : System.Web.UI.MasterPage protected void Page_Load(object sender, EventArgs e) if (SessionUserName != null) Panel1.Visible = false; Pane

15、l3.Visible = true; Label4.Text = SessionUserName.ToString(); else Panel3.Visible = false; Panel1.Visible = true; protected void btnOK_Click(object sender, EventArgs e) string strConn = ConfigurationManager.ConnectionStringsBBSConn.ToString(); SqlConnection conn; using (conn = new SqlConnection(strCo

16、nn) conn.Open(); using (SqlCommand cmd = new SqlCommand() cmd.Connection = conn; cmd.CommandText = Select count(*) from users where Uname=UserName; cmd.Parameters.AddWithValue(UserName, TextBox1.Text); if (cmd.ExecuteScalar().ToString() = 0) Page.ClientScript.RegisterStartupScript(this.GetType(), ,

17、alert(用户名不存在!); else cmd.CommandText = select UID from users where Uname=UserName and Upassword=UserPassword; cmd.Parameters.AddWithValue(UserPassword, TextBox2.Text); if (cmd.ExecuteScalar() = null) Page.ClientScript.RegisterStartupScript(this.GetType(), , alert(密码不正确!);); else SessionUserID = cmd.

18、ExecuteScalar().ToString(); SessionUserName = TextBox1.Text; Page.ClientScript.RegisterStartupScript(this.GetType(), , alert(登录成功);location.href=location.href); protected void btnExit_Click(object sender, EventArgs e) Session.Abandon(); Page.ClientScript.RegisterStartupScript(this.GetType(), , alert

19、(注销成功);location.href=location.href); protected void ImageButton1_Click(object sender, ImageClickEventArgs e) BLL.topic t = new MyBBS.BLL.topic(); string tid; tid = t.GetTid(tbSearch.Text.Trim(); Response.Redirect(string.Format(Topic.aspx?id=0, tid); (2)论坛首页界面(3)论坛帖子页面主要代码:public partial class Sectio

20、n : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) ViewStateorderBy = order by Ttime DESC; MyBind(); public static int curPageIndex = 0; public static int pageCount; public const int PAGESIZE = 10; BLL.topic top = new MyBBS.BLL.topic(); private void MyBind()

21、 string id = Requestid.ToString(); ApplicationSid = id; int ID =Int32.Parse( id); GridView1.DataSource= top.GetList(ID,ViewStateorderBy.ToString().Tables0; GridView1.DataBind(); protected void ImageButton1_Click(object sender, ImageClickEventArgs e) Response.Redirect(./User/WriteTopic.aspx); protect

22、ed void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) GridView1.PageIndex = e.NewPageIndex; MyBind(); (4)论坛发帖页面(5)个人主页页面主要代码:protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) MyBind(); DetailsBind(); TopicBind(); int uid = Convert.ToInt32(SessionUserID); lbP

23、wd.Text = user.GetList(uid).Tables0.Rows02.ToString(); tbPwd.Text= user.GetList(uid).Tables0.Rows02.ToString(); /tbUserHeple.Text = user.GetList(uid).Tables0.Rows01.ToString(); private void TopicBind() int uid = Convert.ToInt32(SessionUserID); string sql = string.Format( TuID=0 and SID=TsID order by

24、 Ttime DESC,uid); gvUserTopic.DataSource = top.GetUserTopic(sql); gvUserTopic.DataBind(); private void DetailsBind() int uid = Convert.ToInt32(SessionUserID); dtvUserInfo.DataSource = user.GetList(uid); dtvUserInfo.DataBind(); private void MyBind() int uid = Convert.ToInt32(SessionUserID); dlUserInf

25、o.DataSource = user.GetList(uid); dlUserInfo.DataBind(); BLL.users u = new MyBBS.BLL.users(); Model.users Muser = new MyBBS.Model.users(); public static System.Drawing.Image GetNewImage(string oldImgPath, int newWidth, int newHeight) System.Drawing.Image oldImg =System.Drawing. Image.FromFile(oldImg

26、Path); / 加载原图片 . System.Drawing.Image newImg = oldImg.GetThumbnailImage(newWidth, newHeight, new System.Drawing.Image.GetThumbnailImageAbort(IsTrue), IntPtr.Zero); / 对原图片进行缩放 return newImg; private static bool IsTrue() / 在Image类别对图片进行缩放的时候,需要一个返回bool类别的委托 return true; protected void btnOK_Click(obje

27、ct sender, EventArgs e) int uid = Convert.ToInt32(SessionUserID); string uName = SessionUserName.ToString(); bool b =user.IsUserName(uName,tbUserName.Text.Trim(); if (b) /rfvPassword.ErrorMessage = 密码不正确!; Page.ClientScript.RegisterStartupScript(this.GetType(), 提示!, alert(此用户名已存在!);); else Muser.UID

28、 = uid; Muser.Uname = tbUserName.Text.Trim(); Muser.Upassword = tbNewPwd1.Text.Trim(); Muser.Uemail = tbEmail.Text.Trim(); bool bSex = rblSex.Items.FindByValue(0).Value = 0 ? true : false; Muser.Uclass = Convert.ToInt32(user.GetList(uid).Tables0.Rows05); Muser.UregDate = Convert.ToDateTime(user.GetL

29、ist(uid).Tables0.Rows07); Muser.Ustate = Convert.ToInt32(user.GetList(uid).Tables0.Rows08); Muser.Upoint = Convert.ToInt32(user.GetList(uid).Tables0.Rows09); Muser.Usex = bSex; Muser.Uface = imageName; Muser.Uremark = tbRemark.Text.Trim(); u.Update(Muser); MyBind(); DetailsBind(); TopicBind(); priva

30、te static string imageName = string.Empty; protected void Button1_Click(object sender, EventArgs e) string uid = SessionUserID.ToString(); System.Drawing.Image img = GetNewImage(FileUpload1.PostedFile.FileName, 130, 130); string imgPath = string.Format(./Images/Uface/0.gif,uid ); imageName = uid; Im

31、ageFace.ImageUrl = imgPath; img.Save(Server.MapPath(imgPath); 3.2系统后台页面设计(1)管理员登录页面(2)管理员页面主要代码: public partial class Msection : System.Web.UI.Page BLL.section sec = new MyBBS.BLL.section(); protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) MyBind(); private void MyBind() string

32、strSql = 1=1; GridView1.DataSource=sec.GetList(strSql).Tables0; GridView1.DataBind(); 第 四 章结论经过几个月的努力,已经基本完成了BBS系统的开发和设计.完成了用户模块,帖子模块和后台管理模块的开发,并基本实现了前期所制定的功能.BBS系统在不断的设计更改过程中,逐渐的成熟。在编写的最后阶段中,参考了一些设计模式,在逻辑代码和数据库连接ADO.NET中抽象出了若干接口,并对其进行了对象的依赖注入,大大的减少了模块之间的耦合,使系统具有很高的灵活性和可维护性,这是BBS系统最大的优点.另外在系统的另一个优点就

33、是HTML同步传输和AJAX异步传输技术的结合使用,既减轻了服务器的负担,也加快了用户的访问效率.当然BBS系统也存在很多不足的地方,比如用户的权限判断过于简单,安全性低,希望在今后的学习中,逐步的进行改进.通过这次的设计, 加深了对三层架构,以及面向对象思想的一些理解.对于软件工程方面的设计思想也有了更深一步的理解,只有在不断的实践于学习中,才会得到最丰厚的回报.参考文献1 冯燕奎, 赵德奎. ASP实用案例教程M 清华大学出版社, 2004, 5: 70-1002 王家华 ASP.NET 面向对象程序设计东北大学出版社3 王宜贵 软件工程M 北京:机械工业出版社4 熊节、林仪明、张凯峰、陈玉泉等主编CSDN社区电子杂志.NET杂志创刊号 5 金旭亮 .NET 2.0 面向对象编程揭秘 高等教育出版社

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922