博客管理系统实验报告_第1页
博客管理系统实验报告_第2页
博客管理系统实验报告_第3页
博客管理系统实验报告_第4页
博客管理系统实验报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河 南 工 程 学 院实实 习习 报报 告告 课程名称 ASP.NET 程序设计实训 设计题目 博客管理系统 系(部) 计算机学院 班级 信息管理 1133 学 号 姓 名 实习时间 2013.12.302014.1.3 指导教师 李艳玮 2014 年 1 月 3 日实 习(训) 报 告评语等级:评阅人: 职称: 年 月 日目录摘摘 要要.I一一 概论概论.21 实训题目 .22 课题开发背景 .23 课题开发意义 .2二二 系统分析系统分析.21 系统需求分析 .22 系统可行性分析 .3三三 系统设计目标和原则系统设计目标和原则.41 系统目标 .42 系统流程图 .43 系统开发环境 .

2、5四四 系统功能系统功能设设计计.51 系统功能结构 .52 系统功能描述 .6五五 数据库设计数据库设计.71 数据库概要设计 .72 数据库概念设计 .73 数据库逻辑设计 .8六六 系统详细设计系统详细设计.101 网站首页 .102 博客的登录 .123 博客的注册 .144 回应管理模块 .165 类别管理模块 .18七七 实训总结实训总结.19参考文参考文献献.21I摘 要博客(Blog)是目前 Internet 上最流行、最时尚的应用,其英文全称为WebBlog,原意为网络日志,是一种十分简易的“傻瓜”式个人信息发布方式。它代表着网络是时代的个人“读者文摘” ,是以超链接为介质的

3、网络日记。更简明的定义,就是一种简便的网站内容管理系统(CMS) ,其内容有时效性,并且一般进行分类,可通过评论等形式实现作者与读者的交流,同时提供符合标准的内容摘要。Blog 作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所接受,并且正在改变着传统的网络和社会结构。网络信息不再是虚假不可验证的;交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人人都可以实现的梦想。Blog 正在影响和改变着我们的生活。本次实训将实现一个具有简单发布和管理功能的 Blog 平台。本博客管理系统包括前台用户注册、用户登录、阅读文章、发表评论、发表留言等功能

4、模块,以及后台管理员管理、会员管理、类型管理、文章管理、评论管理、通信管理等功能模块,并构建了一个博客管理系统的基本体系结构。本系统采用 Microsoft Visual Studio 2008 集成开发环境进行编程开发,配合使用微软数据库系统 SQL SERVER 2005 数据库来存储网站中用到的数据信息。关键词:关键词:博客管理系统网站设计 ,Microsoft Visual Studio 2008 , SQL SERVER 2005 数据库 一一 概论1 实训题目博客管理系统2 课题开发背景博客的个性化和平民视角使得它提供的信息更贴近人们的生活,所以很多人都想建立自己的网站空间。过去,

5、传统的网络交往方式主要是留言本、BBS、IM 及聊天室等,但它们或多或少都存在着不足。留言本主要用来留言,不能进行留言回复;BBS 主要用来讨论问题;IM 要想发挥作用,必须要交流的双方同时在线;而聊天更是闲人的乐园。博客可以说是一种网络虚拟社区,在这里用户可以通过网络日志的形成方便、快捷地发表自己的心得体会。3 课题开发意义 博客是一个自由的发布平台,每个人自由的在互联网上通过个人博客发表自己的心声,而有些人则在全球成千上万的浏览者中赢得影响力。博客作为一种新表达方式,它不仅传播情绪,而且包括大量的智慧、意见和思想。某种意义上来说,它也是一种新的文化象征。博客的出现和繁荣,真正凸显网络的知识

6、价值,标志着互联网发展开始步入更高的阶段。本网站包含有关文章信息,可以供用户阅读,网站中还设计留言板,方便用户进行留言交流学习和工作的健康心得和经验。本网站还开发有文章管理、通信管理、链接管理等模块,方便用户使用。通过博客平台,大家可以相互促进,共同成长,从而进一步提升自己。二 系统分析1 系统需求分析任何一个软件项目的开发都是从需求调查开始,博客管理系统也不例外。系统管理员通过前台页面进入后台管理模块后,可对注册的博客用户进行管理,包括对3注册用户的添加、查找、修改和删除等操作;而博客用户通过前台登录后,可对自己的博客空间进行管理,包括发布自己的网络日志、收藏个人图片、与相关人员进行交流和沟

