资源介绍
第一部分 软件可行性研究与项目开发计划
1. 问题定义
随着时代的进步,网络技术层出不穷信息量急剧膨胀,整个人类社会已成为信息化的社会,人们对信息和数据的处理。管理和加工已经进入自动化、网络化和社会化的阶段。博客的兴起,让更多的人在网络上,建起了展示自己的空间,同时更多的人愿意在网络上,分享个人的心情日记,个人收藏,这些都是普通的博客内容。
本次论文的目的制作网络日记本,我们要实现网络日记本的增加、删除、修改三大部分的内容。设计完成网络日记本,让它具有文章分类、日期时间显示、后台管理等功能。此次论文的开发过程,我们采用asp作为开发语言,Micsoft Access为数据库, 软件运行环境Pentium处理器+IIS+IE6.0+128MB。
2.可行性研究
本论文共分八个章节完成,我们的本次制作任务。在第一章,我们将把我们即将遇到的问题提出来,以便在以后的章节中完成它,并制定项目开发的进程计划;第二章软件需求分析,在本章节中,我们将逐一分析制作过程中遇到的问题,例如:看日记,写日记,删除日记,日记管理等,并且把相关数据做成数据字典;第三章软件概要设计,在这一章节中,我们将把各个问题一一作以详细的分析,并且制定解决的办法,用数据流程图,模拟日记本在使用过程中出现的情况;第四章软件详细设计,在此章节,我们将再次将日记本的各个功能提出,加以详细的分析,完成系统将出现的每一个细节。通过这一部分,我们将完成日记本制作的理论部分;第五章软件编码,顾名思义,在这一章节中,我们将对日记本实行软件编码,在实际中解释每段编码的含义,具体完成日记的增加、删除、数据库连接这几部分;第六章软件测试与调试,在这章里,我们对软件进行测试运行,找到软件的不足,加以修正;第七章 结束语,本章节,是在制作工程中,个人的感受与收获的总结;第八章附录,此章节为本次论文的结尾部分。
3.项目开发计划
本次论文的时间安排如下
(1)需求分析阶段:(2007年4月份---2007年5月份)
(2)详细设计阶级:(2007年5月份---2007年6月份)
(3)测试阶段:(2007年6月份)
第二部分 软件需求分析
1. 用户功能和数据流图(DFD)
在项目可行性研究的基础之上,我们对系统各项功能进行了初步的分析。
1.1 管理界面登陆
本软件采用的是前台录入方式,所以日记的一切管理无需从后台进入才能进行操作。在前台完成所有操作,这一点我们将在以后的章节详细说明。在登陆到管理界面,我们要输入管理员账号和密码,进入到管理主界面。在主界面进行所要的基本操作。
(1)在登陆界面,我们输入账户信息,账户信息包括管理员登陆名和管理员密码,这些信息经过基本信息库身份验证,如果信息错误将提示“输入错误”提示信息,显示错误界面。如用户不进行任何操作,界面将在5秒后自动返回最初的管理员登陆界面;如果信息正确无误,将进入管理主界面,管理员就可以进行自己所需要的详细操作了。此过程数据图(图2-1),所示
(图2-1)
(2)账号的合法性验证,在登陆界面,我们将设置两个按钮,即“确定”和“重置”。当用户在输入密码后发现密码输入错误时,点击“重置”键即可将之前输入的密码清除。在用户输入密码后,点击“确定”键时,计算机将调用身份验证数据库进行身份验证,验证该登陆用户是否是合法的管理员。如果其密码输入正确将进入下一个界面。其数据流程图(图2-2)所示:
(图2-2)
1.2 需求选择
当密码验证正确后进入需求界面,在此界面中有浏览、增加、删除、修改密码等功能选项以退出按钮。(图2-3)
(图2-3)
在接下来的部分里,我们将用数据流图的形式来表示各个需求选择的功能
1.3 浏览
其数据流程图(图2-4)
(图2-4)
注:在浏览文章的时候,我们可以进行选题浏览,即:对自己所知道题目的文章直接浏览。还可以进行分类浏览,即:根据不同分类,选择不同的类别,在一种类别中进行文章浏览。
1.4 修改密码
其数据流程图如下(图2-5)
(图2-5)
注:㈠在请输入旧密码、新密码界面,我们在这里要求输入旧密码一次,用于修改用户的合法性验证;输入新密码两次,用于新密码的一致性验证。
㈡信息处理有三种情况ⅰ. 旧密码输入错误,返回修改密码界面。ⅱ.新密码两次输入,两次输入不符,返回修改密码界面。ⅲ.修改密码成功,显示修改完成界面。
2. 数据字典(DD)
1)登陆名
长度:5-12位
类型:字符型
2)密码
长度:6-14位
类型:整型
3)文章内容
类型:整型
4)日期
__年__月__日
5)名称:基本信息库
登陆名
密码
6)名称:数据中心
文章名称
文章类别
文章写作日期
文章内容
7)名称:基本信息
来源:登陆管理员
去处:身份验证
组成:账号+密码
第三部分 软件概要设计
1.定设计方案
在整个系统中,从功能划分成浏览、增加、删除及修改密码,四个模块,用一个主菜单来承载这四个功能,即每个功能完成后返回的界面。
现在对用户进入系统作详细设计。
在需求分析中已经产明本软件采用的是前台录入方式,日记的一切管理均需从前台进入进行操作,其程序流程图(图3-1)所示:
(图3-1)
在这段程序流程中,判断合法性时就要调用客户基本信息库表,将帐号与密码对照,判断其真假并将结果返回。
在用户登录到管理登录界面时,用户根据提示在“帐号”和“密码”处,输入个人信息,并点击“确定”按钮,“重置”按钮作为清除用户输入错误,清除已输入信息使用。
用户在输入了帐号和密码后点击“确定”按钮,说明用户已经确认其输入的帐号和密码无误,确认提交并进行此次操作。系统将把帐号、密码送入数据库与数据库中的原始数据相校对,验证其合法性、可行性。验证过后如果不合法则返回在界面上返回提示信息“您输入的账号或密码错误,请正确输入!”如果帐号和密码验证无误后,则进入下一个界面继续进行用户所需要的操作。如果用户决定结束此次操作,则关闭页面即可结束操作或点击“退出”,返回到帐号与密码输入界面(图3-2)
(图3-2)
如果你忘记密码,你可以通过自己设置的问题找回密码。这样增强了程序的可用性。
在帐号密码校验无误后,用户选择进入下一个阶段的操作,则进入了功能选择界面,该界面包括了所有日记本系统所提供给用户的所有操作,包括“看日记(即浏览)”,“添加日记”,“修改删除”。具体如下图(图3-3)所示
(图3-3)
2.模块及软件结构图
2.1 看日记(即浏览文章)
看日记功能是用于完成用户对其个人帐户内已有文章进行浏览,清晰直观的反映给用户其帐户内文章资源的情况。主要在前台进行,具体的流程图如下(图3-4)
(图3-4)
用户可以通过用户列表中列出的用户选择用户名,进入浏览页面。在些页面中可以通过日历控件,选择具体的日期查看当前用户的公开的日记。
进入了看日记子功能界面,界面将显示出该功能所提供给用户的一起可操作功能,即用户可以自主选择所需要的类别进行浏览观看,“回返”按钮用于看日记功能操作,返回功能选择界面。“退出”按钮用于结束一切操作,返回到帐号输入界面,从数据库中调用的所有数据经系统重新整理后,返回数据库。其功能界面如(图3-5)所示
(图3-5)
2.2 修改日记参数
修改日记本参数是用户对自己日记本一些基本参数的设置,包括密码修改、忘记密码,找回密码的问题和答案、个人主页等。其数据流程图如下(图3-6)所示
(图3-6)
日记参数,其界面图如下(图3-7)所示
(图3-7)
3.数据库设计
当用户通过日记本系统进行各项操作时,必然要用到对表数据库的调用,在调用的过程中即对数据库进行访问或修改。因此,我们对数据进行设计。
在一个数据库中存放看很多表,这些表之间有的存在必然的联系,我们可以通过这些表间关系对数据库进行查询和修改。
在这个系统中我们设计了两个数据库表即基本信息库和数据中心库,当用户一开始进入日记本系统时为了其安全性就要对用户进行身份验证。因而就要对基本信息库进行调用并查询,而修密就要对该数据库进行修改。
在基本信息库表进行设计时,应包含客户最基本的ID、password;其次客户的一些次要信息(E-mail、注册时间)也就构成了我们数据库表中的字段名。通过对个字段名内容的填写也就构成了我们的基本信息。
接下来对数据中心库表的设计,它的方法与客户基本信息库表一样,也包括一些基本的信息,如ID、分类、题目。这些最基本的信息可设置成为主索引,惟一索引或候选索引,从而建立表间关系。在这个库表中还要有用户的输入内容,删除记录和操作时间等。
基本信息库表如下所示:
(1)基本信息库表,详细设计如表3.1
表3.1 日本
Table 3.1 txt
编 号 字段名称 数据结构 说 明
1 ID 自动编号 编号
2 用户 文本 用户
3 年 文本 写日记的年份
4 月 文本 写日记的月份;
5 日 文本 写日记的日期;
6 天气 文本 写日记的天气
7 心情 文本 写日记的心情
8 内容 备注 日记内容
9 addtime 时间 添加时间
10 保密 数字 0,不公开;1,公开
11 see 数字 观看资数
(2)管理员表,详细设计如表3.2
表3.2日本
Table 3.2 txt
编 号 字段名称 数据结构 说 明
1 ID 自动编号 编号
2 name 文本 用户
3 password 文本 密码
4 rj 文本 日记
5 user 文本 日记用户名;
6 usermail 文本 邮箱
7 home 文本 主页地址
8 page 数字 每页显示日记量
9 url 文本 网址址
10 copy 文本 版权
11 orther 文本 其它
12 admin 文本 真实名
13 ver 文本 版本
(3)用户表,详细设计如表3.3
表3.3 用户
Table 3.3 user
编 号 字段名称 数据结构 说 明
1 ID 自动编号 编号
2 user 文本 用户
3 pass 文本 密码
4 mail 文本 邮箱
5 url 文本 主页地址
6 time 日期时间 注册时间
7 sm 数字 日记数量
8 see 数字 使用次数
9 bm 数字 是否公开
10 logo 文本 顶端图片
11 wenti 文本 问题
12 daan 文本 答案
第四部分 软件详细设计
1. 浏览功能模块设计
进入本系统看到的便是本系统的浏览功能模块,本系统的浏览功能模块的设计方案图如(图4-1):
图4-1
进入系统浏览功能模块后,首先看到的是本系统管理员的日记本,然后可以在系统导航条中选择用户列表,选用户。便进选择用户的日记本,进入后可以选择日历,查看具体日期的日历。
2.修改日记功能设计
每个用户进入个人管理中心后,便可以修改个人日记参数,数据流图如图4-2所示:
图4-2
第五部分 软件编码
1. 所选语言
本系统在ASP环境下,利用ASP内置的五大对像,以及ado的使用,加上VBScript、JSscript语言开发。在外观和格式控制上,采用DHTM以及CSS样式表来实现。
2. 源代码(见附录1)
第六部分 软件测试与调试
1. 测试环境与测试方法
本系统在Windows系统 IIS环境下测试。
在测试过程中,首先需要对各子单元过程进行测试。在各子单元过程测试完毕后,再对各模块(包括各子单元过程之间的接口)进行测试,处理好各模块之间的接口,最后对系统进行测试和维护。各子模块测试名称如下:
客户机接受信息模块测试
客户机输出信息模块测试
网络接受和发送模块结构测试
服务器模块(包括数据库)测试
各模块之间的接口测试
系统测试
2.测试实例 ( 测试集 ) 的研究与选择
首先对用户的输入信息进行测试。客户机上的输入信息分别是用户基本信息。输出为处理信息或出错信息。在输入的测试数据中可分为有效输入类.无效输入类。其中的错误种类有:
无效输入类
数据类型不匹配,PErrorType =T;否则=F;
你的昵称 文本 管理密码 文本
你的邮箱 文本 确认密码 文本
忘记密码问题 文本 答案 文本
数据超出规定范围PErrorRank =T; 否则=F;等等
3. 测试过程与调试
第一组数据
你的昵称 输入:“ ”
管理密码 输入:123456
确认密码 输入:123456
你的邮箱 输入:zengfanb@163.com
忘记密码问题 输入:我最好朋友是谁?
答案 输入:小曾
第二组数据
你的昵称 输入:“放大镜看爱”
管理密码 输入:123456
确认密码 输入:123dddd
你的邮箱 输入:zengfanb@163.com
忘记密码问题 输入:我最好朋友是谁?
答案 输入:小曾
第三组数据
你的昵称 输入:“放大镜看爱”
管理密码 输入:zfbmm
确认密码 输入:zfbmm
你的邮箱 输入:zengfanb@163.com
忘记密码问题 输入:我最好朋友是谁?
答案 输入:小曾
4.结果
第一组数据测试结果:
第二组数据测试结果:
第三组数据测试结果:
注册成功
第七部分 结束语
经过本次设计,系统已通过测试完成。回想在这半年的历程中;从选题到系统的实现,再到论文完成,每走一步对我来说都是新的尝试与挑战。在课题设计过程中遇到了很多困难,也走了许多弯路, 但最终通过查阅资料,问老师和同学都得到了解决。在设计过程中经过多次修改,能够较好的把软件工程中的基本原理和方法学运用到系统的具体设计中。
在课题设计过程中由于技术时间等原因,还存在很多有待完善的地方和不足之处, 在此还望老师给出宝贵意见。以便在以后的学习工作中不断提高自我完善自我。
第八部分 附 录
1.代码附录
1.1 整个系统的连接接数据库的文件的代码如下:
<%
set conn=server.createobject("ADODB.CONNECTION")
conn.open "DBQ="+server.mappath("pfcr1015.asp")+";DRIVER={Microsoft Access Driver (*.mdb)};"
%>
1.2.浏览功能模块的代码,index.asp文件,用于分页浏览日记。
<%
user=request("user")
p=request("page")
session("adminuser")=""
session("root")="http://blueyr.com/"
set conn=server.createobject("ADODB.CONNECTION")
conn.open "DBQ="+server.mappath("pfcr1015.asp")+";DRIVER={Microsoft Access Driver (*.mdb)};"
set rs1=server.createobject("adodb.recordset")
sql1="SELECT * from admin"
rs1.open sql1,conn,1,1
if user="" then user=rs1("name")
see=-1
set rs2=server.createobject("adodb.recordset")
sql2="SELECT * from user where user='"&user&"'"
rs2.open sql2,conn,1,1
if not rs2.eof then
url=rs2("url")
mail=rs2("mail")
see=rs2("see")
logo=rs2("logo")
end if
if logo="" or isnull(logo) then logo="images/girl.gif"
if session("user")<>user then
sql2="update user set see=see+1 WHERE user='"&user&"'"
conn.execute(sql2)
session("user")=user
end if
set rs=server.createobject("adodb.recordset")
sql="SELECT * from txt where 用户='"&user&"' order by 年*10000+月*100+日 desc"
rs.open sql,conn,1,1
cc=1
if not isempty(request("page")) then
pagecount=cint(request("page"))
else
pagecount=1
end if
rs.PageSize=rs1("page")
rs.AbsolutePage=pagecount
For iPage = 1 To rs.PageSize
If rs.EOF Then Exit For
%>
1.3. 修改日记参数模块的核心代码,changepass.asp 用于修改日记的相关参数,参数如详细设计章节所列,其主要代码如下:
<%
add=request("add")
user=request("user")
set conn=server.createobject("ADODB.CONNECTION")
conn.open "DBQ="+server.mappath("pfcr1015.asp")+";DRIVER={Microsoft Access Driver (*.mdb)};"
set rs1=server.createobject("adodb.recordset")
sql1="SELECT * from admin"
rs1.open sql1,conn,1,1
set rs2=server.createobject("adodb.recordset")
sql2="SELECT * from user where user='"&user&"'"
rs2.open sql2,conn,1,1
if not rs2.eof then
pass=rs2("pass")
url=rs2("url")
mail=rs2("mail")
bm0=rs2("bm")
logo=rs2("logo")
end if
if logo="" or isnull(logo) then logo="images/girl.gif"
if session("root")<>pass or pass="" then
response.redirect "index.asp?user="&user&""
end if
if add="add" then
ok="yes"
url=request.form("url")
mail=request.form("mail")
pass1=request.form("password1")
pass2=request.form("password2")
bm=request.form("bm")
wenti=request.form("wenti")
daan=request.form("daan")
logo=request.form("logo")
Set Conn=Server.CreateObject("ADODB.Connection")
DBPath=Server.MapPath("pfcr1015.asp")
Conn.open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.open "Select * From user where user='"&user&"'",Conn,2,3
if pass1<>pass2 then
ok="no"
end if
if ok="yes" and mail<>"" and url<>"" then
rs("mail")=mail
rs("url")=url
rs("bm")=bm
rs("wenti")=wenti
rs("daan")=daan
rs("logo")=logo
if pass1<>"" then rs("pass")=pass1
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
if pass1<>"" then session("root")=pass1
response.redirect "adminindex.asp?user="&user&""
end if
end if
end if
end if
end if
%>
2. 参考文献:
[1] (美)Stephen C.Perry .C#和.NET核心技术[M].北京:清华大学出版社.2006
[2] 曹锰, 舒新峰 .C#与ASP.NET程序设计[M]. 西安:西安交通大学出版社.2006
[3] 田原,李素若,文斌 .C#程序设计[J]. 2005
[4] 曹锰,舒新峰 .C#与ASP.NET程序设计[M].西安:西安交通大学出版社.2006
[5] 刘庆国,屈艳莲 .ASP.NET企业级开发[M].上海:人民邮电出版社.2006
[6] 邹建峰,周山峰,项细威 .C#企业级开发[M] . 上海:人民邮电出版社.2006
[7] (美) Foxall,j.著 陈秋萍 译 .Visual C#N 2005入门经典.[M] 上海:人民邮电出版社 2007