admin 管理员组

文章数量: 1086019


2023年12月23日发(作者:nodding)

淮海工学院计算机工程学院

实验报告书

课 程 名: 《软件开发工具》

题 目: 个人博客系统

个人博客系统的设计与实现

班 级:

学 号:

姓 名:

评语:

成绩: 指导教师:

批阅时间: 年 月 日

软件工具与开发环境课程设计(论文) 第 1 页 共 16 页

一、 课题的研究背景与意义

越来越多的网络用户希望能够在网络平台上更多地展现自己的个性,更方便地与人互动交流,在传统的WEB1.0时代,无论是论坛、社区还是个人网站,都试图在这些方面进行努力,随着WEB2.0时代的到来,一个新的概念出现了----博客。随着计算机网络的飞速发展,博客已经成为写网络日志必不可少的一种工具,也是一种简单有效的提供网络用户之间进行在线交流的网络平台,通过其可以结交更多的朋友,表达更多的想法,它随时可以发布日志,方便快捷。个人博客的发展,也已经成为广告商业务拓展的重要领域。

本实验研究了一种基于数据关联规则的个人博客网站。其开发主要包括后台数据库的建立、后台管理以及前台页面的Web设计。系统使用Microsoft公司以C#为核心语言的开发工具,再结合SQL Server 2005建立数据连接关系。利用其提供的各种组件,在短时间内建立数据库,对数据库进行分析与建立页面,不断改进,直到功能基本实现的可行系统。

本文的研究在一定程度上借鉴了互联网上博客的发展经验成果,系统的最终目的是通过为博客提供优质的互动交流平台,提高网站的知名度和访问量,从而获得为企业提供更多的产品介绍及发展的机会,提升自己的网络价值。

本实验报告主要介绍了本课题的开发背景、完成的功能和开发过程,并着重说明了开发设计的思想、技术难点和解决方案。

系统前台包含的功能:日志、相册、博客个人资料、留言板的浏览和发表留言,博主主要是负责后台的管理:日志、相册、留言板和个人资料等的管理。

本实验是个人博客系统的设计与开发,意在构建一个B/S模式的个人博客系统,最终形成一个以网络信息交流为中心,包括博主和游客两种角色的信息系统。管理与浏览者主要功能介绍如下:

 游客

1) 日志浏览:可查看所有博客的日志。

2) 发表评论:可对所有的博客日志发表评论。

 管理功能模块

1) 发表日志:博主写日志,按类别区分。

2) 日志搜索:根据日志类别进行查询,此处是为了方便博主管理发布的日志,同时方便游客的浏览。当管理员要修改某日志时,可选择所属分类查询出来,而无需逐页查找。

3) 日志修改,删除:博主可以编辑和删除日志。

4)

留言管理:博主根据自己的喜好,可以删除一些不良的留言。

软件工具与开发环境课程设计(论文) 第 2 页 共 16 页

二、 需求分析

游客流程图:

博主流程图

UML图:

软件工具与开发环境课程设计(论文) 第 3 页 共 16 页

浏览日志浏览相册访客发表留言浏览个人档案

浏览修改日志浏览修改相册博主浏览修改留言浏览修改个人档案

三、 系统设计

1)明确系统里的实体

2)列出实体的属性

3)用PD画出表及其属性

4)画出ER图

E-R图

软件工具与开发环境课程设计(论文) 第 4 页 共 16 页

编号编号地址名称游客1博客编号1发表编号评论者标题标题图片博客编号内容分类n11日期浏览评论n时间拥有编号拥有n1日志编号1编号日志nn发布人浏览管理11会员发表1用户名密码性别标题注册时间真实姓名QQ内容时间博客编号MSN地址手机固定电话邮编

关系模型

(1) 个人博客系统的关系模式如下:

博客信息(编号, 用户名,密码,性别,真实姓名,生日,地址,邮编,邮件,

固定电话,手机,QQ,MSN,注册时间)

日志(编号,发布人,标题,内容,发表时间,评论,博客编号)

留言(编号,留言内容,留言时间)

日志类别(编号,类别名称,博客编号)

评论(编号,评论人,标题,内容,日期,博客编号)

(2) 个人博客系统的逻辑结构设计表

图表1: 博客表(tb_Blog)

列名

数据类长度 允许为空 主键 描述

软件工具与开发环境课程设计(论文) 第 5 页 共 16 页

ID

Username

Password

Sex

Reallyname

Email

int 4

标识

用户名

密码

性别

真实姓名

邮箱

nvarchar 50

nvarchar 50

nvarchar 50

nvarchar 50

nvarchar 50

图表2: 日志表(ST_message)

列名

ID

ST_nickname

ST_title

ST_content

ST_mdate

BlogID