7、通以及删除访问者发表的评论等。针对博客管理系统的一些需求,总结出如下信息。用户分普通用户、管理员用户和超级管理员用户。超级管理员可以对博客管理员进行管理和权限设置。博客管理员涉及对博客类型管理、文章管理、图片管理、评论管理、链接管理、留言管理和通信管理。普通用户可以阅读文章、发表回应、留言和评论。一种文章类型有多篇文章。一篇文章有多篇评论。2 系统可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新网站的开发是否具备必要性和可能性,对新网站的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新网站的开发成功。可行性研究的目

8、的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。为了确定开发具有可行性,对本系统主要进行了以下三个方面的分析。(1)经济可行性经济可行性主要包括支出、效益和投资回收周期。关于支出,一方面要完全利用现有的设备,看是否需要增加新的硬件设备。另一方面需要经常性的软件维护费用。关于效益,目前的情况还不能具体确定,只能根据后期的点击率和使用效率来确定。关于投资回收周期,估计是系统运行后的一年。(2)技术可行性技术可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。在软件方面,本系统采用的是 ASP.NET 进行开发,前台网页设计使用的是 Microsoft Vis

9、ual Studio 2008,而数据库系统采用的是 SQL2005。通过分析,在软、硬件方面现有工具与环境完全可以实现系统的开发,因此具有技术上的可行性。(3)社会因素可行性社会因素可行性主要包括法律方面的可行性和使用方面的可行性。法律方面的4可行性指系统的研发和开发所涉及到的软件都选用正版,不会侵犯他人、集体和国家的利益,遵循相关的法律规定;使用方面的可行性指使用本软件的人员只需要要求有一定的上网基础,能做到一个合格的博客就行。三三 系统设计目标和原则系统设计目标和原则1 系统目标本系统属于小型的 Web 版数据库系统,有效地创建了一个网络虚拟社区,使用户可以及时有效并轻松地与他人交流。通

10、过此网站可以达到以下目标:界面简洁,框架清晰、美观大方。用户通过网络日志的形式迅速、便捷地发布自己的心得体会。为充分展现网络读者与作者的交互性,采用动态网页技术实现博客信息在线发布。信息查询灵活、方便,数据存储安全、可靠。实现强大的博客后台管理功能。实现后台管理中的各种查询,如定位查询、模糊查询等。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为地错误。网站最大限度地实现易维护性和易操作性。2 系统流程图在博客管理网站用户可以使用前台系统浏览所有网站内容,可以在网站内阅读文章,发表评论,发表留言。管理员登录到后台后,可以执行内部数据操作,可以增加、删除系统用户信息,可以增加、删除、更新

11、版块内容。在这里主要介绍的是登录博客管理系统网站后,系统整体用例图,如图 3-1 所示。5网民注册访客会员匿名访问注册访问博客访客查看文章登录注 册用户查看文章发表评论文章留言管理评论管理管理中心登录管理注册用户管理管理员用户系统管理中心登录系统管理员否是否图 3-1 博客网站流程图3 系统开发环境(1)网站开发环境网站开发环境:Microsoft Visual Studio 2008 集成开发环境网站开发语言:ASP.NET+C#网站后台数据库:SQL Server 2005 开发环境运行平台:Windows XP/ Windows 7(2)服务器端Web 服务器:Internet 信息服务

12、(IIS)管理器数据库服务器:SQL Server2005浏览器:IE6.0(3)客户端浏览器:IE6.0分辨率:最佳效果 1024*768 像素四 系统功能设计1 系统功能结构 博客管理系统网站功能结构如图 4-1 所示6服务器客户端系统管理员管理员登录博客访问者匿名注册注册博客管理员管理中心博客主页修改注册用户查找注册用户删除注册用户查找管理员添加管理员删除管理员修改管理员阅读文章发表评论发表留言类型管理文章管理评论管理链接管理留言管理图片管理通信管理图 4-1 博客管理系统功能结构图2 系统功能描述(1)网站客户端系统功能描述 博客管理系统设计的最终目的是为用户提供一个知识资源共享和信息

13、交流的良好平台。在网站客户端,已注册用户可以浏览博客主页,输入正确的用户名、密码和验证码即可成功登陆,从而进行相应的个人博客管理,如:类型管理、文章管理、评论管理、链接管理、留言管理、图片管理等。每个管理模块都具有相应的关键字查询、添加信息、修改信息、批量管理等功能;博客匿名用户可以浏览博客主页的文章信息、评论信息,也可以发表留言等。如果想要成为本网站的一名普通用户,可进行注册,单击注册可接受网站的相关协议,填写个人资料等。注册成功后即可具有对博客管理的一些权限。(2)网站服务器端系统功能描述 系统管理员成功登录博客主页之后,点击左上角导航栏中的管理员登录,输入正确的用户名、密码和验证码即可成

