浅谈在线考试系统中Office数据交换的实现….计算机科学学院计算机科学与技术[摘要]在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。
基于网络的考试系统是传统考场的延伸,加上数据库技术的利用,大大简化了传统考试的过程。
因此网络考试系统是电子化教学不可缺少的一个重要环节。
因此,采用网络考试方式将是以后考试发展的趋势。
本文结合制作软件《在线考试系统》的例子,重点讨论在线考试系统中Office数据交换的实现,并应用C#、、SQL Server数据库技术设计出一种基于Web的考试系统,介绍了Web考试系统设计流程,并给出了部分关键代码。
[关键词] 在线考试系统,Office2003,SQL Server2005,Ajax, C#,B/S模式,Log4Net。
引言随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,即数字化时代,在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,老师希望有效改进现有的考试模式,提高考试的效率,教育机构也希望给网上的学生提供更全面灵活的服务。
此次设计的在线考试系统采用开放、动态的系统架构将传统的考试模式与先进的网络应用相结合,可以让学生随时随地进行相关的考试,其操作简单方便,界面简洁美观。
远程教育和网上考试如今已经成为网络研究与应用的热点之一,它可以解决当前知识更新周期急剧缩短、人才急需再培训、师资力量短缺等难题,有着广阔的研究与应用前景和巨大的社会经济效益,在国外一些发达国家已经得到了蓬勃的发展,并成为现代教育的有力补充。
在国内,传统的考试方式已经不再适应远程教育的发展,网上考试尚处于试点阶段。
现阶段国内的在线考试系统有驾照考试系统、计算机等级考试系统等,然而这些考试系统都是C/S模式,由于各种客户端环境的不同,升级、发布、使用都十分困难,而且需要考生到规定的场所进行考试,使用极其不方便。
同时,这些系统中的考题基本上都是固定不变的,很容易使考题外泄而无法公平地衡量考生的真正水平。
因此考试系统除了能够实现自动生成考试套题、自动提交考生的试卷、自动阅卷等功能之外,必须要保证其试题的不断更新,也就是说,教师要将自己设计好的试题根据不同的类型输入系统,并对原有的试题进行修改和维护,经过不断的完善后,在线考试系统将会越来越适应社会发展的需要。
因此本文结合实际情况对在线考试系统的要求,对MS SQL Server2005数据库管理系统、SQL语言原理、Office编程、应用程序设计与开发等进行了教深入的学习和应用,主要完成对在线考试系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
系统运行结果证明,本任务管理系统可以满足实际考试中出题、考试和评卷等方面的需要。
1 相关理论介绍1.1 三层架构简述在设计模式上,三层架构的三层分别成为:显示层,业务逻辑层、数据访问层、业务实体和通用类库(如图1)。
图1 三层架构视图1.标示层WEB提供应用程序的用户界面,通常也包括Window窗体和页面的使用。
2.业务逻辑层BLL业务层实现应用程序的业务和逻辑功能。
3.数据访问层DAL数据层提供对外部系统(如数据库)的访问,该层涉及到的主要.NET技术是的数据库访问技术。
4.业务实体Mode提供封装好的实体对象。
5.通用类库Common提供通用的方法,类库。
1.2 Log4Net简述Log4Net是用于.NET开发环境的日志记录包。
它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。
另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用。
1.2.1 Log4Net的结构Log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及 Layout(布局)。
1.2.1.1 Logger(记录器)Logger是应用程序需要交互的主要组件,它用来产生日志消息。
产生的日志消息并不直接显示,还要预先经过Layout的格式化处理后才会输出。
Logger提供了多种方式来记录一个日志消息,你可以在你的应用程序里创建多个Logger,每个实例化的Logger对象都被log4net框架作为命名实体(named entity)来维护。
这意味着为了重用Logger对象,你不必将它在不同的类或对象间传递,只需要用它的名字为参数调用就可以了。
log4net框架使用继承体系,继承体系类似于.NET中的名字空间。
也就是说,如果有两个logger,分别被定义为a.b.c和a.b,那么我们说a.b是a.b.c 的祖先。
每一个logger都继承了祖先的属性 Log4net框架定义了一个ILog接口,所有的logger类都必须实现这个接口。
如果你想实现一个自定义的logger,你必须首先实现这个接口。
1.2.1.2 Repository(库)Repository主要用于负责日志对象组织结构的维护。
在log4net的以前版本中,框架仅支持分等级的组织结构(hierarchical rganization)。
这种等级结构本质上是库的一个实现,并且定义在log4net.Repository.Hierarchy 名字空间中。
要实现一个Repository,需要实现log4net.Repository.ILoggerRepository 接口。
但是通常并不是直接实现该接口,而是以log4net.Repository.LoggerRepositorySkeleton为基类继承。
体系库(hierarchical repository)则由log4net.Repository.Hierarchy.Hierarchy类实现。
如果你是个log4net框架的使用者,而非扩展者,那么你几乎不会在你的代码里用到Repository的类。
相反的,你需要用到LogManager类来自动管理库和日志对象。
一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。
另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用。
1.2.1.3 Appender(附着器)一个好的日志框架应该能够产生多目的地的输出。
比如说输出到控制台或保存到一个日志文件。
log4net 能够很好的满足这些要求。
它使用一个叫做Appender 的组件来定义输出介质。
正如名字所示,这些组件把它们附加到Logger日志组件上并将输出传递到输出流中。
你可以把多个Appender组件附加到一个日志对象上。
Log4net框架提供了几个Appender组件。
关于log4net提供的Appender组件的完整列表可以在log4net框架的帮助手册中找到。
有了这些现成的Appender组件,一般来说你没有必要再自己编写了。
但是如果你愿意,可以从log4net.Appender.AppenderSkeleton类继承。
1.2.1.4 Appender Filters(Appender过滤器)一个Appender 对象缺省地将所有的日志事件传递到输出流。
Appender的过滤器(Appender Filters) 可以按照不同的标准过滤日志事件。
在log4net.Filter的名字空间下已经有几个预定义的过滤器。
使用这些过滤器,你可以按照日志级别范围过滤日志事件,或者按照某个特殊的字符串进行过滤。
你可以在API的帮助文件中发现更多关于过滤器的信息。
1.2.1.5 Layout(布局)Layout 组件用于向用户显示最后经过格式化的输出信息。
输出信息可以以多种格式显示,主要依赖于我们采用的Layout组件类型。
可以是线性的或一个XML文件。
Layout组件和一个Appender组件一起工作。
API帮助手册中有关于不同Layout 组件的列表。
一个Appender对象,只能对应一个 Layout对象。
要实现你自己的Layout类,你需要从youtSkeleton类继承,它实现了ILayout 接口。
1.3 SQL语言简述1.3.1 SQL基础SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言,通常使用于数据库的通讯,它是关系数据库管理系统的标准语言。
SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。
使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、Microsoft SQLServer、 Access、 Ingres等等。
SQL语言有着非常突出的优点,它是一种非过程化语言,是统一的语言,并且是所有关系数据库的公共语言。
1.3.2 SQL语句的使用SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据删除和更新,概括起来,它可以分成以下几组:1.DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据。
可以细分为以下的几个语句:1)SELECT:用于检索数据;2)INSERT:用于增加数据到数据库;3)UPDATE:用于从数据库中修改现存的数据;4)DELETE:用于从数据库中删除数据。
2.DDL(Data Definition Language,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象。
如命令:1)CREATE TABLE:用于创建表2)ALTER TABLE:用户更改表的定义3)DROP TABLE:用于删除表4)CREATE INDEX:用于创建索引5)DROP INDEX :用于删除索引3.DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。
1.4 Office 2003简述Office2003 是一套由微软公司开发的办公软件,主要包括Word 2003、Excel 2003、Outlook 2003、PowerPoint 2003等。
在在线考试系统中,主要涉及到Word 2003、Excel 2003分别与数据库进行数据交换,这里主要介绍Word 2003与Excel2003。
1.4.1 Word 2003简述Word 是 Microsoft 公司 Office 办公系列软件中的一个重要组件,即文字处理软件,目前的最新版本为 Word 2003 。
Word 2003 能够用于创建各种文档文件,例如文章、计划、报告、书信、简历等。
使用 Word 2003 可以在文档中加入图片、表格、艺术字,对文档内容进行修饰与美化,进行自动的排版处理、自动更正错误、自动套用格式、自动创建样式、自动生成索引目录等多种功能。