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
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: 在此处添加构造函数逻辑
//
}
///
/// 连接数据库
///
///
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了一个现成的博客系统,但是终究是人家的东西,怎么看也看不懂,甚至连怎样在自己的机子上顺利跑起来都折腾很久。最后还是决定自己从头开始做,一个完完全全属于自己的博客系统。万事开头难,去图书馆借了一本相关的书,照个书上相关的从新建网站开始,建页面,用户控件,母版页…虽然最后做出来的东西不是那么令人满意,应该说很丑,但是总算能够很顺利从注册开始,一直走到尾。虽然最终验收的时候出了点小插曲,但也是以前碰到过的问题,所以很顺利的解决了。总之,这次课程让我有很大的收获。
版权声明:本文标题:个人博客系统 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1703287619a445618.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论