14、功登录到超级管理员页面。超级管理员具有修改注册用户、查找注册用户、删除注册用户、查找管理员、添加管理员、修改管理员、删除管理员等一系列功能。每个模块都具有相应的关键字查询、信息添加、信息修改、批量管理等功能。本网站界面设计简单大方,操作快捷方便。管理员可对博客系统中出现的不良信息进行有效的管理,从而保证网站各种信息的健康向上。7五 数据库设计 在程序开发过程中,数据库设计是一个非常重要的环节。一个设计良好的数据库结构,可以提高效率、方便维护、而且以后为进行功能的扩充留有余地。1 数据库概要设计本网站采用 SQL Server 2005 数据库,名称为,其中包含 9 张数据表。系统数据表结构图如

15、图 5-1 所示。图 5-1 系统数据结构图2 数据库概念设计 博客作者在发表文章时,可根据文章类型分类发布,一种文章类型有多篇文章。同时,一个完整的网站还要有一些友情链接。文章类型信息实体 E-R 图和链接信息实体 E-R 图分别如图 5-2 和图 5-3. 文章信息类型文章类型文章编号链接信息链接编号网站名称链接地址图 5-2 文章类型信息实体 E-R 图 图 5-3 链接信息实体 E-R 图 对于博客作者发表文章时,访客有时要发表留言和评论,这可以增进博客作者和访客之间的交流与沟通。留言信息实体 E-R 图 5-4 和评论信息实体 E-R 图 5-5。8 留言信息留言编号留言标题网友昵称

16、留言日期留言内容个人主页留言回复评论信息评论编号昵称评论标题评论标题评论标题评论标题图 5-4 留言信息实体 E-R 图 图 5-5 评论信息实体 E-R 图 博客是以个人为中心的信息摘选,是展现个人风采的一种网络日志。当博客文章发表后会有相应的人气指数等。文章信息实体 E-R 图 5-6。为了增强系统的安全性每个用户只有通过正确的系统登录才有权限进行一些基本信息的管理。后台用户实体 E-R 图 5-7。 文章信息文章发表日子文章作者文章摘要文章标题文章内容文章人气留言回复文章编号文章类型编号文章类型名文章回复数用户名称用户编号用户密码网站后台用户 图 5-6 文章信息实体 E-R 图 图 5

17、-7 网站后台用户实体 E-R 图3 数据库逻辑设计在设计完数据库实体 E-R 图之后,将根据实体 E-R 图设计数据表结构。(1)ST-news(文章信息列表) 文章信息列表用来记录文章信息,如图 5-8 所示。9图 5-8 文章信息列表(2)ST-replay(评论信息列表) 评论信息列表用来保存评论信息,如图 5-9 所示。图 5-9 评论信息列表(3)ST-message(留言信息列表)留言信息列表用来保存留言信息,如图 5-10 所示。图 5-10 留言信息列表(4)文件夹组织结构在此将网站文件的组织结构展示出来, 如图 5-11 所示。10图 5-11 文件夹架构六 系统详细设计网

18、站的详细设计主要包括组员在博客管理系统中所负责的各个板块,并对重要版块的功能、设计思路、核心代码和实现结果进行详细的描述。网站的详细设计主要包括组员在博客管理系统中所负责的各个板块,并对重要版块的功能、设计思路、核心代码和实现结果进行详细的描述。1 网站首页(1)功能描述:在网站首页中实现的功能有浏览文章、留言、评论、注册用户、找回密码、普通管理员登录、超级管理员登录等。(2)设计思路:此页面的控件主要有标签、文本框、按钮等,对各控件的属性进行设置,从而实现界面友好、功能齐全。(3)核心代码: protected void Page_Load(object sender, EventArgs

19、e) / 在此处放置用户代码以初始化页面11string ST_dns = ConfigurationSettings.AppSettingsconStr;/最新推荐文章string ST_cmd_sql = select top 10 * from ST_news where ST_n_iscmd=1 order by ST_n_date desc;ST_myConn = new SqlConnection(ST_dns); SqlDataAdapter ST_classCmd = new SqlDataAdapter(select ST_c_id, ST_c_name from ST_cl

20、ass , ST_myConn);SqlDataAdapter ST_cmdCmd = new SqlDataAdapter(ST_cmd_sql,ST_myConn);DataSet ST_classds = new DataSet();ST_classCmd.Fill(ST_classds,类别列表);DataSet ST_cmdds = new DataSet();ST_cmdCmd.Fill(ST_cmdds,推荐文章);ClassList.DataSource = new DataView(ST_classds.Tables0);ClassList.DataBind();CmdLis

