博客管理系统课程设计说明书.docx
《博客管理系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《博客管理系统课程设计说明书.docx(27页珍藏版)》请在冰点文库上搜索。
博客管理系统课程设计说明书
博客管理系统
一、系统分析
1.总体需求
本系统要实现个人博客的主要基本功能有主界面,博客用户登录发表文章,系统管理员查看和删除,游客发表评论,分页浏览文章和评论等。
2.业务分析
系统角色:
匿名用户、注册用户、系统管理员。
①匿名用户:
由注册、登录、浏览博客、评论4个部分组成。
匿名用户可以对其他用户的博客内容时行浏览、评论。
也可以通过注册后登录博客系统,申请一个属于自己的博客。
②注册用户:
由个人信息管理、评论管理、好友管理、相册管理、文章管理5个部分组成。
这些功能可以对用户个人博客中的个人信息、好友、评论、相册和文章进行设置。
系统管理员:
由用户管理、评论审核管理、相册审核管理、文章审核管理、链接管理5部分组成。
这是为了对注册用户的博客内容与个人信息进行管理,并对博客中的评论、相册、文章进行审核,审核通过后才能发表。
在对需求进行分析的基础上,提出博客管理系统的功能如图1所示。
图1博客网站的系统用例图
3.非功能性需求
系统用户数300人以内,游客40人。
在线用户数50人,发表用户数5-40人。
单用户查询操作请求响应时间一般不大于2秒,最长不大于5秒。
在Windows操作系统平台下运行,系统7*24小时运行,停机时间不超过2%。
系统界面友好,易于使用,并提供联机帮助功能。
4.系统功能模块设计
根据博客系统的业务需求分析,可知博客管理系统的功能有:
博客注册,新用户信息登记,用户发表博客,删除博客等。
博客注册:
包括用户账户注册。
新用户信息登记:
创建后的用户自行记住密码并直接登录。
用户发表评论:
发表自己的所思所闻,是一个动态信息,及时更新,有利于了解好友的现状。
删除博客:
用户在博客内评论内容涉及不良内容需要删除。
根据以上详细功能分析,设计博客管理系统功能结构如图2所示。
图2系统模块图
二、系统数据库设计
1.概念设计
博客管理系统涉及的实体有4个,分别是文章、博客、评论、类型、用户表等。
文章具有7个属性:
编号、标题、正文、图片、时间、用户编码、正文编码、其中用户编号是主键。
博客具有2个属性:
照片、注册,其中照片是主键。
评论具有6个属性:
编号,评论用户id,评论文章,评论时间,评论次数,文章编号其中文章编号是主键。
类型表具有2个属性:
类型编号、类型名称,其中类型编号是主键。
管理员具有4个属性:
用户id、用户名称、用户密码、用户照片,其中用户id是主键,用户名称是外键。
根据以上分析,绘制系统总体E-R图如图3所示。
图3博客管理系统的物理数据模型
2.数据字典设计
根据上述物理模型,可以建立数据字典,如表1-5所示。
表1文章表(article)
字段名称
含义
数据类型
宽度
约束
Aid
编号
varchar
2
主键
Name
标题
varchar
6
Adetail
正文
varchar
6
Aimg
图片
varchar
60
Atime
时间
varchar
20
Auserid
用户编码
varchar
40
Atid
正文编码
int
表2博客表(blog)
字段名称
含义
数据类型
宽度
约束
Bimg
图片
varchar
2
主键
Buid
注册
varchar
5
表3评论表(comment)
字段名称
含义
数据类型
宽度
约束
Cid
编号
varchar
2
主键
Cuserid
评论用户id
varchar
5
Cdetail
评论文章
varchar
Ctime
评论时间
varchar
CAid
评论次数
varchar
6
Bclass
无
varchar
6
表4类型表(type)
字段名称
含义
数据类型
宽度
约束
Tid
类型编号
varchar
2
主键
Tname
类型名称
varchar
5
表5用户表(Users)
字段名称
含义
数据类型
宽度
约束
Uid
用户id
int
2
主键
Uname
用户姓名
varchar
5
Upwd
用户密码
varchar
Uimg
用户照片
varchar
三、系统设计与开发
1.系统母版页设计
图4母版页
2.用户登录程序设计
用户登录程序的功能为实现系统用户登录,登录后的用户具有更多的权限。
登录时需要输入用户名和密码,输入正确根据权限进入对应的功能页面;否则提示出错信息。
登录程序涉及的主要控件为文本框和按钮,文本框用于输入信息,按钮事件判断输入的登录信息是否正确,并根据返回结果进行页面跳转。
界面设计如图5所示。
图5用户登录
程序关键代码如下:
登录按钮单击事件代码:
代码实现的功能是判断登陆人员的用户名和密码是否正确,若正确,注册用户则跳转到Register.aspx页面,否则显示出错信息。
logins.Users=newModel.Users();
logins.Users.Uname=this.txtname.Text;
logins.Users.Upwd=logins.GetMD5(this.txtpwd.Text);
SqlDataReaderread1=logins.DataReader();
if(read1.HasRows)
{
Session["Uname"]=this.txtname.Text;
read1.Close();
Session["Uid"]=logins.Uid();
logins.Users.Uid=Convert.ToInt32(Session["Uid"]);
stringimg=logins.Uimg();
this.lbuname.Text=this.txtname.Text;
this.login.Visible=false;
this.login2.Visible=true;
this.Lable.Visible=true;
this.content.Visible=true;
this.imguser.ImageUrl="~/Image/"+img;
}
Model层代码
[Serializable]
publicpartialclassUsers
{
publicUsers()
{}
#regionModel
privateint_uid;
privatestring_uname;
privatestring_upwd;
privatestring_uimg;
publicintUid
{
set{_uid=value;}
get{return_uid;}
}
publicstringUname
{
set{_uname=value;}
get{return_uname;}
}
publicstringUpwd
{
set{_upwd=value;}
get{return_upwd;}
}
publicstringUimg
{
set{_uimg=value;}
get{return_uimg;}
}
#endregionModel
}
3.添加文章程序设计
用户添加文章程序的功能为实现系统管理员的权限。
界面设计如图6所示。
图6用户添加程序界面设计
程序关键代码如下:
添加按钮单击事件代码:
通过管理员权限添加文章。
BLL.ArticleArtc=newBLL.Article();//调用BLL层,编辑文章
protectedvoidPage_Load(objectsender,EventArgse)
{
Bind();
}
publicvoidBind()
{
Artc.atcl=newModel.article();//调用BLL层,添加文章
Artc.atcl.Aid=Convert.ToInt32(Request.QueryString["Aid"]);
DataSetds=newDataSet();
ds=Artc.ArticlDetail();
this.txtAname.Text=ds.Tables["result"].Rows[0][1].ToString();
this.TextBox1.Text=ds.Tables["result"].Rows[0][2].ToString();
}
Bll层代码
publicclassArticle
{
DAL.DBdb=newDAL.DB();
publicModel.articleatcl=newModel.article();
publicMmentcomment=newMment();
publicModel.UsersUsers=newModel.Users();
publicbooladdArticlenoimg()
{
stringsql="INSERTINTO[blog].[dbo].[article]([Aname],[Adetail],[Atime],[Auserid],[Atid])VALUES('"+atcl.Aname+"','"+atcl.Adetail+"','"+atcl.Atime+"','"+atcl.Auserid+"','"+atcl.Atid+"')";
returndb.ExceSql(sql);
}
publicbooladdArticle()//添加文章
{
stringsql="INSERTINTO[blog].[dbo].[article]([Aname],[Adetail],[Aimg],[Atime],[Auserid],[Atid])VALUES('"+atcl.Aname+"','"+atcl.Adetail+"','"+atcl.Aimg+"','"+atcl.Atime+"','"+atcl.Auserid+"','"+atcl.Atid+"')";
returndb.ExceSql(sql);
}
Dal层代码,添加文章
publicclassArticle
{
DAL.DBdb=newDAL.DB();
publicModel.articleatcl=newModel.article();
publicMmentcomment=newMment();
publicModel.UsersUsers=newModel.Users();
publicbooladdArticlenoimg()
{
stringsql="INSERTINTO[blog].[dbo].[article]([Aname],[Adetail],[Atime],[Auserid],[Atid])VALUES('"+atcl.Aname+"','"+atcl.Adetail+"','"+atcl.Atime+"','"+atcl.Auserid+"','"+atcl.Atid+"')";
returndb.ExceSql(sql);
}
publicbooladdArticle()//添加文章
{
stringsql="INSERTINTO[blog].[dbo].[article]([Aname],[Adetail],[Aimg],[Atime],[Auserid],[Atid])VALUES('"+atcl.Aname+"','"+atcl.Adetail+"','"+atcl.Aimg+"','"+atcl.Atime+"','"+atcl.Auserid+"','"+atcl.Atid+"')";
returndb.ExceSql(sql);
}
4.用户注册程序设计
用户注册程序的功能为实现系统管理员的权限。
界面设计如图7所示。
图7用户注册程序界面设计
程序关键代码如下:
注册按钮单击事件代码:
代码实现的功能是判断注册人员的用户名和密码是否正确,若正确,注册用户则跳转到blogindex.aspx。
其代码如下:
inta;
BLL.RegisterRegist=newBLL.Register();//调用BLL层,获取用户注册信息
protectedvoidtxtLoginName_TextChanged(objectsender,EventArgse)
{
check();
if(a==-1)//判断用户是否存在
{
Label2.Text="用户名已经存在";
txtname.Text="";
return;
}
elseif(a==2)
{
Label2.Text="";
}
}
//注册
protectedvoidbtnregister_Click(objectsender,EventArgse)
{
Regist.Users=newModel.Users();//调用Model层
Regist.Users.Uname=this.txtname.Text;//密码确认
Regist.Users.Upwd=Regist.GetMD5(txtPwd.Text.ToString());
#region图片
stringfullpath=this.FileUpload1.PostedFile.FileName;
stringfilename=Path.GetFileName(fullpath);
stringsavepath=Server.MapPath("image//"+filename);//保存到数据库中路径
this.FileUpload1.PostedFile.SaveAs(savepath);
#endregion
Regist.Users.Uimg=filename;
if(Regist.InsertUser())//判断注册用户是否重复
{
Response.Redirect("blogindex.aspx");
}
else
{
Response.Write("");
}
Model层代码
namespaceModel
{
[Serializable]
publicpartialclassUsers
{
publicUsers()
{}
#regionModel
privateint_uid;
privatestring_uname;
privatestring_upwd;
privatestring_uimg;
publicintUid
{
set{_uid=value;}
get{return_uid;}
}
publicstringUname
{
set{_uname=value;}
get{return_uname;}
}
publicstringUpwd
{
set{_upwd=value;}
get{return_upwd;}
}
publicstringUimg
{
set{_uimg=value;}
get{return_uimg;}
}
#endregionModel
}
}
5.用户编辑程序设计
用户查询程序的功能为实现注册用户编辑文章。
界面设计如图8所示。
图8用户编辑程序界面设计
程序关键代码如下:
BLL.indexindex=newBLL.index();//调用BLL层,获取用户信息
//调用Model层,用户编辑文章
protectedvoidPage_Load(objectsender,EventArgse)
{
index.artc=newModel.article();
index.artc.Atid=Convert.ToInt32(Request.QueryString["Tid"]);
this.BlogList.DataSource=index.dstype();
this.BlogList.DataBind();
}
Bll层代码
DAL.DBdb=newDAL.DB();
publicModel.articleartc;
publicDataSetdsuser()
{
stringsql="select*fromarticlewhere"+artc.Auserid;
returndb.FillDataset(sql);
}
publicDataSetdsall()
{
stringsql="select*fromarticle";
returndb.FillDataset(sql);
}
publicDataSetdstype()
{
stringsql="select*fromarticlewhereAtid="+artc.Atid;
returndb.FillDataset(sql);
}
publicstringUid()
{
stringsql="select*fromarticlewhereAid="+artc.Aid;
SqlDataReaderread=db.ExceRead(sql);
returndb.ExceString(read,"Auserid");
}
publicbooldelete()
{
stringsql="deletefromarticlewhereAid="+artc.Aid;
returndb.ExceSql(sql);
}
publicSqlDataReaderDataReader()
{
stringsql="select*fromarticlewhereAid='"+artc.Aid+"'";
returndb.ExceRead(sql);
}
#region截取字符串
publicstaticstringFixLengthString(stringoText,intlength)
{
stringreturnString=oText.Length>length?
oText.Substring(0,length):
oText;
returnreturnString;
}
#endregion
#region去掉html标括记
publicstaticstringNoHTML(stringHtmlstring)
{//Regex.Replace从输入字符串中的第一个字符开始,用指定¨的替换字符串替换由指定的表达式定义的模式的所有匹配项。
可指定选项来修改匹配的行为。
RegexhtmlReg=newRegex(@"<[^>]+>",RegexOptions.Compiled|RegexOptions.IgnoreCase);
RegexhtmlSpaceReg=newRegex(" ",RegexOptions.Compiled|RegexOptions.IgnoreCase);
RegexspaceReg=newRegex("{2,};",RegexOptions.Compiled|RegexOptions.IgnoreCase);
RegexstyleReg=newRegex(@"",RegexOptions.Compiled|RegexOptions.IgnoreCase);
//删除脚本?
RegexscriptReg=newRegex(@"",RegexOptions.Compiled|RegexOptions.IgnoreCase);
Htmlstring=styleReg.Replace(Htmlstring,string.Empty);
Htmlstring=scriptReg.Replace(Htmlstring,string.Empty);
Htmlstring=htmlReg.Replace(Htmlstring,string.Empty);
Htmlstring=htmlSpaceReg.Replace(Htmlstring,"");
Htmlstring=spaceReg.Replace(Htmlstring,"");
returnHtmlstring.Trim();
}
#endregion
}
6.用户评论程序设计
用户评论程序的功能为实现系统管理员的权限。
界面设计如图9所示。
图9用户评论程序界面设计
程序关键代码如下:
art.atcl=newModel.article();//调用Model层,获取文章
art.atcl.Aid=Convert.ToInt32(Request.QueryString["Aid"]);
DataSetds=art.ArticlDetail();
this.td1.InnerHtml=ds.Tables["result"].Rows[0][