资源描述
博客系统设计报告书
一、 设计简述
越来越多网络顾客但愿可以在网络平台上更多地呈现自己个性,更以便地与人互动交流,在老式WEB1.0时代,无论是论坛、社区还是个人网站,都试图在这些方面进行努力,随着WEB2.0时代到来,一种新概念浮现了----博客。随着计算机网络飞速发展,博客已经成为写网络日记必不可少一种工具,也是一种简朴有效提供网络顾客之间进行在线交流网络平台,通过其可以结交更多朋友,表达更多想法,它随时可以发布日记,以便快捷。个人博客发展,也已经成为广告商业务拓展重要领域。
本实验研究了一种基于数据关联规则个人博客网站。其开发重要涉及后台数据库建立、后台管理以及前台页面Web设计。系统使用Microsoft公司以C#为核心语言ASP.NET开发工具,再结合SQL Server 建立数据连接关系。运用其提供各种组件,在短时间内建立数据库,对数据库进行分析与建立ASP.NET页面,不断改进,直到功能基本实现可行系统。
本文研究在一定限度上借鉴了互联网上博客发展经验成果,系统最后目是通过为博客提供优质互动交流平台,提高网站知名度和访问量,从而获得为公司提供更多产品简介及发展机会,提高自己网络价值。
本实验报告重要简介了本课题开发背景、完毕功能和开发过程,并着重阐明了开发设计思想、技术难点和解决方案。
二、设计目
在ASP.NET课程设计中将通过完毕一种博客系统设计来较全面复习这一学期所学内容,例如:运用DIV+CSS进行网站修饰、排版及布局;依照本学期所学网站应用系统开发架构、代码组织及相应功能模块案例,来实现一种带有博客系统综合性小型网站。
三、设计环节
1) 网站构造布局分析设计,画出核心页面总体构造图
2) 功能需求分析、系统总体构造设计,功能模块划分、画出流程图。
3) 开发平台安装调试,Web服务器配备。
4) 数据库设计
5) 运用CSS+DIV进行各个页面排版、布局,并进行各个功能模块设计及调试。
6) 综合调试及发布。
四、设计规定
(4.1)设计目的规定
本课程设计要实现一种带有博客系统小型网站。网站各个页面尽量使用CSS+DIV进行排版,博客系统规定有如下功能模块:
1) 注册模块
a) 规定实现:运用配备文献连接数据库、生成验证码,进行密码加密,限制密码大小、验证账号重复、使用存储过程进行数据库操作。
2) 登录模块
a) 顾客身份辨认、顾客输入验证。
3) 博客系统主模块
a) 注册顾客可以刊登日记、管理日记及管理日记目录。
b) 日记浏览者可以刊登评论。
c) 系统提供日记列表功能。
d) 管理员可以管理普通顾客及其日记。
4) 日记搜索功能模块
a) 可以在博客系统中进行各种复杂搜索功能,如模糊搜索、与条件搜索、或条件搜索等。
(4.2)系统性能规定
网站界面美观,布局合理,导航以便,运营时能满足使用需求。
五、 需求分析
(5.1)系统需求分析
本系统详细规定为:
1) 浏览日记顾客可以浏览作者日记,以分享作者心情或知识;
2) 刊登日记作者可以通过该功能刊登自己日记或知识;
3) 评论日记顾客对作者日记刊登自己看法;
4) 日记管理供作者管理文章
(5.2)功能需求分析
1) 日记管理模块:该模块可进行日记文章管理、日记目录管理等
2) 写日记模块:通过该模块添加新日记
3) 评论模块:顾客可以通过该模块刊登对作者日记看法
4) 日记列表模块:日记列表模块依照日记所在目录显示给顾客,以便顾客阅览。
六、 系统构造设计
(6.1)系统功能模块
我博客系统
浏览日记文章
添加评论
日记管理
日记列表
目录管理
评论管理
文章管理
(6.2)数据库构造设计
博客系统数据库功能重要体当前对各种信息提供、保存、更新和查询操作上,涉及文章信息、文章目录信息和评论信息,各个某些数据内容又有内在联系。针对该系统数据特点,可以总结如下需求:
1) 文章信息记录作者刊登日记信息。
2) 文章目录信息记录了文章所在目录分类。
3) 评论信息相应某个文章浏览者刊登评论。
通过上述需求总结,得出如下数据项和数据构造:
1) 文章信息,涉及数据项有:文章编号、文章内容、标题等。
2) 文章目录信息,涉及数据项有:目录编号、目录名称、目录描述等。
3) 评论信息,涉及数据项有:评论编号、文章编号、评论内容等。
(6.3)数据库逻辑构造设计
在博客系统中,一方面要创立系统数据库,然后在数据库中创立需要表和字段。数据库命名为BlogData,在这个数据库中管理系统中要建立4个表,分别是,顾客信息表,文章信息表,文章目录信息表和评论信息表。
(1) 顾客信息表(Admins)记录了顾客账号和密码,如下图所示:
(2) 文章信息表(Articles)记录了文章编号、目录编号、文章标题、简介和文章内容等详细信息,如下图所示:
(3) 文章目录表(Tags)记录了文章分类信息,如下图所示:
(4) 评论信息表(Comments)记录了评论编号、文章编号、评论内容和时间等,如下图所示:
七、某些设计环节以及代码分析
(7.1)顾客登录模块是有login文献实当代码如下:
protected void btn_login_Click(object sender,EventArgs e)
{
string UserName = tbxaccount.Text.ToString();//获取顾客输入信息
string Password = tbxpwd.Text.ToString();
//顾客数据加密
if (Session["CheckCode"] == null)
{
lblMessage.Text = "系统错误,不能生成验证码";
lblMessage.Visible = true;
return;
}
if (tbxcheckcode.Text == "")
{
lblMessage.Text = "请输入验证码";
lblMessage.Visible = true;
return;
}
if (String.Compare(Session["CheckCode"].ToString(),tbxcheckcode.Text,true) != 0)
{
lblMessage.Text = "验证码错误,请输入对的验证码。";
lblMessage.Visible = true;
return;
}
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创立数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
//读取顾客信息
string mysql = "select * from Admins Where AdminName=" + "'" + UserName + "'" + "And Password=" + "'" + Password + "'";
//创立命令对象
SqlCommand mycmd = new SqlCommand(mysql,myconn);
//创立适配器并执行命令
SqlDataReader mydr = mycmd.ExecuteReader();
try
{if (mydr.Read())
{
Session["UserName"] = mydr["AdminName"].ToString();//把顾客名写入session对象
//页面定位
Response.Redirect("Default.aspx?action=0");
}
else
{
lblMessage.Visible = true;//显示错误信息
lblMessage.Text = "顾客名或密码错误";
}
}
finally
{//关闭操作
mydr.Close();
myconn.Close();
}
}
protected void btn_clear_Click(object sender,EventArgs e)
{ tbxaccount.Text = "";
tbxpwd.Text = "";
}
顾客登录后就可以进行日记管理了,登录页面如下图所示:
(7.2)日记文章列表模块articlelist文献实现,从界面和代码中可以看出,数据绑定是由Bind_Data()函数实当代码如下:
protected void Page_Load(object sender,EventArgs e)
{
Bind_Data();
}
void Bind_Data()
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创立数据库连接
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
string strsql = "select * from articles";
//创立数据库命令
SqlCommand mycmd = new SqlCommand(strsql,myconn);
//执行数据操作命令
//SqlDataReader读取数据到记录集后,会自动关闭数据库连接
SqlDataReader result = mycmd.ExecuteReader(CommandBehavior.CloseConnection);
//绑定数据源
gv_article.DataSource = result;
//绑定数据
gv_article.DataBind();
}
protected void gv_article_RowDeleting(object sender,GridViewDeleteEventArgs e)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创立数据库连接
SqlConnection myconn = new SqlConnection(settings);//打开数据库连接
myconn.Open();
int id = (int)gv_article.DataKeys[e.RowIndex].Value;
string strsql="delete from articles Where ArticleID=" + id;
//创立数据库命令
SqlCommand mycmd = new SqlCommand(strsql,myconn);
//进行数据库操作
mycmd.ExecuteNonQuery();
//关闭数据库连接
myconn.Close();
Bind_Data();
}
(7.3)在博客首页模块中,文章目录列表实现了从数据库tags信息表中读取目录信息并绑定到一种DataList控件上用于向顾客展示文章目录。该页面界面布局如图所示:
该控件绑定了文章目录信息表中Tag_Name信息,并通过Tag_ID信息链接到该目录下文章列表页面,数据绑定实当代码如下:
protected void Bind_Tags()
{//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创立数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
myconn.Open();
string strsql = "select * from Tags";
SqlCommand mycmd = new SqlCommand(strsql,myconn);
//SqlDataReader读取数据到记录集后,会自动关闭数据库连接
SqlDataReader result = mycmd.ExecuteReader(CommandBehavior.CloseConnection);
dl_tags.DataSource = result;
dl_tags.DataBind();
}
八、 总结
(8.1)局限性
由于自己分析设计和经验局限性,该系统设计和实现过程中,尚有许多没有完善地方,例如页面构造,色彩搭配不和谐,尚有某些代码不够完善。
开始编写时就遇到了登录界面与数据库连接困难,借助平时实训仔细分析和探讨完毕了开始登录界面.
在之后过程中遇到了连接数据库失败等问题,在参照了有关书籍和查阅了网上有关资料而解决
(8.2)感悟
通过本学期对ASP这门课程更进一步学习,让我对网络开发有了很深理解,并在教师指引下完毕了基于个人博客系统设计。 通过一周努力,博客系统终于按预期成果顺利完毕了。从系统最初需求分析、设计,到最后实现过程中,通过多次重复修改,功能逐渐完善,已经基本达到了实用,以便,人性化等预期目的。在开发过程中由于对细节不注重和忽视使得自己程序功败垂成,经常由于一种问题,导致整个工作无从下手.因此要更注重细节,
课题完毕到当前,从开始连项目流程都不怎么熟悉,到当前完毕基本需求功能,遇到了不少问题。本次课程设计不但复习了一学期所学知识,并且还让我从中学到了诸多新内容。
展开阅读全文