第五章 系统分析及功能规化 1、系统需求分析 http://www.paper51.com 系统分析是开发管理信息系统的关键性阶段,是一个从不断认识和逐步细化的过程,是下一阶段的工作基础,是为下一阶段进行物理方案设计、解决“怎么做”提供依据,基关键性主要体现在“理解需求”和“表达需求”两方面。 http://www.paper51.com
通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的综合要求,并提出这些需求的实现条件以及需求应达到的标准,也就是确定新系统要做什么,做到什么程度。这些需求包括: 内容来自www.paper51.com (1)功能需求。确定新系统应做什么,这是最主要的需求。 http://www.paper51.com (2)性能需求。给出所开发的新系统的技术性能指标,包括存储容量限制、运行时间限制、安全保密性等。 内容来自论文无忧网 www.paper51.com (3)环境需求。这是对系统运行以及所处环球瓣要求。例如,在硬件方面采用什么支持系统运行的系统软件(指操作系统、数据库管理系统)。 内容来自www.paper51.com (4)未来需求。这类要求是指目前不发属于系统开发的范围,但将来随着外界环境的变化以及系统的发展可能会提出的要求。了解这类要求的目的是在开发过程中,可对系统将来可能的扩展与修改做准备。一旦需要时,就比较容易进行了补充和修改了。 内容来自www.paper51.com
2、数据流程图 内容来自www.paper51.com
数据流程图是描述系统逻辑模型的主要工具,通过几个特定的符号,可以综合地反映出信息在系统中的使用、加工处理、传递、存储的整体情况。 http://www.paper51.com
数据流程图是系统结构化分析行之有效的工具,它抽象地描述了系统数据处理的情况,但却无法表达各个处理的详细内容,因此还要对数据流程图中出现的数据流和处理等做进一步的补充说明。 内容来自论文无忧网 www.paper51.com
数字是对数据流程图的补充说明,它的编制和维护是一项非常繁重的工作,一旦建立起来,从系统分析直至系统运行都用到它。 paper51.com
本流程图反映了各个子模块之间的关系,以及与系统的关系。 http://www.paper51.com 内容来自论文无忧网 www.paper51.com 各文件关系图 http://www.paper51.com 3、功能规划 copyright paper51.com 校友录,是一种为用户提供网上交流、聚会的网络工具,它可以使你和你的朋友、同学、同事、老师与亲人等在网上有一个相互交流的机会。假如你是在校学生,拥有校友录,你可以在寒暑假时通过它了解班上同学、老师的情况或者发布你的消息;同时,你如果毕业了,可以约上旧同学加入校友录,这样无论你身在何处,都可以随时上网在校友录里与你的旧同学交流;又或者你是公司员工或者老板,你可以在出差时通过校友录了解公司情况或者汇报情况。同时,你若离家,还可以通过校友录和家人联系。 paper51.com 班级留言、成员名片、访问记录、班级管理、班级相册等是校友录的主要功能。本设计的重点就是基于ASP实现这些功能。 copyright paper51.com 基于这些功能所需的数据建立几张图表。本设计中建立了三张表,分别是:1.user表 其中记录校友录成员的信息,包括用户名、密码、最后访问时间、访问次数等列2.liuy表 其中记录留言信息,包括用户名、留言内容、留言时间等列 3.tiet表 其中记录相册上传图片的信息,包括用户名、相片文件服务器端名、上传时间等列。 内容来自论文无忧网 www.paper51.com
(1) 登入窗口 内容来自www.paper51.com
用户进入本校友录系统需要先登入该窗口,才能进入系统进行查看和发布消息。 内容来自论文无忧网 www.paper51.com paper51.com (2) 新用户注册窗口 内容来自论文无忧网 www.paper51.com 本班学员进入本班校友录需要先进行注册,然后登入,最后才能进入本班校友录。 http://www.paper51.com copyright paper51.com (3) 用户修改资料窗口 paper51.com
http://www.paper51.com (4) 用户修改密码窗口 内容来自论文无忧网 www.paper51.com 当本班学员密码被其他人知道的情况下需要修改新密码,则进入本窗口进行修改。 copyright paper51.com 内容来自论文无忧网 www.paper51.com (5) 班级成员列表 内容来自www.paper51.com
内容来自www.paper51.com (6)班级留言表 内容来自www.paper51.com
copyright paper51.com
(7)班极相册表 paper51.com paper51.com 第六章 关键问题实现 copyright paper51.com 1.数据库访问 http://www.paper51.com
实现ASP下访问Access数据库首选的是Microsoft® ActiveX® DataObjects (ADO)。 copyright paper51.com
ADO 支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO 同时具有远程数据服务 (RDS) 功能,通过 RDS 可以在一次往返过程中实现将数据从服务器移动到客户端应用程序或 Web 页、在客户端对数据进行处理然后将更新结果返回服务器的操作。 copyright paper51.com 本设计所涉及的ADO对象有: 内容来自www.paper51.com 对象 http://www.paper51.com 说明 paper51.com
Command 内容来自论文无忧网 www.paper51.com
Command 对象定义了将对数据源执行的指定命令。 paper51.com Connection 内容来自www.paper51.com
代表打开的、与数据源的连接。 内容来自论文无忧网 www.paper51.com RecordSet 内容来自www.paper51.com 代表来自基本表或命令执行结果的记录的全集。任何时候,Recordset 对象所指的当前记录均为集合内的单个记录。 paper51.com (1)建立数据库连接,打开数据库 http://www.paper51.com 在ASP中建立对Access数据库连接的一般格式如下: paper51.com 第一行程序:利用Server对象的MapPath函数,取得要打开数据库的完整的文件路径,并存储在变量DbPath中。这其中,数据库名是我们需要指定的参数,应该用我们要打开的数据库的实际名称替代。如果数据库名是直接作为常量出现,要用引号将其括起来,并且不能丢掉扩展名。例如数据库是Test.mdb,则该行程序成为:DbPath=Server.MapPath(“Test.mdb”)。 内容来自www.paper51.com 第二行程序:建立一个ADO对象集中的Connection对象,也即连接对象。这是建立数据库连接的初始步骤。执行这行程序后,Conn成为一个连接对象。 内容来自论文无忧网 www.paper51.com 第三行程序:利用连接对象Conn的Open方法打开一个指定的数据库。因为我们要打开的是Access数据库,所以要指定ODBC驱动程序参数,表示要透过Access的ODBC驱动程序来访问数据库:driver={Microsoft AccessDriver (*.mdb)};。另一个参数dbq= & DbPath,运算后等效于dbq=Server.MapPath(数据库名) ,是利用了第一行的Server.MapPath(数据库名)函数,用来指定要打开的数据库文件。到这里,就已经打开了数据库名指定的数据库。如果数据库名是“test.mdb”,则打开Access数据库Test.mdb。在这一行里指定的参数,要严格按照格式原样写出,不能省略或改动,也没有可变参数。 paper51.com
本设计中的这三行为: 内容来自www.paper51.com
dbpath=Server.MapPath("\db") copyright paper51.com setconn=Server.CreateObject("ADODB.Connection") copyright paper51.com
conn.Open"Driver={Microsoft Access Driver (*.mdb)};DBQ="& dbpath&"\txl.mdb;" 内容来自论文无忧网 www.paper51.com
’..\db\txl.mdb是数据库文件的路径 http://www.paper51.com
(2) 执行数据库命令 内容来自www.paper51.com
setcmd=Server.CreateObject("ADODB.Command") paper51.com cmd.ActiveConnection=conn 内容来自www.paper51.com sql=""’sql中是命令内容 内容来自论文无忧网 www.paper51.com cmd.CommandText=sql 内容来自论文无忧网 www.paper51.com cmd.Execute’执行命令 copyright paper51.com (3) 执行查询命令并返回记录全集 内容来自www.paper51.com
setrs=Server.CreateObject("ADODB.Recordset") paper51.com
rs.ActiveConnection=conn http://www.paper51.com sql=""’sql中是查询命令的内容 copyright paper51.com
rs.Source=sql http://www.paper51.com rs.Open ’执行查询并返回在rs中 内容来自论文无忧网 www.paper51.com
2.文件上传 http://www.paper51.com
ASP中上传文件一般使用上传组件来完成该功能,但是组件需要安装配置。为了方便在不同服务器上调试运行程序,本设计选择无组件上传,直接用代码写一个分析上传二进制数据的类进行上传操作。要使Form以二进制形式上传数据需在Form标记里设置下enctype属性,即写上enctype=”multipart/form-data”。 内容来自论文无忧网 www.paper51.com 无组件上传类: http://www.paper51.com <% copyright paper51.com dimoUpFileStream copyright paper51.com Classupload_file 内容来自www.paper51.com
dimForm,File,Version 内容来自www.paper51.com Private SubClass_Initialize 内容来自论文无忧网 www.paper51.com '定义变量 内容来自www.paper51.com dim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo paper51.com
dimiFileSize,sFilePath,sFileType,sFormvalue,sFileName 内容来自www.paper51.com dim iFindStart,iFindEnd paper51.com
dim iFormStart,iFormEnd,sFormName 内容来自www.paper51.com '代码开始 paper51.com
Version="无组件上传类" copyright paper51.com
set Form = Server.CreateObject("Scripting.Dictionary") 内容来自www.paper51.com set File =Server.CreateObject("Scripting.Dictionary") 内容来自www.paper51.com
if Request.TotalBytes < 1 then Exit Sub http://www.paper51.com set tStream =Server.CreateObject("adodb.stream") 内容来自www.paper51.com set oUpFileStream =Server.CreateObject("adodb.stream") paper51.com
oUpFileStream.Type = 1 paper51.com oUpFileStream.Mode = 3 内容来自www.paper51.com oUpFileStream.Open http://www.paper51.com oUpFileStream.WriteRequest.BinaryRead(Request.TotalBytes) copyright paper51.com oUpFileStream.Position=0 http://www.paper51.com
RequestBinDate = oUpFileStream.Read 内容来自www.paper51.com iFormEnd = oUpFileStream.Size 内容来自论文无忧网 www.paper51.com bCrLf = chrB(13) & chrB(10) http://www.paper51.com
'取得每个项目之间的分隔符 内容来自www.paper51.com sStart = MidB(RequestBinDate,1,InStrB(1,RequestBinDate,bCrLf)-1) http://www.paper51.com iStart = LenB (sStart) copyright paper51.com
iFormStart = iStart+2 内容来自www.paper51.com '分解项目 内容来自www.paper51.com Do 内容来自www.paper51.com iInfoEnd =InStrB(iFormStart,RequestBinDate,bCrLf & bCrLf)+3 内容来自论文无忧网 www.paper51.com tStream.Type = 1 paper51.com tStream.Mode = 3 copyright paper51.com
tStream.Open 内容来自www.paper51.com
oUpFileStream.Position = iFormStart http://www.paper51.com oUpFileStream.CopyTotStream,iInfoEnd-iFormStart http://www.paper51.com tStream.Position = 0 paper51.com tStream.Type = 2 copyright paper51.com
tStream.Charset ="gb2312" paper51.com sInfo = tStream.ReadText copyright paper51.com '取得表单项目名称 paper51.com iFormStart = InStrB(iInfoEnd,RequestBinDate,sStart)-1 内容来自论文无忧网 www.paper51.com iFindStart =InStr(22,sInfo,"name=""",1)+6 paper51.com iFindEnd =InStr(iFindStart,sInfo,"""",1) 内容来自论文无忧网 www.paper51.com sFormName = Mid(sinfo,iFindStart,iFindEnd-iFindStart) 内容来自论文无忧网 www.paper51.com '如果是文件 copyright paper51.com if InStr(45,sInfo,"filename=""",1) > 0 then 内容来自www.paper51.com
set oFileInfo= new FileInfo copyright paper51.com
'取得文件属性 内容来自www.paper51.com iFindStart =InStr(iFindEnd,sInfo,"filename=""",1)+10 copyright paper51.com iFindEnd =InStr(iFindStart,sInfo,"""",1) paper51.com sFileName = Mid(sinfo,iFindStart,iFindEnd-iFindStart) copyright paper51.com oFileInfo.FileName =GetFileName(sFileName) paper51.com oFileInfo.FilePath =GetFilePath(sFileName) http://www.paper51.com
oFileInfo.FileExt = GetFileExt(sFileName) 内容来自论文无忧网 www.paper51.com
iFindStart =InStr(iFindEnd,sInfo,"Content-Type: ",1)+14 copyright paper51.com iFindEnd = InStr(iFindStart,sInfo,vbCr) http://www.paper51.com oFileInfo.FileType = Mid(sinfo,iFindStart,iFindEnd-iFindStart) paper51.com oFileInfo.FileStart = iInfoEnd 内容来自论文无忧网 www.paper51.com oFileInfo.FileSize = iFormStart -iInfoEnd-2 paper51.com
oFileInfo.FormName = sFormName http://www.paper51.com file.add sFormName,oFileInfo copyright paper51.com else copyright paper51.com '如果是表单项目 内容来自www.paper51.com tStream.Close copyright paper51.com
tStream.Type = 1 内容来自论文无忧网 www.paper51.com
tStream.Mode = 3 内容来自论文无忧网 www.paper51.com tStream.Open http://www.paper51.com
oUpFileStream.Position = iInfoEnd paper51.com oUpFileStream.CopyTotStream,iFormStart-iInfoEnd-2 内容来自www.paper51.com tStream.Position = 0 http://www.paper51.com
tStream.Type = 2 paper51.com tStream.Charset = "gb2312" copyright paper51.com sFormvalue = tStream.ReadText copyright paper51.com form.Add sFormName,sFormvalue paper51.com end if paper51.com tStream.Close 内容来自论文无忧网 www.paper51.com iFormStart = iFormStart+iStart+2 http://www.paper51.com '如果到文件尾了就退出 paper51.com loop until (iFormStart+2) = iFormEnd 内容来自论文无忧网 www.paper51.com RequestBinDate="" 内容来自论文无忧网 www.paper51.com set tStream = nothing 内容来自www.paper51.com End Sub http://www.paper51.com
内容来自www.paper51.com |