数据类长度 允许为空

int 4

标识

发布人

日志类别

日志内容

发表时间

博客编号

nvarchar 50

nvarchar 50

ntext

int

16

4

datetime 8

主键 描述

图表3: 留言表(ST_message)

列名

ST_id

ST_nickname

ST_title

ST_content

ST_madate

BlogID

数据类长度 允许为空

int 4

图表4: 文章类别表(ST_class)

列名

ST_c_id

ST_c_name

BlogID

数据类长度 允许为空

int

int

4

4

标识

日志类别

博客编号

nvarchar 50

主键 描述

标识

留言人

标题

内容

时间

博客编号

nvarchar 50

nvarchar 50

next

int

16

4

datetime 8

主键 描述

软件工具与开发环境课程设计(论文) 第 6 页 共 16 页

四、 界面设计

1)明确系统里的网页

2)列出前台页面和后台页面

3)画出关系图

前台页面

博客主页

浏览文章页面

注册资料编辑页面

用户须知页面

后台页面

个人博客主页

文章信息管理页面

添加文章页面

修改文章页面

留言管理页面

详细资料编辑页面

软件工具与开发环境课程设计(论文) 第 7 页 共 16 页

五、 界面设计(系统设计)

软件的界面如同人的脸一样,软件界面的好坏决定了用户对软件的第一印象。设计好的界面能够引导用户自己完成相应的操作,起到引导作用。设计合理的界面能给用户带来轻松愉悦的感受。一些专家指出:对于用户,人机界面就是系统本身。这充分说明了软件界面设计的重要性。请完成各自的系统用户界面的设计。

(1)母版页1

(2)首页的效果:

(3)点击查看文章出现的界面:

软件工具与开发环境课程设计(论文) 第 8 页 共 16 页

(4)注册见面效果图

(5)添加新日志效果图:

软件工具与开发环境课程设计(论文) 第 9 页 共 16 页

六、 公共模块设计

using System;

using ;

using uration;

using ;

using ty;

using ;

using trols;

using ts;

using ntrols;

using ent;

///

/// CommonClass 的摘要说明

///

public class CommonClass

{

public CommonClass()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

///

/// 说明:MessageBox用来在客户端弹出对话框,关闭对话框返回指定页。

/// 参数:TxtMessage 对话框中显示的内容。

/// 参数:Url 对话框关闭后,跳转的页

软件工具与开发环境课程设计(论文) 第 10 页 共 16 页

///

public string MessageBox(string TxtMessage,string Url)

{

string str;

str = "";

return str;

}

///

/// 说明:MessageBox用来在客户端弹出对话框。

/// 参数:TxtMessage 对话框中显示的内容。

///

public string MessageBox(string TxtMessage)

{

string str;

str = "";

return str;

}

///

/// 说明:MessageBoxPage用来在客户端弹出对话框,关闭对话框返回原页。

/// 参数:TxtMessage 对话框中显示的内容。

///

public string MessageBoxPage(string TxtMessage)

{

string str;

str = "";

return str;

}

///

/// 实现随机验证码

///

/// 显示验证码的个数

/// 返回生成的随机数

public string RandomNum(int n) //

{

//定义一个包括数字、大写英文字母和小写英文字母的字符串

string strchar =

"0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";

//将strchar字符串转化为数组

// 方法返回包含此实例中的子字符串(由指定Char数组的元素分隔)的 String 数组。

string[] VcArray = (',');

string VNum = "";

//记录上次随机数值,尽量避免产生几个一样的随机数

软件工具与开发环境课程设计(论文) 第 11 页 共 16 页

int temp = -1;

//采用一个简单的算法以保证生成随机数的不同

Random rand = new Random();

for (int i = 1; i < n + 1; i++)

{

if (temp != -1)

{

//unchecked 关键字用于取消整型算术运算和转换的溢出检查。

// 属性获取表示此实例的日期和时间的刻度数。

rand = new Random(i * temp *

unchecked((int)));

}

// 方法返回一个小于所指定最大值的非负随机数。

int t = (61);

if (temp != -1 && temp == t)

{

return RandomNum(n);

}

temp = t;

VNum += VcArray[t];

}

return VNum;//返回生成的随机数

}

}

using System;

using ;

using uration;

using ;

using ty;

using ;

using trols;

using ts;

using ntrols;

using ent;

///

/// DBClass 的摘要说明

///

public class DBClass