21、t.DataSource = new DataView(ST_cmdds.Tables0);CmdList.DataBind(); /调用自定义 NewsBlogList_Bind 方法NewsBlogList_Bind();if (Request.Cookiescolors!=null)string ST_test = Request.Cookiescolors.Value;String ST_colorList = ST_test.Split(new char , );ST_bgcolor = ST_colorList0;ST_tcolor = ST_colorList1;elseST_b

22、gcolor = #FFDE94;ST_tcolor = #efe3ce;Page.DataBind();12(4)实现结果如图 6-1 所示。图 6-1 网站首页2 博客的登录(1)功能描述:当注册好的用户输入用户名、密码、验证码与后台数据库的一样时,用户就能进入自己的管理界面,从而实现自己的发表文章、删除文章等功能。(2)设计思路:此页面的控件主要有标签、文本框、按钮等,同时还添加了一些验证控件对输入的信息格式、范围等进行验证,从而保证用户信息的正确性。(3)核心代码: protected void Page_Load(object sender, EventArgs e) if (!Is

23、PostBack)/生成一个随机数,在初始化时将其显示出来,作为验证码Random yzm = new Random();this.labVali.Text = yzm.Next(1000, 9999).ToString();13 protected void btnOK_Click(object sender, EventArgs e) if (this.txtVali.Text != this.labVali.Text) Response.Write(alert(验证码错误);location=javascript:history.go(-1); else int i = this.che

24、ckLogin(txtUid.Text, txtPwd.Text); if (i 0) / Response.Write(alert(登录成功!);location=/Module/Blog/ST_BlogIndex.aspx); /Response.Write(alert(登录成功!); SessionUserName = this.txtUid.Text; SessionPassWord = this.txtPwd.Text; Page.Response.Redirect(/Module/Blog/ST_BlogIndex.aspx); else Response.Write(用户名称或密

25、码错误!); public int checkLogin(string loginName, string loginPwd) SqlConnection con = new SqlConnection(Server=(local);database=db_Blog;Uid=sa;Pwd=); SqlCommand myCommand = new SqlCommand(select count(*) from tb_Blog where UserName=loginName and PassWord=loginPwd, con); myCommand.Parameters.Add(new Sq

26、lParameter(loginName, SqlDbType.NVarChar, 50); myCommand.ParametersloginName.Value = loginName; myCommand.Parameters.Add(new SqlParameter(loginPwd, SqlDbType.NVarChar, 50); myCommand.ParametersloginPwd.Value = loginPwd; myCommand.Connection.Open(); int i = (int)myCommand.ExecuteScalar(); myCommand.C

27、onnection.Close(); return i; (4)实现结果如图 6-2 所示。14图 6-2 博客的登录3 博客的注册(1)功能描述:在此模块中实现了对用户的注册。用了很多验证控件,对有的不能为空,有的必须为数值等功能。(2)设计思路:此页面的控件主要有标签、文本框、按钮等,同时还添加了一些验证控件对输入的信息格式、范围等进行验证,从而保证用户注册信息的正确性。(3)核心代码:protected void btnOK_Click(object sender, EventArgs e) /定义一个 SqlData 的新实例对象 SqlData da = new SqlData();

28、 /调用公共类的 ExceRead 方法,返回 SqlDataReader 类型的数据SqlDataReader read = da.ExceRead(select * from tb_Blog where UserName= + this.txtName.Text + ); /读取数据库中的数据read.Read(); /判断用户是否已经注册if (read.HasRows)if (this.txtName.Text = readUserName.ToString()Response.Write(alert(对不起,该用户已经注册!);location=Register.aspx);retu

29、rn; read.Close(); /定义一个字符串,插入相关的用户注册信息 string P_str_Com = insert into tb_Blog(UserName,PassWord,ReallyName,Birthday,Address,PostCode,Subject,Email,HomePhone,MobilePhone,QQ,ICQ, Question,Answer,Sex,RegTime,IP) + values( + this.txtName.Text + , + this.txtPwd.Text + , + this.txtRealName.Text + , + this

30、.txtBirthday.Text + + , + this.txtAddress.Text + , +this.txtPostCode.Text+ , + this.txtSubject.Text + , + this.txtEmail.Text + + , +this.txtHphone.Text + , + this.txtMphone.Text + , +this.txtQQ.Text+ 15, +this.txtICQ.Text + , + this.txtQues.Text + + , + this.txtAns.Text + , + this.ddlSex.SelectedVal

31、ue + , + DateTime.Now.ToString() + , + Page.Request.UserHostAddress + ); if (!ValidateDate1(txtBirthday.Text) & !ValidateDate2(txtBirthday.Text) & !ValidateDate3(txtBirthday.Text) Response.Write(alert(输入的日期格式有误!);location=Register.aspx); /调用公共类中的 ExceSQL 方法,执行 insert 语句bool add = da.ExceSQL(

32、P_str_Com);if (add) Response.Write(alert(恭喜您!注册成功!);location=././BlogIndex.aspx);elseResponse.Write(alert(对不起!您注册失败!);location=javascript:history.go(-1); protected void Button1_Click(object sender, EventArgs e)SqlData da = new SqlData();SqlDataReader read = da.ExceRead(select * from tb_Blog where Us

33、erName= + this.txtName.Text + );read.Read();if (read.HasRows)if (this.txtName.Text = readUserName.ToString()Response.Write(alert(对不起,该用户已经注册!);location=Register.aspx);elseResponse.Write(alert(恭喜您,该用户可以注册!););read.Close(); (4)实现结果如图 6-3 所示。16图 6-2 博客的注册4 回应管理模块(1)功能描述:在此回应管理中用户可以很清楚的看到回应着和回应着回应的内容,也可

34、以对其信息删除。(2)设计思路:此页面主要调用后台数据库。网友的回应如果涉及不健康信息,管理员会进行及时有效的管理。(3)核心代码:protected void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面/*判断是否登录*/ST_check_Login();/*建立链接*/ string ST_dns = ConfigurationSettings.AppSettingsconStr; ST_myConn = new SqlConnection(ST_dns); if(!Page.IsPostBack) ST_Re

35、play_Bind(); 17private void ST_Replay_Bind()string ST_sql = select * from ST_replay; /调用公共类 SqlData 中的 ExceDS 方法,返回一个 DataSet 类型的数据集 ReplayList.DataSource = sd.ExceDS(ST_sql); ReplayList.DataKeyNames = new string ST_r_id ; ReplayList.DataBind(); protected void CheckBox2_CheckedChanged(object sender,

36、 EventArgs e) for (int i = 0; i = ReplayList.Rows.Count - 1; i+) CheckBox cbox = (CheckBox)ReplayList.Rowsi.FindControl(CheckBox1); if (CheckBox2.Checked = true) cbox.Checked = true; else cbox.Checked = false; protected void Button1_Click(object sender, EventArgs e) CheckBox2.Checked = false; for (i

37、nt i = 0; i = ReplayList.Rows.Count - 1; i+) CheckBox cbox = (CheckBox)ReplayList.Rowsi.FindControl(CheckBox1); cbox.Checked = false; protected void ReplayList_RowDeleting(object sender, GridViewDeleteEventArgs e) /创建公共类 SqlData 的一个新实例对象 SqlData da = new SqlData(); /调用公共类中的 ExceSQL,执行删除的 SQL 语句 bool

38、 delete = da.ExceSQL(delete from ST_replay where ST_r_id= + ReplayList.DataKeyse.RowIndex.Value.ToString() + ); if (delete) Response.Write(alert(删除成功!);location=ST_admin_replay.aspx); else 18 Response.Write(alert(删除失败!);location=ST_admin_replay.aspxx); (4)实现结果如图 5-4 所示。图 6-4 回应管理模块5 类别管理模块(1)功能描述:在此

39、回应管理中用户可以很清楚的看到回应着和回应着回应的内容,也可以对其信息删除。(2)设计思路:此页面主要调用后台数据库。网友的回应如果涉及不健康信息,管理员会进行及时有效的管理。(3)核心代码: protected void Page_Load(object sender, EventArgs e) /建立数据库连接 string ST_dns = ConfigurationSettings.AppSettingsconStr; ST_myConn = new SqlConnection(ST_dns); if (!IsPostBack) /调用自定义方法 ST_Type_List_Bind()

40、进行数据绑定 ST_Type_List_Bind(); public void ST_check_Login() 19 if (SessionUserName = null) Response.Write(alert(对不起!您还不是会员,请先注册再登录!);location=././BlogIndex.aspx); Response.End(); protected void btnSearch_Click(object sender, EventArgs e) SqlData da = new SqlData(); string search = this.ddlSelect.SelectedValue; switch (search) case 文章编号: da.BindData(this.ClassList, Select * From ST_class Where ST_c_id Like % + this.txtKey.Text + %and BlogID= + ID + ); break; case 文章类型: da.BindData(this.ClassList, Select * From ST_class Where ST_c_name Like % + this.txtKey.Text + %and BlogID=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论