高校教学教务管理系统文档

摘  要

现行的高校教学教务管理模式多为手工操作,工作效率低,随着高等学校办学规模的不断扩大和办学层次的多样化,引进教务信息化管理,设计开发一套网络化教务管理信息系统变得十分必要。

  本课题使用ASP.NET作为开发语言,数据库使用SQL server 2000,  采用B/S模式开发一套网络化的教务管理信息系统,主要实现以下功能:

(1)教务通知的发布,删除,编辑,更新等;

(2)多媒体网上审批。教师通过终端进行多媒体申请,系统结合相关数据生成多媒体申请表,管理员审核后自动形成汇总表;

(3)教材网上征订。教师可在自己的终端提交教材相关信息,管理员审核后自动形成教材汇总表,学生可网上查询本班教材信息;

(4)网上进行期中教学检查。学生可在各自的终端分别为本班任课教师进行打分,系统根据打分情况计算教师得分,并按照得分高低对教师进行排名。

关键词:管理信息系统,教务管理系统,浏览器/服务器模式

Abstract

Most of the operations concerning educational administration is by hand now and it is very ineffective. With the continuous enlargement of the school’s scale and the multiplicity of students in university, it becomes very necessary to introduce information management into education management and to design an effective system of Educational Administration Management.

Taking ASP.NET as the programming language, and SQL server 2000 as the background databasean Educational Management Information System worked in B/S mode is developed, which mainly includes the following functions:

(1) The issue, delete, edit and update of the notice concerning educational administration.

(2) Approval of multimedia applications online. Teachers provide their multimedia applications through themselves’ terminal. Then the system generates the corresponding multimedia application table referring to the related database. Finally the total multimedia application table is generated automatically after the administrator looked through the separated application tables.

(3) Subscribe for teaching materials online. Teachers provide the teaching materials’ information through themselves’ terminal. Then the total table of teaching materials is generated automatically after the administrator looked them through. Moreover, the students can see about the teaching materials which will be used by themselves.

(4) Keeping the mid-semester examination online. Students mark the grade for those who teach them through themselves’ terminal. Then the average score and the rank order of each teacher is calculated automatically.

Keywords:Management Information System, system of Educational Administration Management,B/S mode

目  录

1  引言

1.1  管理信息系统概述

1.2  教务管理系统开发的意义

1.3  研究现状

1.4  研究内容及方法

2  技术支持

2.1  .NET Framework 概述

2.2  ASP.NET 简介

3  系统总体设计

3.1  系统总体功能

3.2  系统模块划分

3.3  系统数据库设计

4  系统详细设计与实现

4.1  系统结构

4.2  公用模块

4.3  教师功能模块

4.4  学生功能模块

4.5  管理员功能模块

5  系统的性能优化

5.1  系统安全优化

5.2  身份验证

5.3  异常处理

5.4  系统测试

6  总结与展望

参考文献

致谢辞

附录 1  英文原文

附录 2  中文译文

1  引言

教务管理系统是管理信息系统的一种,本章简要介绍管理信息系统的相关概念以及开发教务管理系统的意义和国内外研究现状。

1.1  管理信息系统概述

管理信息系统(MIS)的概念于1961年由美国人J.D.GALLAGHER首先提出,是一门新兴的,集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是企业中信息管理活动的全过程,以更有效地进行信息管理,同时可以为决策者提供决策支持、辅助企业完成现代化管理。

管理信息系统可以保存用户信息,通过对信息进行分析和处理,帮助用户制定计划,规范管理并提供决策依据。具体来说,管理信息系统有如下作用:

(1) 用统一的标准处理和提供信息,及时发现数据中隐藏的问题并做出相应处理;

(2) 完整地、及时地提供在管理及决策中需要的各种数据;

(3) 利用指定的数据关系式分析数据,客观预测未来;

(4) 向各级管理机构提供不同详细程度的报告,提高数据利用率;

(5) 花最低的费用在最短的时间提供尽可能精确、可靠的信息,以便决策者选择最佳的实施方案,提高企业的经济效益。

管理信息系统通常采用C/S 或者B/S模式开发。B/S模式是随着Internet发展起来的一种网络服务应用系统结构,它可以使用Visual Basic、Visual C#、ASP、PHP、ASP.NET和JAVA等众多功能强大的开发工具或者语言开发网络应用程序,服务器端使用后台数据库保存用户数据。而C/S模式要求对客户端和服务器端分别编程。

相比而言,对B/S模式的管理信息系统用户无需安装客户端软件,只要使用Web浏览器就可以使用管理信息系统。因此,随着Internet的推广和普及,开发B/S模式的管理信息系统在很多领域得到了应用。本文采用B/S模式开发教务管理系统,系统的基本结构如图1.1所示:

高校教学教务管理系统文档_第1张图片

图 1.1 B/S模式基本结构

1.2  教务管理系统开发的意义

随着科学技术的迅猛发展和管理水平的不断提高,计算机已经被广泛应用于日常管理之中,它的运用极大改进了传统管理模式[1],使管理日趋程序化、规范化、现代化。高校作为培养学生的重要基地,随着计算机在高校的大量使用,高校教务管理系统的信息化建设也就顺理成章地提到日程上来,科学的高校教务管理系统将为学校实施高效的教务管理提供及时、准确和可靠的信息。 

高等院校教务管理工作是高等教育中的一个极为重要的环节,是整个高等院校管理的核心和基础,面对种类繁多的数据和报表,手工处理方式已经很难适应现代化管理的步伐。因此近年来,随着计算机及通讯技术的飞速发展,已有许多研究人员将这些技术应用于高等院校教务管理工作,开发了一系列教务管理信息系统,并取得了一些成果。 

本课题旨在综合运用数据库技术和动态网页制作技术开发一套实用的教务管理系统,该系统具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

1.3  研究现状

下面结合国内某些高校在用的教务管理系统对教务管理信息化建设的现状予以说明。

北方工业大学在用的高校教务信息管理系统[2],包括学生、课程、教师、教学计划、排课、选课、学习指导、校园介绍等功能,它采用微软最新的.NET开发平台,是利用ADO.NET的离线式数据访问技术开发的一种包括学籍管理、成绩管理、学分管理、教学计划、实践环节、开课管理、教师管理、教师评估、考务管理、毕业设计、互动式选课、分布式排课、实验预约等功能的高校教学教务管理网络平台,能够适应高校现代化教学体制的管理需求。

长春理工大学在用的高校教务管理系统在完成教务管理基本功能的基础上,适应学分制的管理理念,充分体现在教育教学过程中“以人为本”的现代教育思想,为学校的教学管理提供了全面的技术支持平台,并推广到了国内300余所院校。

本课题要开发的系统是在学习借鉴上述系统优点基础上,结合山东科技大学信息学院的教务管理实际,主要完成新闻发布、多媒体网上申请、教材网上征订和期中教学检查等功能

1.4  研究内容及方法

1.4.1研究内容

本课题所开发的系统主要实现以下几个功能:

(1)教务通知的发布,修改,删除,编辑,更新等;

(2)多媒体网上审批,教师通过终端进行多媒体申请,系统结合相关数据生成多媒体申请表,管理员审核后自动形成汇总表;

(3)教材网上征订,教师可在自己的终端提交教材相关信息,管理员审核后自动形成教材汇总表,学生可网上查询本班教材信息;

(4)通过网络进行期中教学检查,学生可在各自的终端分别为本班任课教师进行打分,系统根据打分情况,自动对教师按照得分的高低进行排名。

1.4.2 研究方法

整个系统采用B/S模式开发。用户系统实现后无需安装客户端软件,只要使用Web浏览器就可以使用管理信息系统。当然B/S结构管理信息系统的主要操作都在服务器上完成,对服务器的要求比较高。

开发语言采用ASP.NET。ASP.NET是一个基于.NET环境的、可以用任何与.NET兼容的语言进行编程的应用程序。另外,任何ASP.NET应用程序都可以使用整个的.NET Framework。开发人员可以方便的获得这些技术的优点,其中包括托管的公共语言运行环境、类型安全、继承等。ASP.NET采取"code-behind"方式编写代码使得代码更易于编写,结构更清晰,降低了系统的开发与维护的复杂度和费用。

开发平台采用Visual Studio.NET。它吸收了各编程工具的优点,提供了更加有效的工具,大大简化了Web和Windows应用程序的建立过程,如拖放方式,还提供了广泛的新特性,包括完整的开发环境、动态的帮助、丰富的扩展模型等。另外基于网络的客户端。丰富的客户端接口和形成智能设备的统一一致的设计模型,使开发人员在应用程序中能够使用同一个实例。

2  技术支持

教务管理系统可以使用Visual Basic 、Visual C# 、ASP、PHP、ASP.NET和JAVA等众多功能强大的开发工具或者语言开发网络应用程序,鉴于visual studio 2003强大的功能和对web应用程序的支持,我们采用ASP.NET作为开发语言,使用.NET Framework作为技术平台。下面对这些工具或平台做具体介绍。

2.1  .NET Framework 概述

2.1.1 .NET

.NET是微软公司要提供的一系列产品的总称,具体说来,.NET由下面的几个部分组成:.NET战略、.NET Framework、.NET企业服务器和.NET开发工具。.NET战略是指把所有的设备通过Internet连接在一起并把所有的软件作为这个网络所提供的服务的想法。.NET Framework是一个程序设计环境,它提供了具体的服务和技术,方便开发人员建立相应的应用程序。.NET企业服务器是指SQL Server 2000[3]之类由.NET Framework应用程序使用的服务器端产品。它们虽然不是由.NET Framework编写成的,但是它们都支持.NET。为了能够在.NET Framework上进行程序开发,微软把Visual Studio进行升级,并把升级后的产品命名为Visual Studio.NET[4]。 

2.1.2 .NET Framework

.NET Framework是.NET战略的核心。.NET Framework分为以下几个部分:MS中间语言、CLR、.NET Framework类库、.NET语言、ASP.NET和Web服务。MS中间语言是.NET的通用语言,无论使用哪一种.NET语言编写的程序代码,在执行之前,都会把它编译成为MS中间语言;CLR(Common Language Runtime,公共语言运行时刻库)用于执行MS中间语言;.NET Framework类库中包含了大量可以实现重要功能的代码库,用户在编写程序的时候可以很方便地把这些库调用到应用程序中,以实现更加复杂的功能。由于这些类库的存在,使得编写功能强大的程序更加容易;.NET语言是指可以将使用其编写的代码编译成为MS中间语言的的编程语言,常见的语言有VB.NET和C#等;Web服务是指可以通过Web访问的组件。

2.1.3 公共中间语言

在.NET Framework中使用高级语言(例如VB.NET、C#)编写的程序,需要在运行前将其编译成为中间语言(例如MS中间语言)。需要注意的是,中间语言并不是一种可以直接执行的机器代码。与高级语言编写的代码相比,它的可读性很差,但是进行了一系列的优化。为了执行中间语言,需要一个执行环境CLR。CLR在.NET Framework中的位置十分重要,可以说是.NET Framework的基础。CLR用JIT(Just-In-Time)编译器把中间语言代码编译成可以执行的代码,并对程序进行最后的、与机器相匹配的优化,使得程序可以在计算机上尽可能高效地运行。采用这种方式的原因是,早期的编译方式是把程序源代码直接编译成机器代码。这时编译好的程序虽然也进行了与机器相匹配的优化,但是这些优化都是针对编译源代码的机器进行的。如果把编译好的程序放到其他类型的机器上,那么所进行的优化就有可能没有任何意义,并且如果机器的硬件发生变化,那么还有编译后的程序无法执行的可能,因为新的机器可能没有原来机器所拥有的某种资源。而如果采用了公共中间语言的方式,就可以很好地解决这个问题。由于中间语言与机器无关,所以它可以在任何一个可以运行CLR的机器上运行。并且由于所有的关于机器的优化都是由CLR进行的,所以不存在早期编译所产生的由于机器不同而产生的不兼容的问题。

2.2  ASP.NET 简介

ASP.NET[5] 是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的 Web 应用程序。与以前的 Web 开发模型相比,ASP.NET主要有以下优点:

1)性能得到进一步增强。ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前就显著提高了性能。

2)具有世界级的工具支持。ASP.NET 框架补充了 Visual Studio 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。

3)平台支持更强,语言更加灵活。由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以更加灵活的使用技术平台。.NET 框架类库、消息处理和数据访问解决方案都可从 Web 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。

4)使用更加简易。ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。

5)管理更加容易。ASP.NET 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 Web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此零本地管理哲学也扩展到了 ASP.NET 框架应用程序的部署。只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。

6)良好的收缩性。ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。

7)自定义性和扩展性得到增强。ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级别插入代码。实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。

8)安全性得到提高。借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。

这些优势又与ASP.NET的工作原理密不可分。ASP.NET的工作原理[6]是:首先,有一个HTTP请求发送到Web服务器要求访问一个Web网页。Web服务器通过分析客户的HTTP请求来定位所请求网页的位置。如果所请求的网页的文件名的后缀是aspx,那么就把这个文件传送到aspnet_isapi.dll进行处理,由aspnet_isapi.dllASP.NET代码提交给CLR。如果以前没有执行过这个程序,那么就由CLR编译并执行,得到纯HTML结果;如果已经执行过这个程序,那么就直接执行编译好的程序并得到纯HTML结果。最后把这些纯HTML结果传回浏览器作为HTTP响应。浏览器收到这个响应之后,就可以显示Web网页。

2.1ASP.NET程序执行的基本过程。代码生成和ASP.NET所使用的编译类及方法是.NET Framework的一个标准的组成部分,它们位于System.CodeDOM命名空间中,该命名空间包含在程序集System.DLL中。

高校教学教务管理系统文档_第2张图片

           图2.1 ASP.NET的程序执行基本过程

3  系统总体设计

文中提到的教务管理系统采用3层架构模式,分别为Web显示层[7],数据访问层和数据库。系统的总体设计架构如图3.1所示:

高校教学教务管理系统文档_第3张图片

3.1 系统总体架构图

Web 显示层即为ASP.NET页面层,为客户或者用户提供应用程序的访问,本论文中的系统以Web页面的形式实现。

数据访问层为Web显示层提供数据服务,一般封装操作数据库的选择,添加、更新和删除等操作,同时还为Web显示层提供访问数据库的接口或者函数等。

数据库连接通过一些函数如ExcuteSql()函数来实现。

数据库位于系统最底层,它存储系统的所有数据。

3.1  系统总体功能

教务管理管理系统有三类用户:学生、教师和管理员。学生模块功能简单,主要是对担任本班教学任务教师进行教学评价;教师要向管理员提交本学期所需要的教材信息、使用多媒体的信息并能及时查询审核信息;管理员要对所提交的各种信息进行处理汇总,同时管理员可以对教务通知进行添加、修改、删除等操作,并对学生和教师信息进行维护和更新。

学生用户使用前,要进行注册,之后系统根据学生的注册信息生成其登录界面,页面显示其所在班级全部任课教师的信息,学生直接在终端进行评分即可,并且学生只能在规定时间进行打分,提交评分信息后便不能再次评分。

教师用户使用前,要进行注册,之后系统根据教师的注册信息生成其登录界面,页面功能分教材征订、媒体申请和修改密码。

管理员由系统开发时设定,登录后即可进行教务通知的管理,用户管理,教材管理,多媒体管理和期中检查的汇总管理等。

3.2  系统模块划分

为方便进行系统的开发,对系统进行模块划分具体如3.2图所示:

高校教学教务管理系统文档_第4张图片

图3.2 模块划分图

其中登录模块、注册模块和修改密码模块是公用模块;教师教材信息模块、教师多媒体申请模块是教师功能模块;教材信息汇总模块、多媒体信息汇总模块、期中检查汇总模块和教务通知模块是管理员模块;学生期中检查模块是学生模块。

3.3  系统数据库设计

本系统所用到的表有Userinfo(用户表)、Art_info(通知信息表)、teacher_info(教师信息表)、student_info(学生信息表)、Course_details(课程信息表)、VoteInfo(教学评价信息表)、Media_info(多媒体信息表),Book_info(教材信息表),jiaocai(教材库表)。各表具体设计如下:

(1) 用户表UserInfo

用户表主要存储用户登录信息,包括用户名,用户号和密码等。其中用户号是主键。具体结构如图3.3所示

高校教学教务管理系统文档_第5张图片

图3.3 用户表

UserType是权限设置:0-管理员、1-教师,2-学生。登录根据此权限转向不同的界面。MediaTag 、BookTag、VoteTag分别为多媒体教材期中检查标记,由此判断用户是否进行过此操作。

(2)通知信息表Art_info

通知信息表主要存储教务通知的信息,包括通知的标题、内容、发布时间以及最后更新时间等。具体结构如图3.4所示:

高校教学教务管理系统文档_第6张图片

图3.4 通知信息表

其中ID是通知流水号,是表的主键。

(3)教师信息表teacher_info

教师信息表主要存储教师相关信息,包括教师的代号、参加工作时间以及教龄等。其中教师代号为表的主键。具体结构如图3.5所示:

高校教学教务管理系统文档_第7张图片

图3.5 教师信息表

(4)学生信息表student_info

学生信息表主要存储学生相关信息,包括学生的学号和所在班级代号。其中学号为表的主键。具体如图3.6所示:

高校教学教务管理系统文档_第8张图片

图 3.6 学生信息表

(5)课程信息表Course_details

课程信息表主要存储课程相关信息,包括课程代号、课程名、班级代号、班级名、教师代号、课程性质、上课时间、上机时间以及使用是否使用多媒体。其中CourseID和TeacherID是联合主键。具体如图3.7所示:

高校教学教务管理系统文档_第9张图片

图3.7 课程信息表

(6)教学评价信息表VoteInfo

教学评价信息表主要存储对教师教学评价的相关信息,包括得ABCDE的数目以及总分等。其中教师代号是主键。具体如图3.8所示:

高校教学教务管理系统文档_第10张图片

图3.8 教学评价信息表

(7)多媒体信息表Media_info

多媒体信息表存储教师申请使用多媒体的相关信息,包括课件来源、自我评价、开始使用时间以及使用届数等。其中教师代号和课程代号是联合主键。具体如图所示:

高校教学教务管理系统文档_第11张图片

图3.9 多媒体信息表

(7)教材信息表Book_info

教材信息表用来存储教师申请的教材的相关信息,包括教材名、ISBN、出版社、作者、版本以及数量等,其中教师代号和课程代号为联合主键。具体如图3.10所示:

高校教学教务管理系统文档_第12张图片

图3.10 教材信息表

以上是本系统所使用的几张表,每个表都把主键作为外键,各表都有一个代号字段,其中教师代号是主要的字段,把教师信息表、课程信息表、教材信息表、多媒体信息表以及教学评价信息表之间建立联系。

4  系统详细设计与实现

4.1  系统结构

在了解了系统的总体功能之后,我们这里列出教务管理系统的结构图:

高校教学教务管理系统文档_第13张图片

图4.1 教务管理系统结构图

用户登录后,通过读取表中不同的权限值,分别转向不同的用户界面,同时使用不同界面的相应的功能。

4.2  公用模块

4.2.1登录模块

登录模块主要提供登录功能,用户通过该模块登录到系统,使用相应的功能。

用户输入用户名和密码,同时输入随机生成的验证码进行登录,加入验证码的目的是为了防止用户利用机器人自动注册、登录等。所谓验证码就是一串随机产生的数字与英文字母组合成的4位字符串。

由于登录界面是系统的第一个提供给用户的界面,我们力求简洁,设计界面如下图:

高校教学教务管理系统文档_第14张图片

图4.2 登录界面

在登录模块中为了防止SQL注入式攻击采取了参数传值的方法,这样可以通过参数将非法的字符过滤掉。

登录模块应用Table来控制布局,为了美观在photoshop中创作的图片。点击登录,根据权限转到相应的界面。主要代码如下:

// 用户的验证

//权限查询代码 

if(bExist)

{   

int type=(int)(Session["id"]);

if(type==0)

Response.Redirect("adimin.aspx?id="+Session["rnd"].ToString()+"&&bt="+Session["UserName"].ToString ());

if(type==1)

Response.Redirect("teacher.aspx?id="+Session["rnd"].ToString()+"&&bt="+Session["UserName"].ToString()+"&&action=0");

if(type==2)

Response.Redirect("student.aspx?id="+Session["rnd"].ToString()+"&&bt="+Session["UserName"].ToString ());

}

else

{

 Response.Write("");

}

//end

4.2.2 注册模块

与登录模块类似,同样采用参数传值的方法来防止SQL注入式攻击。这里要求用户必须输入真实的姓名信息和学号,否则,用户无权注册,如果注册的学号在数据库中不存在,将禁止注册。这样就增加了系统的安全性,注册成功后,提示注册成功,同时转向login.aspx页面。

该模块主要采用HTML中的Table来控制页面布局,并使用了TextBox、DropDownList等控件来友好让用户输入相关信息,同时在输入确认密码时,如果与原输入密码不一致,系统将自动提示,重新输入。界面也要力求简洁,设计界面如下图:

高校教学教务管理系统文档_第15张图片

图4.3 用户注册界面

4.2.3密码修改模块

为了增加用户信息安全性,我们提供了密码修改模块方便用户更改自己的登录密码。设计界面如下图:

高校教学教务管理系统文档_第16张图片

图4.4 密码修改界面

通过数据库查询,利用Session中的用户名信息,修改密码。实现类似与注册模块,不过注册模块要使用insert语句,而这里要使用update语句。

    这两个模块都调用ExcuteSql(string strSql)函数执行操作。关键代码如下:

 //ExcuteSql()函数

SqlConnection con = new SqlConnection();

con.ConnectionString=System.Configuration.ConfigurationSettings.AppSettings["DSN"];

con.Open();

//添加纪录...

SqlCommand com = new SqlCommand(strSql,con);

com.ExecuteNonQuery();//

con.Close();

//end

在这里通过strSql查询语句的参数传递进行调用此函数。

4.3  教师功能模块

教师功能模块主要分为教材征订模块和多媒体申请模块。

4.3.1教材征订模块

教师用户凭借用户名和密码登录系统,如果是第一次登录,点击相应的button来操作。根据上面的输入信息,来填写教材信息,每一项都是必填项目,否则不允许提交。提交成功后,转向预览界面。无误后确定预览信息,等到下次登录,只需修改相关信息就可以了。这里主要应用了DataGrid控件,同时自定义了编辑命令,点击修改会弹出窗口进行修改。具体代码如下所示:

private void DataGrid1_EditCommand

(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

// DataGrid1.EditItemIndex =e.Item .ItemIndex ;//一般情况下的编辑

// databind();

Response.Write("

window.open('bookxg.aspx?id="+Session["UserID"].ToString()+"','','width=400,height=400')");//弹出窗体

 Response.Write("'");

     databind();//数据绑定

    }

在bookxg.aspx中加入如下代码,当修改成功后,同时刷新父窗体,已完成数据的实时更新。

Response.Write ("");

该模块设计需两大块,一是未提交信息之前如图4.5所示

高校教学教务管理系统文档_第17张图片

图4.5 教师教材征订第一次登录界面

二是教师提交信息并确定之后的界面如图4.6所示:

高校教学教务管理系统文档_第18张图片

图4.6 教师确定信息后的界面

在这块中,我们加入了一个Label控件来传递审核信息,具体实现是在Book_info表中加入一个审核字段,并将其绑定到该Label控件上,让用户登录后随时可以看到审核信息。

当点击修改后弹出窗体

高校教学教务管理系统文档_第19张图片

图4.7 修改教材信息界面

这里主要解决的就是关闭这个弹出窗口的同时对父窗体进行刷新,前面已经有所讲述,不再赘述。

4.3.2 多媒体申请模块

教师用户凭借用户名和密码登录系统,如果是第一次登录,点击相应的button来操作。根据上面的输入信息,来填写多媒体信息,每一项都是必填项目,否则不允许提交。提交成功后,转向预览界面,生成标准的申请表格。无误后确定预览信息,打印。等到下次登录,只需修改相关信息就可以了。这里主要应用了DataGrid控件,同时自定义了编辑命令,点击修改会弹出窗口进行修改。具体代码如下所示:

private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

// DataGrid1.EditItemIndex =e.Item .ItemIndex ;//一般情况下的编辑

//databind();

Response.Write("window.open('bookxg.aspx?id="+Session["UserID"].ToString()+"','','width=400,height=400')");//弹出窗体

Response.Write("'");

databind();//数据绑定

}

//end

在dmtxg.aspx中加入如下代码,当修改成功后,同时刷新父窗体,完成数据的实时更新。

Response.Write ("");

 当点击打印的时候会调动本机所连接的打印机进行打印。这里采用的javascript脚本语言,界定好打印的范围进行打印。代码在html中添加,具体如下:

//endjava

//html

这里用的是一种解决问题的方法和思维,抛弃的ie浏览器上的打印,自定义打印,尤其是打印范围的界定的确是本系统的一个打印亮点。

该模块设计需两大块,一是未提交信息之前如图4.8所示:

高校教学教务管理系统文档_第20张图片

图4.8 教师多媒体申请第一次登录界面

二是教师提交信息并确定之后的界面如图4.9所示:

高校教学教务管理系统文档_第21张图片

图4.9 教师确定信息后的界面

在这块中,我们加入了一个Label控件来传递审核信息,具体实现是在Book_info表中加入一个审核字段,并将其绑定到该Label控件上,让用户登录后随时可以看到审核信息。

当点击修改后弹出窗体

高校教学教务管理系统文档_第22张图片

图4.10 修改多媒体信息界面

这里主要解决的就是关闭这个弹出窗口的同时对父窗体进行刷新,前面已经有所讲述,不再赘述。

点击打印预览后进入的界面如图4.11所示:

高校教学教务管理系统文档_第23张图片

图4.11 打印预览界面

在这块中,我们加入了一个Label控件来传递审核信息,具体实现是在media_info表中加入一个审核字段,并将其绑定到该Label控件上,让用户登录后随时可以看到审核信息。

4.4  学生功能模块

学生登录后,同时显示学生所在班级的任课教师,用户对每名教师进行ABCDE等级评价然后提交,最后确认信息。等下次在登录的时候,改用户将禁止使用该功能,每个用户只能进行一次。学生用户也可以查看本学期的教材使用情况,运行界面如下图所示:

高校教学教务管理系统文档_第24张图片

图4.12 学生用户运行界面

4.5  管理员功能模块

管理员主要有通知管理、用户管理、教材管理、多媒体管理和期中检查汇总的功能。

4.5.1教务通知模块

管理员登录系统,后台通过查询相应的数据表得到相应的信息。界面如下:

高校教学教务管理系统文档_第25张图片

图4.13 通知管理界面

这里主要用了DataGrid,并使用了超级链接列,供预览所用。修改功能如前面所述,不做冗余叙述。主要说明一下删除,使用了自定义删除,代码如下所示 在datagrid中加入一个模板列,同时在item中加入button。

private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

{

switch(e.Item.ItemType)

{

case ListItemType.Item:

case ListItemType.EditItem:

case ListItemType.AlternatingItem:

Button   myDeleteButton= (Button)e.Item.FindControl("btnDelete");

myDeleteButton.Text = "删除";

myDeleteButton.Attributes.Add("onclick","return confirm('您真的要删除此行公告吗?');");

break;

}

}

private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

if(e.CommandName=="UserDelete")

DataGrid1_DeleteCommand(source,e);

}

4.5.2 用户管理模块

主要管理新注册用户,赋予登录权限,使用系统的相应功能,主要是使用了DataGrid控件,在控件中加入一个模板列,在模板列中使用CheckBox控件,在审核提交的时候通过查找到CheckBox控件,判断其是否被选中从而更改用户权限。界面如下图所示

高校教学教务管理系统文档_第26张图片

图4.14 用户管理界面

4.5.3 教材管理模块

主要审核教师提交的教材,并生成汇总表格。

审核类似与用户审核,通过修改表中的审核字段信息,将审核信息通知用户。

然后在经过审核之后可以生成汇总表格界面如下图所示:

高校教学教务管理系统文档_第27张图片

图4.15 教材汇总界面

当点击教材库的时候,管理员可以根据实际情况进行教材库更新操作。

4.5.4 多媒体管理模块

主要审核教师的多媒体申请,并生成汇总表格。

审核类似与用户审核,通过修改表中的审核字段信息,将审核信息通知用户。

审核界面如图所示:

高校教学教务管理系统文档_第28张图片

图4.16 多媒体申请审核界面

高校教学教务管理系统文档_第29张图片

当点击汇总的时候进入汇总界面,如下图所示:

图4.17 多媒体申请汇总界面

这里解决的一个问题是在表格中会出现重复列,这里我设计了一个函数,来合并相同的行,避免重复显示数据。

4.5.5 期中检查汇总模块

通过查询VoteInfo表得到老师的教师得分并按照平均分给出名次,当平均分相同时按照A的数目来确定名次。界面如下图所示:

高校教学教务管理系统文档_第30张图片

图4.18 期中检查汇总模块

5  系统的性能优化

建立在B/S模式上的教务管理系统,需要增加其安全性能,才能更好的满足教务管理的需要。

5.1  系统安全优化

系统安全性主要是针对SQL注入式攻击[8]的防范,下面将对SQL注入式攻击及防范、身份验证和异常处理做具体说明。

5.1.1 什么是SQL注入式攻击

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如:

(1)某个ASP.NET Web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称和密码。

(2)登录页面中输入的内容将直接用来构造动态的SQL命令,或者直接用作存储过程的参数。下面是ASP.NET应用构造查询的一个例子:

例如用户的查询语句是select * from tbUser wher name =’”&user&”’ and password=’”&pwd&”’,

(3)攻击者在用户名和密码输入框中输入1‘or’1‘=’1之类的内容。

(4)用户输入的内容提交给服务器之后,服务器运行上面的ASP.NET代码构造出查询用户的SQL命令,但由于攻击者输入的内容非常特殊,所以最后得到的SQL命令变成:select *from admin where tbUser=1‘or’1‘=’1 and password=’”&pwd&”’

(5)服务器执行查询或存储过程,将用户输入的身份信息和服务器中保存的身份信息进行对比。

(6)由于SQL命令实际上已被注入式攻击修改,已经不能真正验证用户身份,所以系统会错误地授权给攻击者。

如果攻击者知道应用会将表单中输入的内容直接用于验证身份的查询,他就会尝试输入某些特殊的SQL字符串篡改查询改变其原来的功能,欺骗系统授予访问权限。

系统环境不同,攻击者可能造成的损害也不同,这主要由应用访问数据库的安全权限决定。如果用户的帐户具有管理员或其他比较高级的权限,攻击者就可能对数据库的表执行各种他想要做的操作,包括添加、删除或更新数据,甚至可能直接删除表。

5.1.2 防范措施

好在要防止ASP.NET应用被SQL注入式攻击闯入并不是一件特别困难的事情,只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。

(1)对于动态构造SQL查询的场合,可以使用下面的技术: 

  第一,替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。再来看前面的例子,“SELECT * from Users WHERE login = ''' or ''1''=''1' AND password = ''' or ''1''=''1'”显然会得到与“SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1'”不同的结果。

  第二,删除用户输入内容中的所有连字符,防止攻击者构造出类如“SELECT * from Users WHERE login = 'mas' —— AND password =''”之类的查询,因为这类查询的后半部分已经被注释掉,不再有效,攻击者只要知道一个合法的用户登录名称,根本不需要知道用户的密码就可以顺利获得访问权限。

  第三:对于用来执行查询的数据库帐户,限制其权限。用不同的用户帐户执行查询、插入、更新、删除操作。由于隔离了不同帐户可执行的操作,因而也就防止了原本用于执行SELECT命令的地方却被用于执行INSERT、UPDATE或DELETE命令。

  (2)用存储过程来执行所有的查询。SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了。

  (3)限制表单或查询字符串输入的长度。如果用户的登录名字最多只有10个字符,那么不要认可表单中输入的10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。

(4)检查用户输入的合法性,确信输入的内容只包含合法的数据。数据检查应当在客户端和服务器端都执行——之所以要执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性。

  在客户端,攻击者完全有可能获得网页的源代码,修改验证合法性的脚本(或者直接删除脚本),然后将非法内容通过修改后的表单提交给服务器。因此,要保证验证操作确实已经执行,唯一的办法就是在服务器端也执行验证。你可以使用许多内建的验证对象,例如RegularExpressionValidator,它们能够自动生成验证用的客户端脚本,当然你也可以插入服务器端的方法调用。如果找不到现成的验证对象,你可以通过CustomValidator自己创建一个。

  (5)将用户登录名称、密码等数据加密保存。加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。System.Web.Security.FormsAuthentication类有一个HashPasswordForStoringInConfigFile,非常适合于对输入数据进行消毒处理。

(6)检查提取数据的查询所返回的记录数量。如果程序只要求返回一个记录,但实际返回的记录却超过一行,那就当作出错处理。

本文所提及的教务管理系统采用的是用存储过程进行查询。比如在登录模块中:

string uname=UserName.Text ;

string upwd=UserPwd.Text ;

string strSql="select * from UserInfo where UserName=@uname and Pwd=@upwd";

SqlConnection con = new SqlConnection();

con.ConnectionString=System.Configuration.ConfigurationSettings.AppSettings["DSN"];

con.Open();

SqlCommand com = new SqlCommand(strSql,con);

com.Parameters.Add(newSqlParameter("@uname",SqlDbType.NVarChar,20));

com.Parameters ["@uname"].Value =uname;

com.Parameters.Add(newSqlParameter("@upwd",SqlDbType.NVarChar,20));

com.Parameters ["@upwd"].Value =upwd;

SqlDataReader dr = com.ExecuteReader();

5.2  身份验证

基于窗体的身份验证是 ASP.NET 身份验证服务,它使应用程序能够提供它们自己的登录 UI 和进行它们自己的凭据验证。ASP.NET 验证用户的身份,将未授权的用户重定向到登录页并执行所有必要的 Cookie 管理。这种身份验证是许多 Web 站点使用的流行方法。

应用程序必须被配置成使用基于窗体的身份验证,将  设置为 Forms 并且拒绝匿名用户访问。下面的示例说明如何在所需应用程序的 Web.config 文件中完成此配置:

  

    

    

        

    

  

管理员使用基于窗体的身份验证来配置要使用的 Cookie 名称、保护类型、用于登录页的 URL、Cookie 生效的时间长度以及用于已发布 Cookie 的路径。下表显示了  元素(它是下面的示例中显示的  元素的子元素)的有效属性:

   

   

配置了应用程序后,需要提供一个登录页。下面的示例显示了一个简单的登录页。未授权的请求被重定向到登录页 (Login.aspx),此页显示一个简单的窗体,提示用户输入用户名和密码。

这将用户重定向回当初请求的 URL。不想执行重定向的应用程序可以或者调用 FormsAuthentication.GetAuthCookie 来检索 Cookie 值,或者调用 FormsAuthentication.SetAuthCookie 将正确加密的 Cookie 附加到输出的响应中。对于提供嵌入在包含页中的登录 UI 的应用程序,或者想要更多地控制用户被重定向到的位置的应用程序而言,这些方法很有用。身份验证 Cookie 既可以临时又可以永久(“持久”)。临时 Cookie 只在当前浏览器会话期间保持。当浏览器关闭时,临时 Cookie 随即丢失。永久 Cookie 则被浏览器保存,并在浏览器会话间回发,直到被用户显式删除。

窗体身份验证使用的身份验证 Cookie 由 System.Web.Security.FormsAuthenticationTicket 类的线性版本组成。信息包括用户名(但没有密码)、使用的窗体身份验证版本、发出 Cookie 的日期以及可选的应用程序特定数据的字段。

通过使用 FormsAuthentication.SignOut 方法,应用程序代码可以撤消或移除身份验证 Cookie。这将移除身份验证 Cookie,不论它是临时的还是永久的。

5.3  异常处理

根据具体的情况,可能需要以不同的方式处理应用程序错误。例如,开发时可能需要查看 ASP.NET 提供的详细错误页,以帮助确定和修复问题。然而,一旦应用程序应用于生产环境,您可能不想向客户所在的客户端显示详细的错误。可以使用 ASP.NET 指定是向本地客户端、远程客户端还是这两者显示错误。默认情况下,仅向本地客户端(即服务器所在的同一计算机上的客户端)显示错误。也可以指定自定义错误页,以在发生错误时将客户端重定向到该页。 

在 Web.config 文件中为某个应用程序启用自定义错误。例如: 

     

         

     

此配置使本地客户端能够看到默认的 ASP.NET 详细错误页,但将远程客户端重定向到自定义页 genericerror.htm。该页也可以是 .aspx 页。ASP.NET 以 QueryString 参数的形式将发生错误的页的路径传递到该错误页。注意:如果执行错误页时产生错误,则将给远程客户端发回空白页。 

除了将所有的错误重定向到一个公共页外,还可以将特定的错误页分配给特定的错误状态代码。 配置节支持内部  标记,该标记使 HTTP 状态代码与自定义错误页关联。例如: 

  

    

      

      

      

    

  

   本论文提及的系统采用自定义错误,如果在客户端产生错误,将自动转向错误页Error.aspx。

界面如下图所示:

高校教学教务管理系统文档_第31张图片

图5.1 错误界面

5.4  系统测试

作为软件开发的重要环节, 软件测试越来越受到人们的重视. 随着软件开发规模的增大、复杂程度的增加, 以寻找软件中的错误为目的的测试工作就显得更加困难. 为了尽可能多地找出程序中的错误,生产出高质量的软件产品, 很有必要研究软件测试技术.软件测试是为了发现错误而执行程序的过程. 或者说, 软件测试[9]是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果) , 并利用这些测试用例去运行程序, 以发现错误的过程. 软件测试是软件质量保证的重要手段. 测试按照典型的软件工程理论分为单元测试、集成测试、系统测试等, 此外从其他角度还可以分成白盒测试、黑盒测试. 软件测试工作分布于整个开发周期中, 测试从单元测试开始, 以系统测试结束.

本系统采用的是WAST测试工具,模拟多用户登录来查看服务器的压力。

Report name:                  2007-5-26 22:12:59

Run on:                       2007-5-26 22:12:59

Run length:                    00:00:30

Web Application Stress Tool Version:1.1.293.1

Number of test clients:          1

Number of hits:               1817

Requests per Second:           60.82

Socket Statistics

Socket Connects:              1818

Total Bytes Sent (in KB):      452.72

Bytes Sent Rate (in KB/s):     15.15

Total Bytes Recv (in KB):      42774.96

Bytes Recv Rate (in KB/s):     1431.74

Socket Errors

---------------------------------------------------------

Connect:                     0

Send:                        0

Recv:                        0

Timeouts:                     0

RDS Results

---------------------------------------------------------

Successful Queries:            0

Client machine:  localhost

======================================================

Number of threads:            1

Number of users:              3

Hit Count:                  1817

Connect Failures:             0

Page Summary

Page     Hits      TTFB Avg  TTLB Avg  Auth      Query     

======================================================

POST /guanli/login.aspx    455  1.16   1.18    No      No        

POST /guanli/teacher.aspx  454  3.02   3.09     No      No        

POST /guanli/adimin.aspx  454  2.21  2.28      No      No        

POST /guanli/bookgl.aspx  454  26.20 28.89      No      No        

通过测试结果可见,由于使用的是windows xp系统限于系统最大连接数,所以成功率不是很高,当服务器为windows 2000 server的时候成功率高。

6  总结与展望

用Internet/Intranet的优势,实现教育管理的电子化、网络化,使系统的管理维护更加方便,尤其使数据查询和处理更加灵活,工作效率得到提高,出错几率大大减低。在Intranet环境下,网络安全性有很大提高,通过与Internet连接,网络的访问可以不受地域的限制,使网络的扩展更加容易。因此,在校园网的环境下建立网络化的教务管理信息系统是可行的、必要的。

通过本课题所开发的系统,管理员可以进行教务通知的管理、用户的管理、教材的管理、多媒体申请的管理等。教师可在自己的终端提交教材和多媒体申请相关信息,学生也可在终端进行期中教学检查测评,后台自动对这些信息加以汇总处理,从而避免了繁重的手工汇总等工作,能大大提高教务员的工作效率,具有一定实用功能。

不过文中的教务管理系统还不是很完善,比如工作量的计算等教务管理中的一些复杂问题还没有进行解决,在以后的工作中要着重解决。

参考文献

[1] David Lip Piatt.Traditional ,Distance and Virtual: an exploration of concepts. International Workshop on Distance Learning and Virtual Campus.2000,40(3):104-113

[2] Luo Jian.Optimal Concurrent Control of Database System. Journal of Systems Science and Systems Engineering.2000,9(1):119-124

[3] LU Jingping, HE Yulin. A web product data management system based on Simple Object Access Protocol. Journal of Chongqing University-Eng. Ed.2003,2(1):57-61

[4] 刘小伟,王萍编著. ASP.NET与SQL Server网站开发实用教程. 上海:上海交通大学出版社,2006.1-135

[5] 杨天奇. Asp.NET网络编程技术 .北京:机械工业出版社,2007.1-140

[6] 陈学平. Dreamweaver+ASP.NET动态网站制作实训. 北京:电子工业出版社,2006.1-99

[7] 张跃廷. ASP.NET数据库系统开发案例精选.北京:人民邮电出版社,2007.1-44

[8] 陈红. 数据库系统原理教程.北京:清华大学出版社,2006.1-89

[9] 蒋学锋. 软件工程. 重庆:重庆大学出版社,2006.1-95

[10] Microsoft .ASP.NET 2.0 QuickStart Tutorial.2005,1-350

你可能感兴趣的:(云计算)