关键词: 浏览器/服务器系统 asp access 管理信息系统.
Student information management system development
Abstract: This article particularly introduces the process of developing the student information management system upon B/ S system. This MIS ,using ASP script combines the access database technique, connects the database from odbc method.Thus carry out the data exchanges of the browser and server. The development mainly contains the establishment of database and maintenances and the development of the head application program two aspect s.Leading the traditional active pages technique into management, this has already become the general technique of the personal management.
第一章 引 言
学生信息的管理是学校经常遇到的问题。高校招生规模的逐步扩大和认识制度的改革,在校学生认识将不断增加,而学生管理人员则相对减少。加上我国高等学校基层学生管理工作的头绪多,内容杂,管理细,要求高,传统管理办法已基本不适应新形势的要求。在计算机飞速发展的今天,应用数据库技术实现学生信息的管理是可行而必要的工作,实现高校学生管理信息系统,既能够提高工作效率,又可以提高工作水平。
作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高的效率,也是学校科学化、正规化管理的重要条件。随着社会的发展,科技的进步,作为信息载体的计算机日益显露出其举足轻重的地位,而系统的开发应用一直是计算机领域的一个主要应用方向。运用计算机进行人事档案管理的初步现代化的开发和使用,它大大提高了人事管理工作者的工作效率,它把人事干部从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动和其它教育教学的活动中去;它能使决策、计划和其它管理活动更加科学、精确、灵活。现代人事工作的信息量越来越大,而且信息的密度不断提高,靠传统的管理方法和人工操作手段已经无法搞好人事管理工作。而计算机作为数据处理系统,已逐渐成为人事管理现代化的重要手段,在人事管理中正在发挥着重要的作用。采用基于B/S架构的人事管理系统的意义在于采用计算机网络技术,可以使学校学生信息管理更加方便。一方面对学校的众多学生的信息进行动态地管理、修改、添加、删除等操作十分方便快捷,不必再像原来一样准备一个巨大的档案库,节约了成本,提高了实效性,并减少了出错率。另一方面采用计算机技术具有准确、安全、简易的特点。另外,由于Browser端(相当于Client端)可以是任意操作系统的计算机,硬件只需运行浏览器,所以B/S架构具有通用性好,硬件成本低的特点。将传统的动态网页制作技术引入到管理的各方面应用中,这已经成为人事管理的通用技术。
信息管理系统就是我们常说的MIS(Management Information System),它是一个计算机软硬件资源以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。学生信息管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起资料一致性和完整性强、资料安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点.- 学生信息管理系统是一个学校不可缺少的部分,它的内容对于学校管理者来说是至关重要,所以学生信息管理系统应该能够为学校管理者提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长了,将产生大量的文件和资料,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。管理信息系统(Management Information Systems 简称MIS)在现代社会已深入到各行各业,由于计算机技术的迅速发展和普及,MIS 事实上已成为计算机MIS。 MIS是一个不断发展的新型学科,MIS的定义随着计算机技术和通讯技术的进步也在不断更新,在现阶段普遍认为MIS是由人和计算机设备或其他信息处理手段组成并用于管理信息的系统。
4.3 数据库设计
根据系统功能设计的要求以及功能模块的划分,对于系统信息数据库可以列出以下数据项和数据结构:
1.名称:学生信息表(studentinfo) 如表1-1所示 共 StudentNum Name sex folk place birthday housemaster houseaddress politics telnum enrollment 11个字段.
5.1相关技术基础
asp: ASP即Microsoft Active Server Pages 的简称.
ASP是一套微软开发的服务器端运行的脚本平台,ASP 内含于 IIS当中,目前IIS最高版本为5.0版本。ASP其实是一套微软开发的服务器端脚本环境,ASP 内含于 IIS 3.0 和 4.0 之中 , 通过 ASP 我们可以结合 HTML 网页、ASP 指令和 ActiveX 元件建立动态、交互且高效的WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境。
ASP 程序其实是以扩展名为 .asp 的纯文本形式存在于 WEB 服务器上的,你可以用任何文本编辑器打开它, ASP 程序中可以包含纯文本、 HTML 标记以及脚本命令。你只需将 .asp 程序放在 WEB 服务器的虚拟目录下,就可以通过 WWW 的方式访问 ASP 程序了。对于浏览器来说,ASP和HTML几乎是没有区别的,仅仅是后缀为.asp和.htm的区别,当我们在客户端提出ASP的申请后,服务器将之间的内容解释成HTML语言并传送到客户端的浏览器上,我们的浏览器接受的只是HTML格式的文件,因此它适用于任何浏览器,不管是IE还是Netscape。
通过 ASP 我们可以结合HTML网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。同时,asp也支持VbScript和JavaScript等脚本语言,默认为VbScript。
ASP是经过服务器解析之后再向浏览器返回数据,所以有了 ASP 就不必担心客户的浏览器是否能运行你所编写的代码。因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
ASP要浏览必须经过服务器解析才能够浏览得到。如果是将asp文件上传到支持asp的服务器,那就能够直接浏览。但是如果是在本机上面,那就必须将自己的电脑设置成为服务器。我们单机并不需要设置成为局域网,只需要设置成为单机服务器就可以。一般较常使用的是window2000+IIS5和window98+PWS,而window95+PWS和windowXP+IIS则较少人使用。!而XP+IIS,则是XP对IIS不是完全兼容支持,有些功能配合得不够完美,而较少人采用。使用window2000+IIS5这对组合,因为window2000是相对比较稳定的系统,对于服务器网络方面微软投入得较多,比较适合做为服务使用。
ASP包括五大对象:
Request Object
集合:querystring、Form、cookies、Servervariable
主要作用:读取提交表单中的数据或cookies中的数据。
Response Object
属性:buffer、cookies、ContentType、Expires、ExpiresAbsolute、Status、IsClientConnected、CacheControl
方法:write、redirect、end、flush、cookies、BinaryWrite、AddHeader、AppendToLog
主要作用:向浏览器输出文本、数据和cookies以及控制在传送网页过程中的每一个阶段。
Server Object
属性:scripttimeout
方法:CreateObject、mappath、URLencode、HTMLencode
主要作用:创建COM对象和Scripting组件等。
Application Object
属性:lock和unlock
主要作用:Application对象被用于放在同一个应用中多个用户之间的共享信息。
Session Object
属性:SessionID和TimeOut
方法:Abandon
主要作用:为单个会话对象提供信息存储。
Access:有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。对于非服务器级的数据库建议使用ACCESS。因为:(1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。(2)ACCESS支持的SQL指令非常齐全。(3)ACCESS ODBC驱动程序的效率非常高。虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。(4)ACCESS在OFFICE中就有,非常方便得到和使用。数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串文字或数字流。数据库中的数据可以是文字、图象、声音等。 Access 多用于中小型企业来设计中小型数据库,一般的学校教务系统的数据库用Access 来设计完全能达到要求。当今的各种主页空间很少有支持oracle的,而支持access的较多.本系统数据一般不是很多,access足以胜任。
Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。
表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息.Access数据库以文件形式保存,文件的扩展名是DB。
Access 的6种对象:
Access数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。
表(Table) ——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。
查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。
报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。
宏(Macro)——宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。
模块(Module)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。
Access可以作为个人计算机终端和大型主机系统之间的桥梁。通过如SQL、ODBC等特定技术,方便地存储、检索和处理服务器平台上的关键信息,提供了灵活、可靠、安全的客户/服务器解决方案。Access可以接受多种格式的数据,从而方便了用户在不同系统之间进行数据转换。随着Internet网络应用的发展,Access还增加了使用信息发布Web 向导和用HTML格式导出对象的功能。
5.2 数据库设计
1.确定数据库需要的表和字段
由于我们要创建的MIS系统是一个小型学生信息管理系统,因此,只需要建立两个表就行了。其中表1-1的字段有:StudentNum Name sex folk place birthday housemaster houseaddress politics telnum enrollment。其中“StudentNum”为主关键字,该关键字唯一确定每个记录的字段或字段集。表1-2的字段包括:ID UserName password accesslevel。其中“ID” 为主关键字,该关键字唯一确定每个记录的字段或字段集。表1-3包括 ID Classname classid grade 4个字段,其中ID为主关键字。表1-4 包括studentnum subjectname grade,其中studentnum为主关键字。表1-5ID Subjectname2个字段,其中ID是主关键字。
2.创建数据库
(1)使用“数据库向导”创建数据库 :
在启动 Microsoft Access 时,将自动显示对话框,上面有新建数据库或打开已有数据库的选项。单击“数据库向导”,然后单击“确定”按钮。在新建空数据库对话框中单击“确定”,然后指定数据库的名称和位置,单击“创建”按钮启动新建的数据库。接着新建表,然后填入相应的字段名称和数据类型,并设置字段大小、索引等项目,其它不填或取默认值。其中字段的最大设置值是255字节,数据类型有文本、备注、数值、日期/时间、货币、自动编号、OLE对象等,你可以根据不同的要求选择。
(2)不使用向导创建数据库
在启动 Microsoft Access 时,将自动显示对话框,上面有新建数据库或打开已有数据库的选项,请单击“空数据库”,然后单击“确定”。如果已经打开了数据库或当Access 打开时显示的对话框已经关闭,请单击工具栏上的“新建数据库”按钮,然后双击“常用”选项卡上的空数据库图标。指定数据库的名称及位置,并单击“创建”按钮。
<%
Dim rsGrade1__MMColParam
rsGrade1__MMColParam = "0"
If (Request("MM_EmptyValue") <> "") Then
rsGrade1__MMColParam = Request("MM_EmptyValue")
End If
%>
<%
Dim rsGrade1
Dim rsGrade1_numRows
Set rsGrade1 = Server.CreateObject("ADODB.Recordset")
rsGrade1.ActiveConnection = MM_StudentConn_STRING
rsGrade1.Source = "SELECT * FROM Class WHERE Grade = " + Replace(rsGrade1__MMColParam, "'", "''") + " ORDER BY ClassID ASC"
rsGrade1.CursorType = 0
rsGrade1.CursorLocation = 2
rsGrade1.LockType = 1
rsGrade1.Open()
rsGrade1_numRows = 0
%>
<%
Dim rsGrade2__MMColParam
rsGrade2__MMColParam = "1"
If (Request("MM_EmptyValue") <> "") Then
rsGrade2__MMColParam = Request("MM_EmptyValue")
End If
%>
<%
Dim rsGrade2
Dim rsGrade2_numRows
Set rsGrade2 = Server.CreateObject("ADODB.Recordset")
rsGrade2.ActiveConnection = MM_StudentConn_STRING
rsGrade2.Source = "SELECT * FROM Class WHERE Grade = " + Replace(rsGrade2__MMColParam, "'", "''") + " ORDER BY ClassID ASC"
rsGrade2.CursorType = 0
rsGrade2.CursorLocation = 2
rsGrade2.LockType = 1
rsGrade2.Open()
rsGrade2_numRows = 0
%>
<%
Dim rsGrade3__MMColParam
rsGrade3__MMColParam = "2"
If (Request("MM_EmptyValue") <> "") Then
rsGrade3__MMColParam = Request("MM_EmptyValue")
End If
%>
<%
Dim rsGrade3
Dim rsGrade3_numRows
Set rsGrade3 = Server.CreateObject("ADODB.Recordset")
rsGrade3.ActiveConnection = MM_StudentConn_STRING
rsGrade3.Source = "SELECT * FROM Class WHERE Grade = " + Replace(rsGrade3__MMColParam, "'", "''") + " ORDER BY ClassID ASC"
rsGrade3.CursorType = 0
rsGrade3.CursorLocation = 2
rsGrade3.LockType = 1
rsGrade3.Open()
<%
rsGrade1.Close()
Set rsGrade1 = Nothing
%>
<%
rsGrade2.Close()
Set rsGrade2 = Nothing
%>
<%
rsGrade3.Close()
Set rsGrade3 = Nothing
%>
checklogin.asp
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="Login.asp"
MM_grantAccess=false
If Session("MM_UserName") <> "" Then
If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>