{

SqlConnection myConn; //用于连接数据库

SqlCommand myCmd; //用于执行Sql语句

DataSet ds; //数据集

SqlDataAdapter adapt; //填充数据集

软件工具与开发环境课程设计(论文) 第 12 页 共 16 页

public DBClass()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

///

/// 连接数据库

///

/// 返回SqlConnection对象

public SqlConnection GetConnection()

{

string myStr =

tings["ConnectionString"].ToString();

myConn = new SqlConnection(myStr);

return myConn;

}

///

/// 更新数据库

///

/// sqlStr执行的SQL语句

public void ExecNonQuery(string strSql)

{

try

{

myConn = GetConnection();//与数据库连接

myCmd = new SqlCommand();//初始化SqlCommand类对象

tion = myConn;

dText = strSql;

if ( != )

{

();//打开与数据库的连接

}

eNonQuery();//执行Sql操作,并返回受影响的行数

}

catch (Exception ex)

{

throw new Exception(e, ex);

}

finally

{

if ( == )

{//断开连接,释放资源

();

e();

e();

}

}

软件工具与开发环境课程设计(论文) 第 13 页 共 16 页

}

///

/// 返回一个值

///

/// sqlStr执行的SQL语句

/// 返回获取的值

public string ExecScalar(string strSql)

{

try

{

myConn = GetConnection();//与数据库连接

myCmd = new SqlCommand();//初始化SqlCommand类对象

tion = myConn;

dText = strSql;

if ( != )

{

();//打开与数据库的连接

}

//使用SqlCommand对象的ExecuteScalar方法返回第一行第一列的值

strSql=ng(eScalar());

return strSql ;

}

catch (Exception ex)

{

throw new Exception(e, ex);

}

finally

{

if ( == )

{//断开连接,释放资源

e();

();

e();

}

}

}

///

/// 说 明: GetDataSet数据集,返回数据源的数据表

/// 返回值: 数据源的数据表

/// 参 数: sqlStr执行的SQL语句,TableName 数据表名称

///

public DataTable GetDataSet(string strSql, string TableName)

{

ds= new DataSet();

try

{

myConn = GetConnection();//与数据库连接

软件工具与开发环境课程设计(论文) 第 14 页 共 16 页

adapt = new SqlDataAdapter(strSql, myConn); //实例化SqlDataAdapter类对象

(ds,TableName);//填充数据集

return [TableName];//返回数据集DataSet的表的集合

}

catch (Exception ex)

{

throw new Exception(e, ex);

}

finally

{//断开连接,释放资源

();

e();

e();

e();

}

}

}

七、 用户手册

系统功能简介

个人博客系统主要的功能有:日志的管理,留言的管理,个人资料的管理。

(1)日志管理:博主和游客都可以浏览和查询日志信息。博主不仅可以浏览和查询日志信息,还能更改、添加和删除日志信息,以更新日志数据库,以便发布日志信息。博主和游客可以浏览的日志信息包括:日志的标题,日志的内容,日志的类别,日志的发表时间。管博主可以查看和修改的日志信息包括:日志的标题,日志的内容,日志的类别,博主可以根据实际需要进行日志的删除和修改添加。

(3)留言管理:游客都可以浏览和添加留言信息,博主不仅可以浏览、添加,还可以删除留言。

(4)个人资料管理: 博主和游客都可以浏览个人资料信息,博主不仅可以浏览,还可以编辑个人资料。博主和游客可以浏览的个人资料信息包括:昵称,性别,生日,地址等。同时博主可以修改个人资料。

系统运行环境

本系统是由 2.0+SQL Server 2005 开发而成的系统,因此系统必须在如下的运行环境中才能顺利的运行:

Windows XP 以上的操作系统;

安装了.NET Framework 框架集成开发包;

安装了SQL Server 2005 服务器;

IE版本在5.5以上。

系统操作指南

本系统是基于B/S模式的系统,所以可以直接通过IE运行。

主页面是所有的浏览者都可以浏览的界面,点击主页文章,就可以进入

软件工具与开发环境课程设计(论文) 第 15 页 共 16 页

相应的博客空间。输入账号,密码,博主就可以进入管理界面,对日志、留言等进行管理。

八、 分析与实验体会

之前学习WEB工程这门课的时候,学习的比较“轻松”,导致现在要用到.NET方面的知识的时候,却什么的都不懂,起初从网上download了一个现成的博客系统,但是终究是人家的东西,怎么看也看不懂,甚至连怎样在自己的机子上顺利跑起来都折腾很久。最后还是决定自己从头开始做,一个完完全全属于自己的博客系统。万事开头难,去图书馆借了一本相关的书,照个书上相关的从新建网站开始,建页面,用户控件,母版页…虽然最后做出来的东西不是那么令人满意,应该说很丑,但是总算能够很顺利从注册开始,一直走到尾。虽然最终验收的时候出了点小插曲,但也是以前碰到过的问题,所以很顺利的解决了。总之,这次课程让我有很大的收获。


本文标签: 日志 系统 浏览 博主 开发