题目:达州三中同学录管理系统专业:计算机信息管理
学生姓名:
指导教师:段军利
毕业设计(论文)任务书
毕业设计(论文)成绩评定表
目录
第1章开发背景 (1)
1.1引言 (1)
1.2系统说明 (1)
1.3系统特点 (2)
1.4系统功能简介 (2)
第2章数据库设计 (4)
2.1概念结构设计 (4)
2.2关系模式 (5)
2.3数据库的逻辑结构设计 (6)
第3章详细设计 (9)
3.1模块功能介绍 (9)
3.2模块设计概述 (9)
3.3主要功能的实现 (10)
第4章系统测试 (18)
4.1系统测试步骤和目的 (18)
4.2系统测试与运行 (18)
4.3系统的不足 (18)
4.4安全性 (19)
总结 (21)
致谢 (22)
参考文献 (23)
摘要
基于网络的普及和毕业后同学们联系与交流的需要,为了使我们达州三中学高2003级1班的同学间的友谊长存,我设计并开发了一个功能全面的网上同学录——“达州三中同学录管理系统”。“达州三中同学录管理系统”具有其它同学录不能企及的动态、交互且高效的 WEB 服务器应用程序。“达州三中同学录管理系统”将出色的为同学们服务,真正成为我们自己的网络“E-家园”。
班级同学录是基于WEB的信息处理系统,主要采用Microsoft ASP作为开发工具,后台数据库采用Access数据库设计,利用ADO数据库访问技术实现对数据库的各种管理操作,基本能实现有互联网的地方的用户就能登录和浏览,系统主要实现前台界面设计和后台数据库的设计。对数据进行远程传输及系统的远程控制, 使用方便、功能齐全、运行速度快,具有良好的可移植性和可扩展性。在设计过程中,首先建立了系统的应用原型,然后在此基础上进行需求迭代,详细设计时不断地修改和完善,经过测试阶段反复调用和测试和验证,最终形成达到设计要求的系统。
关键词: B/S, 数据库,ASP,同学录
第1章开发背景
1.1引言
联络昔日的同学是同学录系统最重要的职能之一,提及联络同学过去人们一下子会联想到,定期给老同学打电话问个好,邮寄问候的贺卡,邮寄相关的刊物,逢年过节登门拜访等方式。随着互联网的日益发展和不断普及,腾讯的即时聊天工具QQ和电子邮件也是成为同学们之间日常联络的重要方式。在信息爆炸的今天,同学工作的信息化显得尤为重要,通过现代信息手段,对同学信息分类管理,建立同学信息库,对同学资源优化分析,实现同学之间工作信息化,规范化,科学化。
目前的Web服务,仍以提供静态主页内容为主,无法根据用户的需求和实际情
况作出相应的变化。ASP(Active Server Pages)正好弥补了这些不足,具有动态、高效
和易于交互的特点,正在取代传统的Web技术。ASP所设计出的是动态主页,可接
收用户提交的信息并作出响应,其中的数据可随实际情况改变,无须人工对主页文
件进行更新。例如:当在浏览器上填好表单并提交HTTP请求时,可以要求在站点
服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件:该应
用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库
查询的结果集)以HTML的格式传送给浏览器。
1.2系统说明
班级同学录系统定位于为同学提供服务,用户往往比较分散,采用传统的C/S架构显然是不可能的,C/S面对的是组织内部的用户群的相互协作的应用,而B/S架构的最大的特点就是客户端是轻量级的,即常说的“瘦客户端”,采用的标准的方式,具有简单易学,维护成本低廉等优点。
作为B/S架构,最基础的就是web服务器。目前大量的网站采用的IIS方案,使用ASP技术来是实现动态网页。网站需要有频繁的存储数据,文件系统显然无法满足性能和管理的要求,所以采用数据库管理系统来管理数据。Access是Microsoft的一款桌面产品,对于一般的小型应用可以满足要求。Web服务器和数据库的接口采用Microsoft 的ADO(ActiveX Data Objects)组件。
任何用户无论在任何地方只要通过网络就可以浏览本网站,用户可以在系统中实现注册,登录,浏览用户信息以及班级信息,查看访问统计,留言,上传照片等功能;管理员可以通过用户管理,资料管理,信息管理等管理功能来对系统进行维护和更新。
网站的组成有以下几个子系统组成:
1. 主页,提供最新留言和同学最新上传的照片;
2. 用户注册系统,提供用户注册和管理机制;
3. 用户留言系统,提供用户留言及其管理;
4. 后台管理系统,通过管理员对系统进行管理;
5. 相册上传系统,对图片进行上传的及其管理。
1.3系统特点
每个系统开发完成后,都会有它自己的特点。就系统而言它也有自己比较鲜明的特点,比如操作简单,维护方便等,系统具体特点如下:
1. 系统基于Web技术,只要能连接Internet,就能访问系统;
2. 采用ASP加ACCESS开发,具有管理方便,代码简单易懂,体积小巧的特点;
3. 可以完全通过网页登录管理系统,维护方便;
4. 各种功能模块独立性强,可以根据需要任意组合;
5. 具有清新简洁方便的界面,操作简单;
6. 支持所有的Windows系列操作系统。
1.4系统功能简介
系统无论从用户模块还是系统管理模块来看,功能都是比较完善的。它有基本功能和高级功能两部分,基本功能主要是针对用户模块来说的,高级功能主要是针对系统管理模块来说的。下面就具体介绍一下系统的基本功能和高级功能。
1、基本功能:
(1)客人浏览网站,未成为网站会员前,可以浏览网站,但不能实现相关的功能;
(2)用户注册,填写并提交正确的个人信息,就能成为网站会员;
(3)用户登录,网站会员可以直接在网站进行登录;
(4)浏览网站,网站会员能完成一般用户级别的所有功能;
(5)资料修改,网站会员可以修改个人信息;
(6)班级留言:网站会员可以在本网站为班级留言;
(7)用户留言,网站会员可以在本网站进行私人留言。
2、高级功能
(1)管理员登录,系统管理员可以在本网站进行登录;
(2)管理员权限,系统创始人可以管理用户资料、管理班级、设置基本参数、还能够进行数据的更新和维护;
(3)系统管理员可以修改自己的密码和他人的个人信息;
(4)系统管理员可以找回其他人的密码。
第2章数据库设计
2.1 概念结构设计
为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,它反映了用户的现实环境,而且与软件系统中的实现方法无关。
通常,使用实体-联系图(entity-relationship diagram)来建立数据模型。可以把试题联系图简称ER,相应地可以用E-R图描绘的数据模型简称E-R模型。
2.1.1 数据流图的分析
数据流图(DFD)是一种图形化技术,它描述信息和数据从输入到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描述数据在软件中流动和被处理的逻辑过程。
图2.1 数据流图
数据流图描述了系统的分解,即系统由哪些部分组成,各部分之间有什么联系等.但是,它还不能完整地表达一个系统的全部逻辑特征,特别是有关数据的详细内容,这就要引入数据字典这个概念.
2.1.2 数据字典的分析
数据字典是关于数据信息的集合,也就是对数据流图中包含的所有元素的定义的集合.任何字典最主要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
下面举例说明班级成员这个数据项的数据字典,如下表2.1:
表 2.1班级成员数据字典
然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构造系统的规格说明,才能定义和划分出符合逻辑的、严格的功能模块图。
2.2关系模式
用户(ID、账号(唯一标识)、姓名、地址、权限、注册时间、性别、生日、邮箱、QQ号码)
班级(班级名称、创建人、创建日期、班级ID(唯一标识)、入学批次、班级宣言。)相册(照片ID、照片名称、照片描述、上传时间、相册ID(唯一标识)、点击次数。)照片留言(照片留言ID、用户ID、留言内容、留言时间、照片ID)
留言(留言ID、ID、用户ID、留言内容、留言时间)
2.3数据库的逻辑结构设计
系统数据库的功能主要是存储网站中所有数据以便进行操作。
系统的数据库文件名为#lb_class。它主要由classinfo,comment,link,member,
msg,notdownload,photo,share,word等表组成,下面将逐一介绍这些表的意义和功能:
● member
该表主要用于存储班级成员的帐号和密码,其中也包括管理员的帐号和密码,为了区别一般用户和管理员的区别,通过设置不同的权限来达到目的。这样也方便对数据库的管理,也便于修改个人及用户资料,管理该系统,该表结构如表2.2所示:
●
该表主要是用来存储班级留言信息,在系统注册的用户都能看到该信息,其中包括留言主题,内容,以及留言的时间和用户的昵称。2.3所示:
●msg
该表主要用于存储私人间发送留言的信息,用户在发送留言时,填写完收件人,消息的标题,内容后,提交所填信息,系统会自动生成一个编号和显示出发件人以及发送消息的时间,该表结构如表2.4所示:
●
该表主要用于存储用户在线信息,用户通过登录,就把此次登录的用户名,用户所在计算机的IP地址,登录时间,用户在系统中所在的位置,以及在操作某项的功能的时间和名称都提交到后台的这个数据表中,该表结构如表2.5所示:
●
该表主要用于存储上传图片的信息,这项功能主要是进入班级后才能实现的,用户在进入自己所在的班级后可以把自己的照片或者其他图片上传到班级相册里面,有关该图片的信息就提交到下面这个数据表中,该表结构如表2.6所示:
第3章详细设计
3.1模块功能介绍
在班级同学录系统的各个页面中,下面是各个网页主要实现的功能如表3.1:
表3.1各个网页主要实现的功能
3.2模块设计概述
系统原理
班级同学录系统的开发是基于现在网站建设应用最广泛的B/S(Brower/Server)即浏览器/服务器结构,原理图示如图3.1所示:
图3.1 系统原理图
班级同学录系统的主要体系结构包括:
●数据服务器
●WEB服务器
●后台管理平台
●客户端
就用户模块而言可以做如下划分,具体如图3.2所示:
图3.2 同学录系统的主要体系结构
3.3主要功能的实现
3.3.1用户模块主页面
用户只有在使用合法的用户名和密码才能进入本网站,假设同学录系统的虚拟目录别名为wwwroot,则打开IE浏览器,在地址栏中输入http://localhost/wwwroot/或者是http://127.0.0.1/wwwroot/,登陆进入网站的主页面,输入用户名和密码,按【提交】按钮,如果输入正确便可以进入系统,并且显示当前用户的昵称。
系统的主界面是一个表格页面index.asp,主要用来显示班级信息、最新留言和最新上传的照片,定义如下:
<%Dim i
For i=1 to conn.Execute("select word_per_page from classinfo")(0) : If Rs.Bof Or Rs.Eof then
Exit For%>
<%=Rs(2)%><%=membername(Rs(0))%>
<%Rs.movenext
Next
Call CloseRs(Rs)%>
在左边的导航条中有这样一些信息,班级留言,班级相册,班级共享,纸条传情,成员地址,个人资料,班级管理,留言下载,地址导出等。用户可以根据自己不同的需要点击不同的按钮,如果用户想要查看所有班级的情况,在班级首页的班级信息中就能查看到所有班级的基本情况。
3.3.2 新用户注册
用户想要使用网站留言,上传图片等功能,就必须成为本网站的会员,只需点击“加入”就可进入signin.asp页面进行注册。
用户在填写完信息后即可提交信息,如果发现填写的信息有误可以及时更改,用户最好记住自己所填写的信息。为了确保用户资料的正确性,一般要对用户所填信息进行必要的检查,信息检查可分为脚本检查和服务器检查。利用脚本程序对信息进行检查比较简单,比较适合检查比较简单的内容。系统采用一个脚本语言函数对用户提交的信息的要求及信息格式的正确性进行判断,其代码如下:
<%
response.write "
"
"
%>
3.3.3 用户登录
用户一旦成为本网站的会员后,即可在登录页面中登录,用户只需输入自己的用户名和密码即可实现登录。这里有ASP函数对用户名和密码进行判断,以此来保证用户的合法性。
实现登陆的核心ASP代码如下:
if userid="" then
Errmsg=Errmsg+"
"+"
founderr=true
elseif isValidstring(userid)<>"" then
Errmsg=Errmsg+"
"+"
founderr=true
end if
if founderr=true then
call top(1,1)
call error("Information",errmsg)
exit sub
end if
userid=checkstr(userid)
userpwd=checkstr(userpwd)
chkstat=chkuserlogin(userid,userpwd)
if chkstat<>"" then
call top(1,1)
call error("Information",chkstat)
exit sub
end if
sql="update [student] set point=point+"&pLogin&",visitcount=visitcount+1,lastlogin=now() where userid='"&userid&"'"
conn.execute(sql)
response.cookies("fengyue")("txlusr")=userid
response.cookies("fengyue")("txlpwd")=userpwd
response.cookies("fengyue")("logintime")=now()
if instr(request("comeurl"),"register.asp")>0 or instr(request("comeurl"),"login.asp")>0 or instr(request("comeurl"),"checklogin.asp")>0 or trim(request("comeurl"))="" or
instr(request("comeurl"),"getpasswd.asp")>0 then
defaulturl="index.asp"
rmsg="
else
defaulturl=request("comeurl")
只要成为改班级成员后就可以在班级里进行留言,上传图片,查看同学资料,查看访问统计,还可以退出系统。
如果用户想在班级里面发表自己的心声,进行留言的话就在班级首页这个位置点击“班级留言”去到“leaveword.asp”页面,就可以给班级里的同学留言。
班级留言采用VB Script 语言来检测是否输入内容是否合法,具体代码如下:
}function form1_onsubmit(){if(JHshRTrim(document.form1.content.value)=="")
{alert("留言内容不能为空!")
document.form1.content.focus()
return false
}}
3.3.4后台管理
后台管理页admin2.asp的主要功能是对前台信息的管理和维护,通过后台管理,管理员可以对系统进行全面的管理,为了保持界面的统一性,该页面主要采用的是一个框架。通过对右边代码的调用来达到界面统一的效果。
Admin.asp的框架具体定义如下:
<%If session("power")<2 Then jsAlert("此页面只对管理员开放"): jsGoback : Response.End
Call OpenConn()%>
<% sql="select manifesto,photobrief from classinfo"
Call CreateRs(Rs,sql,1)%>
<%Call CloseRs(Rs)
If session("power")>2 Then%>
<%End If%>
<% sql="select user,name,power from member"
Call CreateRs(Rs,sql,1)
Do While Not Rs.Eof%>
<%Dim i
For i=1 to 3 : If Rs.Eof Then Exit For%>
<%Rs.MoveNext
Next%>
<%Loop
Call CloseRs(Rs)%>
3.3.5相册上传
一个班级同学录网站,肯定是具有相册上传和管理功能的。该系统采用的是无组件上传的,图片上传成功后,将上传的图片通过ASP从数据库中取出来,并显示在IE浏览器上。
Showpic.asp的主要功能就是显示图片,如果成员有比较好的照片想和其他人共享,就可以通过同学录的班级相册里面的上传照片来实现。在次班级相册分为两部分,一部
分是上传图片,另外一部分是图片显示。
在此就这两部分作详细的说明:
上传图片是利用表单的文件域来选择图片,然后向数据库提交数据并把图片复制到文件夹upload中。在实现功能之前,还是先看一下将要使用的对象方法。我们用来获取上一个页面传递过来的数据一般是使用Request对象。同样的,我们也可以使用Request对象来获取上传上来的文件数据,使用的方法是Request.BinaryRead()。而我们要从数据库中读出来图片的数据显示到网页上面要用到的方法是:
Request.BinaryWrite()。在我们得到了图片的数据,要保存到数据库中的时候,不可以直接使用Insert语句对数据库进行操作,而是要使用ADO的AppendChunk方法,同样的,读出数据库中的图片数据,要使用GetChunk方法。
Request.BinaryRead语法:
variant = Request.BinaryRead(count)
参数:variant :返回值保存着从客户端读取到数据。
Count:指明要从客户端读取的数据量大小,这个值小于或者等于使用方法Request.TotalBytes得到的数据量。
Request.BinaryWrite语法:
Request.BinaryWrite data
参数:data:要写入到客户端浏览器中的数据包。
Request.TotalBytes语法:
variant = Request.TotalBytes
参数:variant:返回从客户端读取到数据量的字节数。
现在开始正式编写我们的纯ASP代码上传部分了,首先,我们有一个提供给用户的上传界面,可以让用户选择要上传的图片。其核心代码如下: