博客管理系统论文(吐血之作).doc_第1页
博客管理系统论文(吐血之作).doc_第2页
博客管理系统论文(吐血之作).doc_第3页
博客管理系统论文(吐血之作).doc_第4页
博客管理系统论文(吐血之作).doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计课程设计名称: 数据库应用课程设计 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间:2010.12.20-2010.12.24 计算机应用技术专业课程设计任务书学生姓名专业班级计算机应用技术0803班学号题 目博客管理系统(后台)课题性质A工程设计课题来源D自拟课题指导教师同组姓名无主要内容博客管理系统为大家提供了一个展示自己才华的舞台,在这里可以释放自己的心情,畅所欲言。博客就是开放的私人空间,可以让大家将个人工作经验、生活故事,思想历程,闪现的灵感等及时记录和发布,发挥个人无限的表达力,可以以文交友。更重要的是在博客网站中可以以整个互联网为视野,精选和记录自己在互联网上看到的精彩内容,为他人提供帮助使其具有更高的共享价值。任务要求(1) 提供会员登陆、退出的功能(2) 提供普通游客注册的功能(3) 提供会员和普通游客浏览日志的权限(4) 提供会员添加删除日志的权限(5) 提供日志发表删除的方法参考文献1) 金旭亮,吴彬.网站建设教程 M.北京:高等教育出版社,2006.2.2) 盖天宇,孙明丽.ASP数据库系统开发案例精选M.北京:人民邮电出版社,2006.5.3) 李春葆,曾慧。SQL Server 2000 应用系统开发教程M.北京:清华大学出版社,2008.5.4) 张景峰.ASP程序设计教程M.北京:中国水利水电出版社,2003.6.5) 王珊,萨师煊.数据库系统概论 (第四版)M. 北京:高等教育出版社,2006.5.6) 盖天宇,孙明丽.ASP数据库系统开发案例精选M. 北京:人民邮电出版社,2007.2.审查意见指导教师签字:教研室主任签字: 2010年 11月 16 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1 需求分析系统的需求分析中根据博客管理的基本流程,分析了系统的具体功能,对系统作了总体的规划,提出了系统的设计目标,介绍了系统的开发及运行的环境。1.1 功能分析通过图书管理的调查研究,系统应该具有以下功能:(1)提供会员登录、退出的功能。(2)提供普通游客注册的功能。(3)提供会员和普通游客浏览日志的权限。(4)提供会员添加删除日志的权限。(5)提供日志发表、删除的方法。1.2 设计目标本系统是针对网上博客系统管理进行设计的。通过分析,主要实现如下目标:(1)首页显示模块,显示最新日志及日志相关信息。(2)登录验证模块,记录登录会员登录IP及时间。(3)注册验证模块,注册信息验证,记录会员注册的信息。(4)日志浏览模块,游客及会员浏览日志。(5)日志管理模块,会员对日志的发表及删除。(6)对普通游客和注册会员分别管理,区分权限。1.3 开发及运行环境 1、硬件平台(1)CPU:P41.8GHz。(2)内存:256MB以上。2、软件平台(1)操作系统:Windows XP/ Windows 2000。(2)数据库:SQL Server 2000。(3)浏览器:IE5.0,推荐使用IE6.0。(4)Web服务器:IIS5.5。(5)分辨率:最佳效果1024768像素。2 概要设计 系统概要设计首先对数据库的编码进行设计,方便数据信息的处理,其次是根据需求分析,对数据库的结构进行设计,建立相关的数据表,最后构画出系统功能的结构图。2.1 数据库结构设计2.1.1 数据库概念结构设计根据数据库课程所学知识和对网站建设的自学知识,最终画出系统的实体关系图(E-R图)如下所示。会员用户名用户名用户ID日志ID发表时间用户Email用户密码日志类别日志日志类别日志内容浏览选择日志标题类别名称日志类别ID类别描述图2.1 系统实体关系图2.1.2 数据库逻辑结构设计由2.1.1的实体关系图可以得到系统的关系模式为:会员(用户ID,用户名,用户密码,用户Email)日志类别(日志类别ID,日志类别,类别描述)日志(日志ID,日志标题,日志内容,日志类别,日志发表时间,用户名)2.1.3 数据库物理结构设计 1、数据库的设计CREATE DATABASE SimpleBlog ON (NAME = NSimpleBlog _Data, FILENAME = NF:SimpleBlog data SimpleBlog _Data.MDF , SIZE = 1, FILEGROWTH = 10%) LOG ON NAME = NSimpleBlog _Log, FILENAME = NF: SimpleBlog data SimpleBlog _Log.LDF , SIZE = 1, FILEGROWTH = 10%)GO2、表的设计(1)users(会员信息表)表2.1 Users的结构字段名数据类型长度主键否描述user_idInt4是自动编号user_namenvarchar255否用户名user_passwordnvarchar255否用户密码user_emailsmallint2否用户EmailCREATE TABLE dbo.users (user_id int NOT NULL ,user_email nvarchar (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,user_name nvarchar (255) COLLATE Chinese_PRC_CI_AS NULL ,user_password nvarchar (255) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY(2)categories(日志类别信息表)表2.2 categories的结构字段名数据类型长度主键否描述cat_idInt4是自动编号cat_namenvarchar255否日志类别名称cat_descnvarchar255否日志类别描述 CREATE TABLE dbo.categories (cat_id int IDENTITY (1, 1) NOT NULL ,cat_name nvarchar (255) COLLATE Chinese_PRC_CI_AS NULL ,cat_desc nvarchar (255) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY(3)articles(日志信息表)表2.3 articles的结构字段名数据类型长度主键否描述article_idInt4是自动编号article_titlenvarchar255否日志标题article_contentnvarchar255否日志内容article_Datanvarchar255否发表日期user_namenvarchar255否用户名cat_namentext255否日志类别CREATE TABLE dbo.articles (article_id int IDENTITY (1, 1) NOT NULL ,article_title nvarchar (255) COLLATE Chinese_PRC_CI_AS NULL ,article_date smalldatetime NULL ,article_content ntext COLLATE Chinese_PRC_CI_AS NULL ,cat_id int NULL ,user_id int NOT NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARY2.2 系统功能结构设计2.2.1 数据库功能设计1、视图 (1)articles 查询视图(articles)articles 查询视图包括一个表articles。articles 查询视图的字段包括:article_id, article_title, article_date, article_content。其主要代码如下:CREATE VIEW dbo.articles查询ASSELECT article_id, article_title, article_date, article_contentFROM dbo.articles(2)users查询视图(users)users查询视图包括一个表users。users查询视图的字段包括:user_id, user_email, user_name, user_password。CREATE VIEW dbo.users查询ASSELECT user_id, user_email, user_name, user_passwordFROM dbo.users2、存储过程包括两个存储过程:向articles表中插入、删除信息。(1)存储过程insert_articles_1向articles表中插入数据。其主要代码如下:USE SimpleBlogGOCREATE PROCEDURE insert_articles_1(article_id_1 int, article_title_2 nvarchar(255), article_date_3 smalldatetime, article_content_4 ntext, cat_id_5 int, user_id_6 int)AS INSERT INTO SimpleBlog.dbo.articles ( article_id, article_title, article_date, article_content, cat_id, user_id) VALUES ( article_id_1, article_title_2, article_date_3, article_content_4, cat_id_5, user_id_6)(2)存储过程insert_articles_1在articles表中删除数据。其主要代码如下:USE SimpleBlogGOCREATE PROCEDURE delete_articles_1(article_id_1 int, article_title_2 nvarchar, article_date_3 smalldatetime, article_content_4 ntext, cat_id_5 int, user_id_6 int)AS DELETE SimpleBlog.dbo.articles WHERE ( article_id = article_id_1 AND article_title = article_title_2 AND article_date = article_date_3 AND article_content = article_content_4 AND cat_id = cat_id_5 AND user_id = user_id_6)3、触发器(1)trigger_pwd1触发器是用来检查密码的长度是否在6-10之间。CREATE TRIGGER trigger_pwd1 ON dbo.users FOR INSERTASIF (SELECT Len(Password.value) FROM inserted)10 BEGIN PRINT 密码长度必须是 6-10 位! ROLLBACK END(2)trigger_users触发器是用来标记插入成功!。其主要代码如下:create trigger trigger_userson dbo.users AFTER insertasPrint 注册成功! 2.2.2 系统功能结构设计 根据需求分析和数据库的设计,构画出博客系统功能结构图,如图2.2所示。博客管理系统游客会员浏览日志注册登陆浏览日志添加日志删除日志图2.2 系统功能结构图2.3 数据库的连接(1)非DSN访问数据库:非DSN访问数据库就是使用连接字符串的方式建立与SQL数据库的连接。(2)通过DSN访问数据库:非DSN访问数据库在程序中指定数据库,如果数据源有变化,就需要修改程序。在系统级别上预先定义好数据源DSN,就可以避免这个麻烦,在定义DSN的过程中指定数据源需要的ODBC驱动程序,数据库文件的实际路径和名字,在程序中需要引用预先定义好的数据源名(DSN)即可。本设计是通过非DSN访问数据库的,建立一个conn.asp文件,使用连接字符串的方式建立与SQL数据库的连接。代码如下:而在其他的ASP文件中,要连接数据库加入如下代码: 然后在使用ADO的Connection或RecordSet对象通过MM_conn_STRING来连接数据库。3 详细设计3.1首页显示模式该模块实现了简单的数据库备份和还原功能,利用自行维护的一份备份日志来还原以前备份的任何数据库,为数据的安全提供了基本保障。(1)首页显示页面,效果图如图3.1所示。图3.1 首页显示页面首页显示页面index.asp的主要代码: a href=./article.asp?article_id= | | 3.2 登陆管理模块登录模块完成对会员登录的鉴别、登录信息更新和退出处理。(1)登录页面login.asp,效果图如图3.2所示。图3.2 登录界面登录页面login.asp主要代码:%Dim UserName,Pwd,LoginTimes,ErrMsgDim objRS,sqlStrUserName = Trim(Request(UserName)Pwd = Trim(Request(Pwd)If UserName = Then ErrMsg = 您没有填写用户名,无法登录!If Pwd = Then ErrMsg = 您没有填写密码,无法登录!If IsEmpty(ErrMsg) ThenIf UserName = GUEST ThenOutPutCookiesElseSet objRS = Server.CreateObject(ADODB.Recordset)sqlStr = SELECT Pwd,LoginTimes FROM Users WHERE UserName LIKE & UserName & If objRS.EOF ThenErrMsg = 没有该注册用户!ElseIf objRS(Pwd) Pwd ThenErrMsg = 密码错误,登录失败!ElseLoginTimes = objRS(LoginTimes) + 1objRS(LoginTimes) = LoginTimesobjRS.UpdateOutPutCookies 下面包含endconn.inc文件释放对象实例,关闭数据库连接%用户登录失败用户登录失败%Response.Write(ErrMsg&)Response.Write(【返回重试】)%(2)退出页面admin/logout.asp的主要代码:3.3 会员注册模块 会员注册页面register.htm,效果图如图3.3所示。图3.3 会员注册页面会员注册页面register.asp的主要代码:%Dim UserName,Pwd,LoginTimes,ErrMsgDim objRS,sqlStrUserName = Trim(Request(UserName)Pwd = Trim(Request(Pwd)If UserName = Then ErrMsg = 您没有填写用户名,无法登录!If Pwd = Then ErrMsg = 您没有填写密码,无法登录!If IsEmpty(ErrMsg) ThenIf UserName = GUEST ThenOutPutCookiesElseSet objRS = Server.CreateObject(ADODB.Recordset)sqlStr = SELECT Pwd,LoginTimes FROM Users WHERE UserName LIKE & UserName & objRS.Open sqlStr,objConn,1,3If objRS.EOF ThenErrMsg = 没有该注册用户!ElseIf objRS(Pwd) Pwd ThenErrMsg = 密码错误,登录失败!ElseLoginTimes = objRS(LoginTimes) + 1objRS(LoginTimes) = LoginTimesobjRS.UpdateOutPutCookies 下面包含endconn.inc文件释放对象实例,关闭数据库连接%用户登录失败用户登录失败%Response.Write(ErrMsg&)Response.Write(【返回重试】)%3.4 日志管理模块日志管理模块为会员提供添加日志和删除日志的操作。(1) 日志管理页面ManageArticles.asp,效果图如图3.4所示:图3.4 日志管理页面日志管理页面ManageArticles.asp页面的主要代码: 标题 作者 日志类别 日期 tr class= onmouseover=changeBackColor(this, overRow); onmouseout=changeBackColor(this, ) input type=checkbox name=post_ value= / (2)日志添加页面admin/admin.asp?act=new,效果图如图3.5所示。图3.5添加日志页面日志添加页面admin/admin.asp?act=new的主要代码:发表日志题目内容文章类别: 科技趣闻 诗意人生哲学小品风景无限心灵驿站(3)日志删除页面deletePost.asp的代码如下: % Dim posts, sql, rs, postIDs, counter, errorMsg, responseData, statusCodestatusCode = falseposts = split(Request.Form(post_ids), #)postIDs = (For counter = 0 To UBound(posts) - 1postIDs = postIDs + posts(counter) + ,NextpostIDs = postIDs + posts(UBound(posts) + )sql = DELETE FROM articles WHERE article_id IN + postIDsOn Error Resume Nextconn.Execute sqlsql = SELECT * FROM articles WHERE article_id IN + postIDsSet rs = Server.CreateObject(ADODB.Recordset)rs.open sql, conn, 1,1If rs.EOF or rs.BOF thenstatusCode = trueEnd ifrs.closeSet rs = nothingIf Err thenerrorMsg = Error Number: + Err.Number + Error Description: + Err.descriptionEnd ifresponseData = responseData = responseData + status: + statusCode + ,responseData = responseData + error: + errorMsg + responseData = responseData + Response.Write(responseData) %4 测试4.1 系统调试系统测试和系统调试都是开发软件过程中必不可少的测试,但它们在方法、目的、思想等方面存在很大的差异,主要体现在:(1)测试的目的是找出存在的错误;而调试的目的是定位错误、找出错误的原因并修改程序以修正错误;测试活动中发现的缺陷需要通过调试来进行定位;两者在目标、方法和思路上有所不同;(2)调试是编码阶段和缺陷修复阶段的活动,测试活动则可以贯穿整个软件的生命周期;(3)测试是从已知的条件开始,使用预先定义的过程和步骤,有预知的结果;调试从未知的条件开始,结束时间无法预计;(4)软件测试可以计划,可以预先制定测试用例和过程,工作进度可以度量.而调试不能计划,进度不可度量;(5)调试是在测试之后,在方法,思路,策略上都有所不同。本着以上调试的原则及调试的方法和过程在系统设过程中进行了相关的调试,可以说调试是一个相当繁琐而又复杂的过程,在本系统调试过程中主要遇到的错误主要体现在以下几个方面:由于单词的拼写或者是输入法不当造成的程序错误;由于代码书写格式的不正确而带来的错误;由于操作顺序不当带来的错误;更有甚者有的单词明明是对的但系统提示错误,但只要对这些单词或词组剪切粘贴一下就显示正确,这一原因的出现可能是服务器在运行过程中所导致的,在老师和同学们的帮助下最终还是调试出了正确的程序,开发出了可以利用的系统。4.2 测试与运行4.2.1 测试内容系统测试和系统调试都是开发软件过程中必不可少的测试,但它们在方法、目的、思想等方面存在很大的差异,主要体现在:(1)测试的目的是找出存在的错误;而调试的目的是定位错误、找出错误的原因并修改程序以修正错误;测试活动中发现的缺陷需要通过调试来进行定位;两者在目标、方法和思路上有所不同;(2)调试是编码阶段和缺陷修复阶段的活动,测试活动则可以贯穿整个软件的生命周期;(3)测试是从已知的条件开始,使用预先定义的过程和步骤,有预知的结果;调试从未知的条件开始,结束时间无法预计;(4)软件测试可以计划,可以预先制定测试用例和过程,工作进度可以度量.而调试不能计划,进度不可度量;(5)调试是在测试之后,在方法,思路,策略上都有所不同。本着以上调试的原则及调试的方法和过程在系统设过程中进行了相关的调试,可以说调试是一个相当繁琐而又复杂的过程,在本系统调试过程中主要遇到的错误主要体现在以下几个方面:由于单词的拼写或者是输入法不当造成的程序错误;由于代码书写格式的不正确而带来的错误;由于操作顺序不当带来的错误;更有甚者有的单词明明是对的但系统提示错误,但只要对这些单词或词组剪切粘贴一下就显示正确,这一原因的出

温馨提示

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

评论

0/150

提交评论