
毕业课程设计
题目:高校学生管理综合系统
院 (系): 计算机系
专 业: 信息与管理
学 生: 罗展
学 号: **********
**** **
2013年3月
摘 要
近年来,由于我校扩招,办学规模不断扩大,使学生数量急剧增加,教学资源日益紧张,学生管理工作成为高校教学管理的核心。如何充分利用紧缺的教学资源,做到信息的规范管理、科学统计和快速查询,已成为学生管理乃至整个学校管理的焦点。
本论文主要研究在Internet环境之上的学生信息管理系统的功能架构,并设计了一个基于web技术的学生信息管理系统,采用B/S模式作为主要开发模式,使用的web技术包括三层结构的实现技术、开发平台技术等。基于web的学生信息管理系统的功能包括基础数据管理、学籍管理、选课管理、成绩管理和系统管理等功能,系统的设计包括数据库表的设计和各功能模块的设计。
本论文研究的主要内容:根据软件工程的设计思想,对学生信息管理系统进行了详细的需求分析,阐述系统的功能需求,利用先进的技术和模块化的软件结构,给出本系统各模块的数据流图,设计了系统的逻辑模型。以此为基础,采用结构化设计方法对系统进行设计,在系统功能结构图的基础上,对各功能模块和数据库进行详细的设计,为系统的实现打下了坚实的基础。
关键词: B/S结构;学生管理;管理信息系统;ASP
Abstract
Recently, with the expention of the higher learning institution enrolling scale,with the expansion of the school running scale, with the sharp increasing number of the students ,which togeher causes the troublesome of the teaching resources ,the educational administration has become the very core of the teaching adminisration of higher learning institutions.Information needs to be well-regulatedly managed, scientifically counted, and rapidly inquried under the limited teaching resources, which is vital to the educational administration, even to the whole school administration.
This dissertation mainly focuses on the functional architecture of the educational administration in the Internet environment. A web-based educational administration system is designed according to the B/S mode, where some web development technologies are used including three-leveled hierarchies, development platform and etc. There are several functions of this web-based higher learning instration educational administration system, including raw data management, school rolls management, selecting lessons,examinations management, system management and so on. Designings of the system consists of the designings of the database tables and each functional module.
In the dissertation, according to the theory of the modularization in software engineering, detailed demands analysis of the educational administration system is introduced, function requirements of the system is established. Further, the system is designed according to the structural designing method. Based on the functions architecture outline of the system, function modules and database is detailedly designed, which is vital to the implement of the system.
Key words: B/S pattern; Student management; Managemen Information System; ASP
1绪 论
信息化是当今经济和社会发展不可逆转的大趋势,它在一定程度上已成为衡量一个国家和地区国际竞争力、现代化程度和经济成长能力的重要尺度。这证明,世界已进入以信息产业为主导的新经济时代。从宏观上看,基于信息技术的知识的积累和运用,将提高人类所支配的资源的质量,为经济发展带来新的动力;从微观上看,信息技术的广泛应用减少了时间和空间给社会发展带来的,将极大地提高劳动生产率,成为经济发展的“加速器”。由当前信息技术令人震惊的发展速度,我们可以预见,信息化将成为未来相当一段时期内世界发展的主旋律,信息产业将始终具有对社会发展的重要影响力。
1.1研究背景
信息技术在管理活动中已得到了广泛的应用,管理信息系统的实施在技术上已逐步成熟,要高效率地把学校学生工作有机地组织起来,就必须加强企业管理,即加强对学校内部的各种资源(人、财、物等)的有效管理,建立与自身特点相适应的管理信息系统,打造完整的信息化平台。
1.1.1管理信息系统定义
管理信息系统(MIS)是指在管理工作中以数据库为核心的计算机应用,是信息技术的重要内容。管理信息系统集成了计算机网络技术、通信技术、信息处理技术,对信息进行收集、传递、存储及加工处理,是用于辅助决策、进行事务管理的一种人机交互的智能化计算机系统。通过管理信息系统,可以做到信息的规范管理、科学统计和快速的查询,提高管理工作的效率。
1.1.2学生管理信息系统的发展
高质量的教育需要高效的管理,随着教学改革和计算机技术的发展,相应的学生管理系统也在不断的变化。
最早的是基于单机的学生管理系统,该类系统一般运行在PC机上,采用Dbase、FoxPro、visualFoxPro等小型的DBMS,而学生管理系统也主要是对学生的成绩进行管理,用来打印学生的成绩。因此该类系统设计比较简单,而且系统相当封闭,仅仅供教务人员使用。目前仍有少数高校采用这种管理模式。
随着网络硬件的发展,在1998年左右,基于校园网的学生管理系统成为开发的重点,在此阶段,C/S开发模型占主导地位,一般都采用集中的数据库管理系统,各个院系的教务秘书和教务处的工作人员通过校园网络连接数据库服务器上存取数据,在这种
管理模式下,对于教务秘书和教务处而言,数据得到了共享,提高了教学管理的效率和水平。
高校规模的不断扩大,管理学生的层次不断增多,使得学生管理的逻辑也日趋复杂,传统的C/S系统逐渐地暴露出其客户端和服务器端负担过重的现象,三层结构的开发模式逐步成为主导。
随着Internet/Intranet的应用快速兴起和发展,特别是高校教学改革的深入,这种基于传统的学生管理系统逐步跟不上管理的要求。因为这类系统的数据非常,只能通过其客户端访问,这样大量的有价值的信息无法提供给领导做决策和提供给学生作为学生学习的指导。同时教学管理的模式从学年制向学年学分制过渡,一般高校都提供一定数量的全校性公共选修课程供学生选择,选课成为学生管理中非常迫切的要求,而传统的基于C/S的模式很难满足大量的学生同时进行选课,因此网上选课成为必然的趋势。所以在这种情况下,以教务门户网站开发为核心,各个高校基本上都建成了各自的教务主页,提供选课、成绩查询等功能。
1.2国内外研究情况
高校学生管理系统的发展大致经历了两个阶段:
a.以单机和的业务系统为主体的学生管理信息系统发展阶段。时间大致为20世纪80年代到90年代初期。这一阶段的IT发展特征是计算机硬件的价格开始降低,为其在国内普及应用提供了条件。正是在这一时期,计算机走入了教育行业。但这时的学生管理信息系统几乎都处于功能间的相互状态,大量的数据是以独享方式存在的,没有实现信息的整合。
b.以局域网和数据库为基础的网络管理信息系统发展阶段。时间大致为90年代中后期至今。这一阶段的IT发展特征是网络的迅速崛起及网络数据库的普遍应用。这时的学生管理系统的建设以先进的教育思想和基于web的教务计算理念为指导,以计算机及网络技术、现代教育技术及信息技术为支撑,以开放式、交互式、共享式为原则,建设一个信息安全可靠、传输快速、分散处理、集中优化、资源共享的学生管理环境。学生管理系统的设计开始注重数据共享,即开始考虑不同部门之间的数据交换问题。这使学校整体学生管理的效率得到了很大程度上的提高,重复工作也逐渐得以避免。目前,教育部正着手本行业规范和标准的制定工作,制定学生管理系统的元数据体系,采用XML(可扩展标记语言,Extensible Markup Language)等先进的标注语言描述数据。
目前,国外许多高校对学生管理利用的方式于国内大致相同,但是在自体管理软件的使用上却大都是根据自身教学特点具有的子系统,从而实现了本校学生管理的自动化管理模式。
通过和国外的学生管理系统的比较可以得出,由于学生管理的复杂性,多层次性等特点,实现高等教育的发展,需要选择特色、设计特色、创造特色,从而实现超常规发展。高等教育学校特色发展非常重要,科学定位决定了高校的发展目标、发展战略和发展格局,是高校制定规划、配置资源乃至发挥优势和办出特色的前提。高等教育的结构
是复杂的,科学定位要从这一复杂结构的不同层面选择自己的坐标,所以要设计出一套完全适合各个高校的学生管理系统是十分困难的,但是针对高校教务的管理工作主体流程的需要开发设计是完全可行的。
建立一个好的管理信息系统,必须要有一个好的管理基础。所谓好的管理基础,指的是合理的管理、完善的制度、科学的管理方法和准确的原始数据。与企业管理相比,我国的学校管理在这方面占有较大的优势。
1.3课题研究的目的和意义
随着高校规模的扩大和校园网络的建成,高校各个部门都采用了计算机作为辅助的管理手段,开发了各类的管理系统作为支持。目前校园管理信息系统的开发和应用主要集中在财务管理系统、人事管理系统、设备管理系统、科研管理系统以及学生管理系统等等。这些系统在为学校提供信息服务的同时,也提高了管理人员的水平和管理理念。
但是高校管理信息系统的建设是一个庞大的系统工程,由于在建设初期没有IT全局战略和方向,缺乏一个标准的IT环境,所以建立起来的各个系统是分散的。各个部门各自为政,形成了一个个信息孤岛。比如人事管理系统负责管理有关教师的信息,但是在财务、设备、学生管理系统中同样也都需要教师的信息。在现实世界中,各个系统都是相互交叉、相互调用的,但是在计算机软件设计实现中,由于编程语言的,使得各个系统无法相互直接进行调用,无法共享数据,只能通过传统的手工方式进行数据交换。这样不但效率低下,而且各系统间的数据无法及时更新。因此高校管理信息系统的建设的趋势是对现有的和将要开发的系统进行集成,使得各个系统能够共享数据,无缝衔接。信息只有集中统一,才能成为资源,才能为学校各部门所共享,达到其最大的效益。
高校是以教学、科研为主,学生管理系统负责管理全校所有学生的学习情况、教师的教学情况和对教学资源使用进行配置,所以在整个校园信息化建设中,学生管理系统占着十分重要的地位。通过学生管理系统,不仅仅对高校的整体教学资源进行了合理高效的管理,而且对学生管理的模式、管理的水平都有极大的促进作用。
将信息系统设计与开发的专业知识和学院的实际需要相结合,调研和开发一个符合本学院的个性需求,对本学院的学生、教师、党团建设以及学生会信息进行规范管理、科学统计和快速查询的综合信息管理平台,具有很强的实际意义。
a.实现对本学院教学信息和教学资源的科学规范化管理,提升学院学生管理的水平。
b.简化学生管理的活动、梳理相关的业务流程,为学院学生管理工作构建一个集中高效的平台。
c.降低教务人员的工作压力,让辅导员将更多的精力转移到提升学生综合素质和提升管理质量的核心工作中来。
d.提升学院的社会形象,进一步推进学校的信息化建设。
1.4课题研究的主要内容
本次毕业设计将通过对经管学院的学生管理活动及业务流程研究和教师辅导员的需求调研,提出一套开发学院学生管理平台的思想和方法,并且结合数据库、软件工程,信息系统分析与设计等方面的知识,以及其它相关管理常识,针对学院的学生管理系统建立相应的数据模型,拟定开发环境、开发方案、开发思路。
1..1系统主要组成模块
a.学生管理模块。包括学生的基本信息管理、学生的成绩管理、学生选课功能
b.学院新闻管理模块。包括新闻和日常工作展示、统计和通报等、重要活动信息
c.系统管理员模块。系统管理员的添加、修改、删除,信息的操作
1..2系统开发思路
本文框架结构如图1.1所示:
图1.1 论文框架结构图
2 技术理论与原理
本文采用B/S结构—浏览器/Web服务(Browser/Web Server)三层体系结构,是因为B/S模式是Intranet上一个典型的分布式计算机模式。
随着管理信息系统的迅速发展和广泛应用,远程数据交互系统已经成为人们工作和生活的重要组成部分。过去,多数管理信息系统都采用二层客户机/服务(Client/Server)模式(简称C/S模式),并用该模式实现与内联网(intranet)的数据交互。基于这种模式下的系统,其每个客户机端都必须安装必要的操作系统、应用程序及相关的支撑驱动程序,才能对服务器进行访问,因此不能实现信息的web发布和远程数据交互。也不便于数据信息的充分交流。目前,采用客户机/Web服务器(Browser/Web Server)体系结构(以下称B/S结构)方案,可以较好地解决这一问题。
B/S结构中最典型的是三层结构,三层结构中浏览器主要是便于用户浏览页面,Web服务器进行系统和应用的逻辑处理,数据库服务器提供一定结构的大量数据的存储和维护。下图2.1为三种不同的(B/S)计算模式:
a.两层结构 b.三层结构 c.四层结构
图2.1 浏览器/Web服务器(B/S)计算模式
2.1B/S结构概述
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的客户端软件。只要有一台能上网的电脑就能使用,客户端零维护。它具有以下优点:
a.B/S模式简化了客户端,使用方便、界面友好,可节省应用系统开发的成本,缩短开发周期。它无需像C/S模式那样在不同的客户端安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。
b.B/S模式简化了系统的开发,整个系统的开放性和可移植性好。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序,只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用Web服务器上不同处理程序,从而完成对数据的查询或修改。
c.相对于C/S而言,B/S的维护具有更大的灵活性,B/S三层体系结构可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。B/S模式使用户的操作变得更简单,采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。
d.信息资源共享程度高,具有良好的扩展性。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用。
2.2ASP技术
2.2.1 ASP概述
活动服务器网页(Active Server Pages),由微软公司开发的服务器端运行的脚本平台,它被Windows下Internet Information Services (IIS)的程式所管理。ASP,也就是Active Server Page(活动服务器网页),是目前市场上主流的分布式应用程序开发平台。ASP是建立交互式站点的一个快速、强大而稳定的WEB应用程序服务器和程序语言,而且是免费的。利用ASP,你可以用最快的速度将服务器、浏览器和数据库技术相集成,建立强大的、高度可扩展的WEB应用程序,而且,它可嵌入到 HTML中。使用ASP,可以将HTML页、脚本命令以及COM组件组合在一起,创建交互式网页或者功能强大的基于Web的应用程序,并且开发和修改文档也非常简单。
五个组件包括:
a.Application:在一个 ASP-based application 让不同使用者共享资讯。
b.Request:从使用者处理取得资讯
c.Response:将资讯送给使用者
d.Server:提供一些 Web Server 的工具
e.Session:储存在一个 session 内使用者的资讯
要运行一个ASP程序,必须先安装Web服务器,设置好虚拟目录,在浏览器的地址栏中使用虚拟目录,否则ASP程序就不能正常运行。一个ASP文件相当于一个可执行文件,因此必须放在Web服务器上有执行权限的目录下。当浏览器向Web Server请求调用ASP文件时,就启动了ASP。Web服务器开始调用ASP,按顺序读取被请求的.asp文件内容,执行每一个命令,然后动态生成一个HTML页面并送到浏览器。通过ASP内置的对象、服务器组件可以完成非常复杂的任务,而且用户还可以开发或利用其它服务器组件完成专门的任务。
2.2.2ASP工作原理
与常见的在客户端实现动态主页的技术如Java applet、ActiveX Control、VB Script、JavaScript等不同,ASP中的脚本程序是由服务器来解释执行的,执行结果以HTML主页形式返回浏览器,而客户端技术的脚本程序则是由浏览器来解释执行的。ASP的工作原理如图2.2所示:
图2.2 ASP工作原理图
利用ASP,可以把HTML文本、脚本命令及ActiveX组件混合在一起构成ASP页,实现对Web数据库的访问。当用户使用浏览器访问ASP网页时,Web服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言,通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页并返回用户端。
2.3数据库技术
在动态网页的设计中,常用数据库向Web服务器提供数据,采用一种三层客户端/服务器的体系结构,即客户端浏览器/Web服务器/数据库服务器(Browser/Web Server/Database Server,简称B/W/D)结构。它是一种随着Internet技术的兴起,由传统的二层Client/Server(简称C/S)结构变化或改进而来的三层Client/Server结构在Web上应用的特例 。B/W/D三层体系结构如图2.3所示。
图2.3 B/W/D三层体系结构
用户通过URL向Web服务器请求页面,Web服务器运行脚本程序并通过SQL查询调用数据库服务器中存储的数据,数据库服务器执行查询后将查询结果返回到Web服务器,脚本程序产生特定格式的HTML文件,客户端接收到HTML文件后由浏览器将结果显示出来。
本系统设计采用的数据库服务器是Microsoft Access 2003。
2.3.1Access简介
Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序。这些应用程序都利用ASP技术在Internet Information Services运行。比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server。
a.表(Table)——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。
b.查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
c.窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。
d.报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。
e.宏(Macro)——宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。
f.模块(Module)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。
2.3.2数据库连接技术
开发ASP应用程序一个非常重要的环节,就是连接数据库、查询数据库和操作数据库。为了实现这些操作,需要ASP中与数据库打交道的组件ADO(Active Data Objects)的参与和应用。ADO技术是微软公司推出的最新的数据库连接技术,利用它可以比较容易地实现对数据库(SQL Server,Access,Oracle,Sybase等)的查询,存取操作,它代表了数据访问方法的未来,是统一数据访问的一个基本组件。
ADO(ActiveX Data Objects)是一组优化的访问数据库专用对象集,为ASP提供了完整的站点数据库访问解决方案。它可作用于服务器端,以提供含有数据库信息的主页内容。通过执行SQL命令,让用户在浏览器画面中输入、更新和删除站点服务器的数据库信息。
ADO使用内置的RecordSets对象作为数据的主要接口。ADO可使用 VBScript、JavaScript语言来控制对数据库的访问,以及查询结果的输出显示。
ADO对象是一个集合,在其中包含了Connection对象、Recordset对象和Command对象,还有Errors、Properties、Fields、Parameters四个集合,这四个集合中分别包含Error、Property、Field、Parameter四种对象。
在ASP中通过ADO访问数据库,一般要通过以下四个步骤:
a.创建一个到数据库的Connection。
b.查询一个数据集合,即执行SQL,产生一个Recordset。
c.对数据集合进行需要的操作。
d.关闭Connection。
本系统在建立数据库连接时采用的方法是先建立一个名为conn.asp的页面,在该页面中将数据库连接的代码写入,当用户需要增加、修改、删除和调用数据库中的数据,就直接用来调用该页中数据库连接的代码就可以了。数据库连接的关键代码是:
dim conn /*定义新连接*/
dim connstr /*连接字符串*/
connstr="DBQ="+server.mappath("../data/xin.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" /*连接字符串赋值,包含数据库路径、数据库驱动类型*/
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr /*打开新建立的连接*/
3 学院学生信息管理系统需求分析
3.1开发背景
高等院校学生管理工作在高校全部工作中占有重要地位,管理质量和管理水平的高低,不仅直接影响学校素质教育的建设,也直接影响人才培养的质量。因此, 采用相应的应用软件对提高管理水平有着重要的现实意义。
电子科技大学成都学院现有的校内网面向的是全校的师生和组织机构,由于服务人群众多、网速有限,有时难以访问;而且在满足经管学院的特殊需求时,难以实现兼顾。
随着学院学生数量增加,学生的各种信息也成倍增长,给学院的日常管理造成了一定的压力。继续采用以前的人工方法,不仅增加教务人员的工作量,工作效率下降,而且导致管理成本提高,管理质量下降。
学院急切需要学院学生管理系统来规范学生的档案信息,提高学生信息管理的效率,有必要开发学生信息管理系统来提高学生管理工作的效率。
3.2可行性分析
系统的效益可以从经济效益和社会效益两方面考虑。对于学校管理系统应着重分析其社会效益。重点考虑设计的系统在投入运行后对信息的及时提供程度,管理人员工作效率提高程度,劳动强度降低程度,用户查询和使用信息方便程度,辅助管理人员决策程度等进行分析。
本文研究设计的高校学生管理系统是以电子科技大学成都学院作为分析平台,充分考虑到学院现有的办公条件和设施(包括网络、计算机、打印机等)和学院领导对系统开发各个方面的支持及全力配合,吸取相关的教育管理软件的优势,选择有普遍性的开发工具,很大程度上可降低系统开发的成本,在预算内完成整个系统的开发。
技术可行性研究指客户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性。技术可行性研究是可行性研究的关键,主要研究新系统所需关键技术开发人员是否已具备。
现今的电子科技大学成都学院其中有熟悉信息管理及网络技术的教授,熟悉数据库开发与网络开发的老师和学生,有熟悉学生管理业务的学院管理人员在整个系统开发过程支持配合,己具备开发本软件的条件。
目前,电子科大成都学院的校园网规模已覆盖全院各教学楼、办公楼,为网上数据交换提供了现成的信息通道。为综合学院学生管理系统的实现打下了良好的基础。
运行可行性分析指新系统运行后给现行系统带来的影响和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。
本系统完成后可以提高现有工作人员的工作效率。网络数据库的设置,使信息能作到一次录入,处处共享,减轻管理工作人员工作负担,因此在系统的调查和分析阶段也能得到他们的积极支持。另外,学院教务处的工作人员对计算机比较熟悉,在系统开发完成之后只需对办公人员进行简单培训就能够很快地掌握和熟练应用,部分办公人员不仅熟悉业务,并且懂得软件开发,可以参与简单的日常系统维护工作。
3.3系统的功能需求
本设计的目标是使该系统具有对学生个人信息、课程信息、所选课程信息进行管理及维护的功能。学生可以通过此系统进行个人信息、考试成绩查询以及完成选课功能。本系统的总体任务是实现学生信息管理的系统化、规范化和自动化,其功能需求包括管理员对功能的需求和学生对功能的需求两部分。
3.3.1管理员对功能的需求
管理员权限最大,可以对学生、班级、课程情况进行统一的管理,管理员对功能的需求如下:
a.有关学生信息的浏览,包括学生的姓名、性别、民族、出生日期、入学时间、所在班级、籍贯及备注信息。
b.学生信息的添加(本系统由管理员对学生的基本信息进行添加),修改,删除。
c.班级管理信息的浏览,包括班级设置、年级信息等,班级管理信息的添加,修改,删除。
d.教师信息的添加(本系统管理员对教师的基本信息进行添加),教师权限的修改(管理员可将教师的权限设为管理员)。
e.学校基本课程的浏览,包括课程名、课程类型、学时、学分和课程具体描述;学校基本课程的添加,修改,删除。
f.学生成绩信息的浏览与统计,可按成绩具体范围(如系、班级等)、课号、年度、 统计内容等方面对成绩进行统计;学生成绩信息的添加,修改,删除。
g.学生选课信息的管理,包括修改与删除及学生选课人数的统计。
h.新闻中心的管理。新闻的添加修改,模板的编辑修改。
3.3.2.学生对功能的需求
学生只是利用此系统进行与自己有关的信息查询、输入等,不必多关心其他内容,学生对功能的需求如下:
a.浏览、修改个人基本信息,具体内容包括姓名、性别、学号、民族、出生日期、籍贯、所在班级、备注等。
b.学生登录系统后,浏览个人成绩信息。
c.浏览课程信息,具体内容包括课程名、课程类型、学时、学分和课程具体描述。
d.学生利用此系统选修课程,在选课过程中,学生可查询待选课程的基本信息及教师情况,浏览个人的选课情况及个人成绩信息。
3.4系统的性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,学院学生信息管理系统应该满足以下的性能需求:
a.数据处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。本系统在设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。
由于本系统的各种数据对于整个系统的功能和性能举足轻重,因此其准确性在很大程度上决定了系统功能和性能。在系统开发过程中,必须采用一定的数据验证方法确保数据的准确性。
b.系统的开放性和系统的可扩充性
本系统在开发过程中,应该充分考虑以后的可扩充性。为以后系统的对接做好接口。
c.系统的易用性和易维护性
本系统是直接面向业务操作员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
d.系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合国际软件行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等。
4学院学生信息管理系统总体设计
4.1总体设计目标
系统规划系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。面对庞大的信息量,要做到对学生的各类信息有准确、快速了解,有科学的统计和快速的查询,在这样的形式下需要有管理系统来提高学生管理工作的效率,进而减少管理方面的工作量,做到信息的规范管理。
4.2系统业务流程分析
业务流程分析是系统分析中的基础环节。系统功能分析是在系统开发的总体任务基础上完成的。依据西安工业大学学生管理工作的现况,并采纳有关专业管理人事的意见和建议,对系统需要完成的功能设计有:
a.学生管理模块:包括学生的基本信息管理、学生的成绩统计,选课管理
b.学院新闻管理模块:包括日常工作展示、统计和通报等、重要活动信息
c.系统管理员模块:系统管理员的添加、修改、删除,信息的操作
如图4.1所示:
图4.1系统业务流程图
4.3系统逻辑模型
为了实现整个系统,仅仅用文字来描述信息的流动和存储还远远不够,还要进一步调查分析,舍去物质流,抽象出信息流,绘制出数据流程图,并对各种数据的属性和各项处理功能进行详细分析,本系统主要以功能结构图、E-R图为和数据流图为主要描述工具来勾画系统的概貌。
4.3.1系统功能结构图
系统功能结构反应了一个系统的整体功能结构以及功能结构或模块间的关系.
本系统根据用户需求和功能分析设计功能模块本系统的功能模块,同时根据不同的用户类型,设置不同的功能权限,学生可以查询成绩、选修课程、修改个人信息,教师录入成绩,管理员管理用户和新闻信息。如图4.2所示:
图4.2系统功能结构图
4.3.2系统数据流图
数据流图(DFD,data flow diagram),是采用图形方式来表达系统的逻辑功能和数据在系统内部的逻辑流向和逻辑变换过程的表达工具,是结构化系统分析方法的主要表达工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。本系统的顶层数据流图,如下图4.3所示:
图4.3 顶层数据流图
本系统的第二层数据流图,如下图4.3所示:
图 4.4 第二层数据流图
4.3.3E-R图
E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型,构成E-R图的基本要素是实体型、属性和联系。
a.系统的E-R图。三种操作员:教师授权成为管理员,管理员管理学生和教师用户,教师可以管理学生成绩,学生可以查看个人成绩和选课。如图4.5所示:
图4.5 系统E-R图
b.各实体的属性值。
(1)学生(用户ID,学号,用户名,真实姓名,性别,密码,出生日期,专业,班级,家庭电话,联系方式,身份证号,电子邮箱,家庭住址,邮政编码,码,系别)
(2)教师的基本信息(教师编号,用户名,真实姓名,性别,密码,出生日期,职称,职务,所在专业,所在教研室,家庭电话,联系方式,电子邮箱,邮政编码,备注,权限)
(3)管理员信息(管理员ID,管理员用户名,密码,管理员权限类型)
(4)课程信息表(学生学号,课程名称,分数,学分,是否已选修)
(5)新闻信息表(标题,内容,类型标题,类型编号,网页名称,内容,作者)
(6)新闻类型信息表(类型标题,类型编号,名称名称,创建时间)
5学院学生信息管理系统详细设计
详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确;算法描述要简明易懂。
传统软件开发方法的详细设计主要是用结构化程序设计法。详细设计的表示工具有图形工具和语言工具。图形工具有程序流程图、PAD(Problem Analysis Diagram)图、NS)图。语言工具有伪码和 PDL(Program Design Language)等。
5.1各功能模块数据流图
5.1.1登录程序流程图
登录界面包括学生登录和教师登录界面。所有用户登录都要进行身份的验证,通过身份的标志确定不同的用户权限和功能界面。如图5.1所示:
图5.1登录程序流图
5.1.2用户注册程序流程图
注册界面包括学生注册和教师注册,注册时都要输入学号和教师编号,以此来确认学生和教师身份的合法性。如图5.2所示:
图5.2注册程序流程图
5.1.3成绩管理程序流程图
成绩管理为教师和成绩录入员具有的权限。首先要确认用户身份是否可以执行管理权限,进入成绩录入界面后,输入学号、学分、成绩即可录入成绩,录入成绩后进入成绩核对界面,输入查询条件,在查询界面修改成绩。如图5.3所示:
图5.3成绩管理程序流程图
5.1.4用户管理程序流程图.
管理员可以查看用户信息,并对用户进行添加删除。如图5.4所示:
图5.4用户管理模块流程图
5.2开发环境和运行环境
5.2.1开发环境
a.操作系统:Windows XP
b.浏览器:Internet Explorer 6.00
c.Web服务器:Microsoft IIS(即 Microsoft Internet Information Server)5.0,可作为管理系统的 Server端的开发和测试平台。
d.数据库服务器:Microsoft Access 2003,它提供了对高效的存储过程和灵活的用户自定义函数的支持,并在核心层实现了数据完整性控制。
e.开发工具:Micromedia Dreamweaver MX 2004中文版,方便快捷的创建高质量的可视网页,自动生成全部的HTML代码。
5.2.2运行环境
a.服务器运行环境
B/S 结构系统的运行规模、稳定性等特性主要取决于服务器端的软硬件配置和网络系统的配置,如果采用三层 B/S 结构,则需要 Web 服务器和数据库服务器联合作为服务器。
b.客户端运行环境
由于B/S 结构系统的客户端是“瘦客户端”,即客户端计算机只需安装操作系统和 IE浏览器并接入网络,无须作任何特殊处理既可实现系统访问。
5.3数据库设计
a.管理员信息表(admin):管理员共有三种不同的类型:
(1)super类型:超级管理员权限。具有成绩管理、课程管理、学号管理、用户管理和新闻中心管理的管理权限。
(2)teacher类型:教师管理员权限。具有学生成绩管理。
(3)input类型:录入员。具有学生成绩录入权限和新闻中心管理的管理权限。
下表5.1为管理员表的结构设计表,
表5.1 管理员表结构
| 字段名称 | 数据类型 | 字段长度 | 是否主键 | 备 注 |
| id | varchar2 | 10 | 主键(自增) | 管理员ID |
| name | varchar2 | 20 | 否 | 管理员用户名 |
| pwd | varchar2 | 20 | 否 | 密码 |
| oskey | char | 10 | 否 | 管理员权限类型 |
图5.6管理员表
b.学生表信息(user):下表5.2为学生表的结构设计表,
表5.2 学生表结构
| 字段名称 | 数据类型 | 字段长度 | 是否主键 | 备 注 |
| id | number | 8 | 主键(自增) | 用户ID |
| userid | varchar2 | 10 | 否 | 学号 |
| name | varchar2 | 50 | 否 | 用户名 |
| realname | varchar2 | 50 | 否 | 真实姓名 |
| sex | number | 2 | 否 | 性别 |
| pwd | varchar2 | 10 | 否 | 密码 |
| birthday | varchar2 | 20 | 否 | 出生日期 |
| zhuanye | varchar2 | 20 | 否 | 专业 |
| class | varchar2 | 20 | 否 | 班级 |
| hometel | varchar2 | 20 | 否 | 家庭电话 |
| lianxitel | varchar2 | 20 | 否 | 联系方式 |
| idcard | varchar2 | 21 | 否 | 身份证号 |
| varchar2 | 10 | 否 | 电子邮箱 | |
| address | varchar2 | 10 | 否 | 家庭住址 |
| youbian | varchar2 | 10 | 否 | 邮政编码 |
| oskey | varchar2 | 2 | 否 | 码 |
| xibie | varchar2 | 10 | 否 | 系别 |
表5.3 教师表结构
| 字段名称 | 数据类型 | 字段长度 | 是否主键 | 备注 |
| id | number | 8 | 主键(自增) | |
| userid | varchar2 | 10 | 否 | 教师编号 |
| name | varchar2 | 50 | 否 | 用户名 |
| realname | varchar2 | 50 | 否 | 真实姓名 |
| sex | number | 2 | 否 | 性别 |
| pwd | varchar2 | 10 | 否 | 密码 |
| birthday | varchar2 | 20 | 否 | 出生日期 |
| zhicheng | varchar2 | 10 | 否 | 职称 |
| zhiwu | varchar2 | 20 | 否 | 职务 |
| class | varchar2 | 20 | 否 | 所在专业 |
| jiaoyanshi | varchar2 | 20 | 否 | 所在教研室 |
| hometel | varchar2 | 20 | 否 | 家庭电话 |
| lianxitel | varchar2 | 20 | 否 | 联系方式 |
| varchar2 | 10 | 否 | 电子邮箱 | |
| youbian | varchar2 | 10 | 否 | 邮政编码 |
| beizhu | varchar2 | 50 | 否 | 备注 |
| oskey | varchar2 | 2 | 否 | 权限 |
表5.4 成绩表结构
| 字段名称 | 数据类型 | 字段大小 | 是否主键 | 备注 |
| id | number | 8 | 主键(自增) | 成绩ID |
| sthdentno | number | 8 | 否 | 学生学号 |
| coursename | char | 20 | 否 | 课程名称 |
| mark | number | 8 | 否 | 分数 |
| credit | number | 8 | 否 | 学分 |
| noended | number | 2 | 否 | 是否已选修 |
图5.9成绩表
b.课程信息表(course):下表5.5为课程表的结构设计表,
表5.5 课程信息表结构
| 字段名称 | 数据类型 | 字段大小 | 是否主键 | 备注 |
| id | number | 11 | 主键(自增) | |
| coursename | char | 20 | 否 | 课程名称 |
| zhuanye | char | 20 | 否 | 专业名称 |
| xibie | char | 10 | 否 | 系别代码 |
图5.10课程信息表
c.新闻信息表(article):下表5.6为新闻信息表的结构设计表,
表5.6 新闻信息表结构
| 字段名称 | 数据类型 | 字段大小 | 是否主键 | 备注 |
| newsid | char | 1 | 是 | 新闻编号 |
| title | varchar2 | 10 | 否 | 新闻标题 |
| content | number | (6,2) | 否 | 新闻内容 |
| typeid | number | 10 | 否 | 类型编号 |
| typename | char | 20 | 否 | 类型编号 |
| zznews | char | 20 | 否 | 新闻作者 |
| Nfrom | char | 20 | 否 | 作者单位 |
表5.7新闻类型表结构
| 字段名称 | 数据类型 | 字段大小 | 是否主键 | 备注 |
| typeid | char | 5 | 是 | 编号 |
| type | varchar2 | 10 | 否 | 类型名称 |
| typename | varchar2 | 10 | 否 | 类 |
图5.12 新闻类型表
5.4主要功能模块设计与实现
a.首页设计
用户成功登陆本系统后,首先进入到系统的主界面中。实现用户登录及系统介绍的功能。登录窗口分为教师登录和学生登录两个窗口,新用户必须先注册方能进入功能界面,所有进入主页的用户都可以查看学院新闻和教师信息。如图 5.13所示:
图 5.13系统首页
b.学生权限页面设计
学生注册后登录权限页面。在导航条中,单击各个功能菜单,进入相应的功能界面:“成绩查询”可以查询个人成绩和选课;“个人信息”可以更改或查询自己注册时输入的信息;“教师信息”可以查看老师的详细信息。“新闻中心”提供学院新闻的浏览。
c.教师权限页面设计
教师登录后进入该界面。主要功能:“成绩核对”可以查询学生成绩(按专业,班级,姓名)并录入学生成绩或修改审核学生成绩;“学生管理”可以实现学生信息的查询;“教师信息”用来查询教师的相关信息;“管理首页”是管理员的登录页面。
d.管理员权限页面设计
管理员登陆后进入该界面。主要功能:“成绩管理”实现成绩的录入和修改。“课程管理”实现课程的添加和删除;“学生证号管理”和“教师认证号管理”实现学生和教师注册时使用的号码的增加删除;“新闻管理”实现新闻的添加删除和新闻模板的修改功能。
e.新闻中心页面设计
用户可浏览学院新闻,重要通知和学院其他信息。
6学院学生信息管理系统的测试、运行和维护
6.1测试范围和结果
a.系统登录测试:进行用户身份验证、权限确认测试,当输入的用户名或密码有误时,给予提示。如图 6.1所示:
图 6.1 用户身份验证
b.管理员和操作员权限界面测试:登录系统时系统将根据登录者身份分配不同的权限页面,如图6.2所示:
图 6.2 操作员权限页面
c.数据关联测试:测试有关联关系的数据是否已实现了关联。如教师登录后对学生成绩进行录入或修改后,学生能否看到本人的成绩更改信息。
教师在成绩录入界面录入或修改学生成绩。如图6.3所示:
图6.3成绩录入页面
学生在成绩查询界面查看个人成绩。如图6.4所示:
图6.4成绩查询页面
d.主要单元模块测试:测试主要功能单元的功能实现是否完整。
管理员在新闻修改页面添加修改新闻信息,用户在新闻中心页面浏览修改过的学院新闻。
6.2运行和维护
经以上测试可见,系统已经实现了需求功能,运行正常无误。维护工作主要由技术支持工程师来完成。
7结论
本课题深入调查了电子科大成都学院学生管理的现状以及业务流程和管理,查阅大了量中外文献,并综合应用现代信息管理理论、数据库技术和网络技术,运用ASP技术及ACCESS数据库开发了基于B/S模式的学院学生信息管理系统。
主要研究成果如下:
a.分析了国内外现有的信息管理系统存在的问题,探讨了管理信息系统的研究目的和意义,提出本文的主要任务是开发一个B/S结构的管理信息系统;
b.采用Windows XP操作系统,Internet信息服务器,ACCESS数据库,ASP技术搭建基于B/S模式的学院学生信息管理系统平台。在总体分析的基础上,确定系统架构为B/S模式的三层体系结构,分析了系统各个模块的具体功能;
c.对数据库系统的体系结构进行了分析。 通过对基于 B/S 结构的 Web 数据库系统的体系结构的分析,给出了 B/S 结构的开发特点和优点。总体来说,基于Web和数据库的管理信息系统越来越多地以 B/S 结构为模式进行开发;
d.对系统的安全问题进行了较详细的研究,所采取的安全措施较好地满足了基于 Web 环境的学院学生信息管理系统的安全要求
e.对系统进行了严格的测试,确保了系统的功能完整性和运行性。
参考文献
[1] 龙马工作室. ASP + Access组建动态网站实例精讲.北京:人民邮电出版社,2005
[2] 尚俊杰.网络程序设计—ASP.第二版.北京:清华大学出版社, 2004
[3] 微软公司.Microsoft Frontpage 2002标准教程.北京:中国劳动社会保障部出版社,2004
[4] [美]C.Thomas Wu,候国峰等译.面向对象程序设计导论.北京:电子工业出版社,2002
[5] 薛元昀,顾桂英.网页数据库设计与开发.北京:清华大学出版社,1999
[6] 周中宇,钟北京.Active Server Pages(ASP)网页制作指南.北京:清华大学出版社,2002
[7] [美]Richard Anderson Ale,靳文娟,陈冀康 译.预览ASP+.北京人民邮电出版社,2001
[8] 清源计算机工作室.ASP动态网站设计与开发.北京:人民邮电出版社,2000
[9] 柏亚军.ASP编程基础及应用实例集锦.北京:人民邮电出版社,2001
[10] 光军,胡波. ASP应用开发实例详解.北京:北京邮电大学出版社,2002
[11] 马文刚.ASP实用编程实例集锦.北京:清华大学出版社,2001
[12] 汪晓平.ASP网络开发技术.北京:人民邮电出版社,2000
[13] 朱三元 等编.软件工程技术概论.北京:科学出版社,2002
[14] 廖斌山,高峰霞. ASP动态网站开发教程.北京:清华大学出版社,2000
[15] [美] Alex Homer,靳文娟 译.ASP3.0专业Web技术.北京人民邮电出版社,2001
[16] Richard Anderson,Chris Blexrud.刘福泰,张立民等译..ASP 3高级编程.北京:机械工业出版社,2002
[18] 孙飞显,徐明洁,刘孙俊.基于Web的学生管理系统安全方案设计.计算机应用.2006,20(4):58-4
[19] 朱永新.高等学校教学管理系统研究.江苏:江苏教育出版社.1998
[20] 李明.高等学校学生管理导论.广西:广西师范大学出版社.2002
[21] Steven Alter,Glenn J.Browne.Communications of the Association for Information Systems . 2005(15):981~999
[22] Kenneth C. Laudon,Jane P.Laudon. Management information system organization and technology in the networked enterprise. Higher Education Press Pearson Education,2006
[23] Steven Alter,Glenn J. Browne. Communications of the Association for InformationSystems .2005(15):981~999
附录I 部分程序代码
1.数据库连接代码
<%
dim conn
dim connstr
on error resume next
connstr="DBQ="+server.mappath("../data/xin.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" /*连接字符串*/
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
2.用户登录验证代码
<%
dim rs
UserName1=trim(request.form("Name"))
PassWd=trim(request.form("PWd"))
passwd1=passwd
set rs=server.CreateObject("ADODB.RecordSet")
rs.open "select * from user where name='" & UserName1 & "' and pwd='" & passwd1 & "'",conn,1
if rs.eof and rs.eof then
response.write ""
response.write "
"response.write "Sorry,您所输入的用户名字或密码错误!
"
response.write "请您仔细检查,并输入正确的管理员名字!
"
response.write "返回"
response.end
else
session("UserName")=rs("name")
session("userkey")=rs("oskey")
session("studentno")=rs("userid")
session("zhuanye")=rs("zhuanye")
end if
rs.close
%>
3.成绩录入代码
<%
dim studentno,dim cousename,dim credit,dim mark,dim sql,rsl,
dim normal,dim id,dim condition,dim infor,
infor=request("infor")
condition=request("condition")
dim credit1
/*传递录入信息*/
id=request("id")
normal=request("normal")
modify1=request("modify")
studentno=trim(request("studentno"))
cousename=trim(request("cousename"))
mark=trim(request("mark"))
credit=trim(request("credit"))
call chkmark /*调用验证分数子程序*/
call chkcredit /*调用验证学分子程序*/
if cousename="" then
Msg("
Response.End
end if
if modify1="" then
call chkstudentno /*调用验证学生证号子程序*/
call chkinput /*调用检查录入信息子程序*/
call save /*调用成绩保存子过程*/
else
call modify /*调用成绩修改子过程*/
end if
sub save() /*成绩保存子过程*/
dim sql
dim rsl
dim noended
noended="0"
sql="select * from zdh "
set rsl=server.createobject("adodb.recordset")
rsl.open sql,conn,3,2
rsl.addnew
rsl("studentno")=studentno
rsl("cousename")=cousename
rsl("noended")=noended
rsl("mark")=mark
rsl("credit")=credit
rsl.update
rsl.close
set rsl=nothing
if normal<>"" then
response.redirect"admin_result_input.asp"
else
msg("成绩已经成功录入 返回继续")
end if
end sub
sub chkstudentno() /*验证学生证号子程序*/
dim sql
dim rsn
sql="select * from studentno where studentno='"&studentno&"'"
set rsn=conn.execute(sql)
if rsn.eof and rsn.bof then
Msg("
end if
rsn.close
end sub
sub chkinput() /*检查录入信息子过程*/
dim sql
dim rsin
if studentno="" then
Msg("
Response.End
end if
if cousename="" then
Msg("
Response.End
end if
if credit="" then
Msg("
Response.End
end if
set rsin=server.createobject("adodb.recordset")
sql="select*from zdh where studentno='"+studentno+"'and cousename='"+cousename+"' and mark='"+mark+"' and credit='"+credit+"'"
rsin.open sql,conn,1
if not rsin.bof or not rsin.eof then
msg("
end if
rsin.close
set rsin=nothing
end sub
sub modify() /*修改成绩子过程*/
dim sql
dim rsl
dim noended
noended="0"
sql="select * from zdh where id="&cstr(id)
set rsl=server.createobject("adodb.recordset")
rsl.open sql,conn,3,2
dim studentno
studentno=rsl("studentno")
rsl("cousename")=cousename
rsl("mark")=mark
rsl("credit")=credit
rsl("noended")=noended
rsl.update
rsl.close
set rsl=nothing
if infor="" then
response.redirect "admin_result_input1.asp?submit="&studentno
else response.redirect"admin_result_input1.asp?submit=m&condition="+condition+"&infor="+infor+""
end if
end sub
sub chkmark()/*检查分数子过程*/
dim mark1
if mark="" then
msg("分数不能为空")
response.end
elseif chknum(mark) then
mark1=int(mark)
else
msg("分数中含有非法字符")
response.end
end if
if mark1>100 or mark1<0 then
msg("输入的成绩,数值有误,学分数值不能大于100小于0")
response.end
end if
end sub
sub chkcredit()/*检查学分子过程*/
dim credit1
if credit="" then
msg("学分不能为空")
response.end
elseif chknum(credit) then
credit1=int(credit)
else
msg("学分中含有非法字符")
response.end
end if
if credit1>10 or credit1<0 then
msg("输入的学分,数值有误,学分数值不能大于10小于0")
response.end
end if
end sub
%>
附录II 英文资料
Active Server Pages技术
ASP是 Active Server Pages(动态服务器主页)的缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。ASP可以胜任基于微软Web服务器的各种动态数据发布。
一、ASP方法与传统静态主页的区别
把信息系统纳入Internet/Intranet 的框架之后,首先要解决的问题是通过网页访问后台数据库信息。所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求Web 站点具有很强的动态数据发布能力。然而,目前Web的服务,仍以提供" 静态"主页内容为主。所谓"静态",指的就是站点的主页内容是"固定不变"的,无法根据用户的需求和实际情况做出相应的变化。当浏览器通过Internet的HTTP协议向站点的Web服务器申请主页时,站点服务器就会将已设计好的静态的HTML文件传送给浏览器。若要更新主页的内容, 只能用非在线的手动方式更新HTML的文件数据。
ASP所设计出的是动态主页,可接收用户提交的信息并做出反应, 其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。例如:当在浏览器上填好表单并提交HTTP请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件。该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以HTML的格式传送给浏览器。数据库的数据可以随时变化,而服务器上执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。
二、ASP的工作原理和配置
当用户申请一个*.asp主页时,Web服务器响应该HTTP请求,调用ASP引擎,解释被申请文件。当遇到任何与ActiveX Scripting 兼容的脚本(如VBScript和JavaScript)时,ASP引擎会调用相应的脚本引擎进行处理。若脚本指令中含有访问数据库的请求,就通过ODBC与后台数据库相连,由数据库访问组件执行访库操作。ASP 脚本是在服务器端解释执行的,它依据访库的结果集自动生成符合HTML语言的主页, 去响应用户的请求。所有相关的发布工作由Web服务器负责。有必要注意访库的具体运作细节。当遇到访库的脚本命令时,ASP 通过ActiveX组件ADO(ActiveX Data Objects)与数据库对话(ADO是建立在微软新的数据库API,即OLE DB之上的,目前的OLE DB通过ODBC引擎与现存的ODBC数据库交互,进一步的OLE DB版本将直接与数据库打交道,不再通过ODBC引擎),并将执行结果动态生成一个HTML 页面来返回服务器端,以响应浏览器的请求。在用户端浏览器所见到的是纯HTM L表现的画面,例如用表格来表现的后台数据库表中的字段内容。由于 ASP结合了脚本语言,可
以通过编程访问ActiveX组件,并且具有现场自动生成HTML的能力,所以它成为建立动态Web站点的有效工具。
在结构关系上,ASP是通过ODBC与数据库打交道。因此,向上层可兼容各类数据库系统。而对于下层,ASP 产生的HTML 对客户端的浏览器又有广泛的适应性。但ASP对Web 服务器本身有所挑剔,这看起来似乎是一种缺陷,而实际上也许是一种商业策略——它只支持微软各种操作系统下的Web 服务器,它们的最低版本是:
Windows NT Server 4.0:MicrosoftⅡS(Internet Information Server)3.0;
Windows NT Workstation 4.0:Microsoft Peer Web Services 3.0;
Windows 95:Microsoft PWS(Personal Web Server)1.0 ,中文 Win95应配中文的PWS。
ASP的安装分为Windows NT和Windows 95两种情况。对于NT ,IIS 及ActiveX Server Pages都包含在Service Pack 3中;对于Win95,可使用Visual Studio 服务器构件下的ActiveX Server Pages安装选项。安装成功之后,在程序管理器中会找到一个ActiveX Server Pages Roadmap主页,引导你学习和使用ASP。
三、ASP的特点与功能
从软件的技术层面看,ASP有如下的特点:
1. 无需编译 ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。
2. 易于生成 使用常规文本编辑器(如WINDOWS下的记事本),即可进行*.asp页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的Visual InterDev。
3. 于浏览器 用户端只要使用可解释常规HTML码的浏览器, 即可浏览ASP所设计的主页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观察*.asp 主页,在浏览器端见不到正确的页面内容。
4. 面向对象 在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制 ActiveX Server Component(ActiveX服务器组件)来扩充功能。
5. 与任何ActiveX scripting 语言兼容 除了可使用VBScript 和JavaScript语言进行设计外,还可通过Plug-in的方式,使用由第三方所提供的其它scripting 语言。
6. 源程序码不会外漏 ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。
从应用的层面看,ASP有如下的功能:
1. 处理由浏览器传送到站点服务器的表单输入。
2. 访问和编辑服务器端的数据库表。使用浏览器即可输入、更新和删除站点服务器的数据库中的数据。
3. 读写站点服务器的文件,实现访客计数器、座右铭等功能。
4. 提供广告轮播器、取得浏览器信息、URL表管理等内置功能。
5. 由cookies读写用户端的硬盘文件,以记录用户的数据。
6. 可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。
7. 使用VBScript或JavaScript等简易的脚本语言,结合HTML码,快速完成站点的应用程序。通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。
8. 扩充功能的能力强,可通过使用Visual Basic、Java、Visual C ++ 等多种程序语言制作ActiveX Server Component以满足自己的特殊需要。
四、ADO访库的技术实现方法
ADO(ActiveX Data Objects)是一组优化的访问数据库专用对象集,为ASP提供了完整的站点数据库访问解决方案。它可作用于服务器端,以提供含有数据库信息的主页内容。通过执行SQL命令,让用户在浏览器画面中输入、更新和删除站点服务器的数据库信息。
ADO使用内置的Record Sets对象作为数据的主要接口。ADO可使用 VBScript、JavaScript语言来控制对数据库的访问,以及查询结果的输出显示。
ADO可连接多种支持ODBC的数据库,如SQL Server、Oracle、Informix等。
在使用时,首先需在控制面板的ODBC中建立相应的DSN(数据源名) 。要选择系统数据源名,指定所用的驱动程序,如"SQL Server",在数据来源名称中输入DSN名,并选定服务器和数据库。
五、ASP与组件对象的使用
在利用ASP技术进行动态Web开发的时候,应遵循这样一个原则:即 ASP的服务器端脚本必须与微软倡导的组件对象( Component Object Model )配合使用才能开发出具有实用价值的信息产品。ASP脚本相当于一种粘合剂,把一个个具有特定功能的组件对象粘合在一起,以形成最终的软件产品。这一软件制作的工艺思想类似于硬件工厂生产板卡的过程,那一个个的组件对象就相当于集成电路的芯片,而ASP脚本只是焊接芯片的焊接剂,由此可见组件对象起着核心作用。
组件对象模型COM是微软提出的一种基于二进制的Windows软件标准,它是由OLE 技术逐渐发展而来的。在使用不同语言工具写成的组件对象之间,依据COM 的标准可以进行交互。COM是技术概念和标准, 其商业概念的称谓则使用ActiveX。
上文提到的ADO就是系统提供的用于访问后台数据库的组件。此外,ASP本身还提供了五个内置的对象。这五个内置对象可被ASP 脚本直接使用,它们是:
1 Request 取得用户信息
2 Response 传递信息给用户
3 Server 提供访问服务器的方法和属性
4 Application 在一个应用程序的多个主页之间保留和使用某些共同的信息
5 Session 在一个用户的多个主页之间保留和使用某些共同的信息
其中,使用内置对象1、2可实现Web的交互功能,使用内置对象4、 5可解决具有协作机制的应用问题。
ASP的一大特色,是可以用来编写具有协作机制的应用程序,在多个用户的多个主页之间共享信息。使用内置的Application和Session 对象可实现这些功能。
Application对象保存一个应用程序共同的信息,使用此应用程序的所有用户都可以共同分享。为防止其被多个用户同时更改,提供loc k和unlock方法来实现互斥,例如:
Application lock 禁止其他用户更改Application的信息;
Application unlock 允许其他用户更改Application的信息。
Session对象比Application对象的使用外延范围小,它保存仅属于一个用户的一个应用程序的信息。ASP的应用程序可以只有一个首页,也可以有多个主页文件,所有的文件均位于一个虚拟路径下。Session对象可让同一个用户在多个主页之间共享信息。当用户第一次在一个应用程序中申请一个*.asp主页时,ASP将为该用户分配一个Session ID号,它将唯一地标识用户的身份,从而能将同一应用程序的不同用户区分开来。
根据需要还可以自行定制具有某些特色的组件对象,以完成特殊的任务。用Visual Basic、Visual C++、Delphi和 Java等语言都可以编写。自制的组件对象分成两类:
一是由类打包而成的*.dll文件,经注册器注册后,在ASP脚本中可通过"Set 对象名 = 类名"来引用。对象在这种使用过程中是在服务器的后台运行的,其运行的结果通过系统自动生成的HTML作用到前端浏览器。
二是生成*.ocx文件,一般用作可视化的对象ActiveX,可直接将其嵌入*.asp主页中,在页面中插入时需使用HTML语言的
