基于ASP.NET的在线考试系统的设计研究

时间:2022-09-13 11:18:16

基于ASP.NET的在线考试系统的设计研究

【摘 要】随着Internet技术的发展,开发基于Web的管理信息系统(MIS)、最大限度利用职业技术学校现有资源、提高教学质量是职业技术学校教学上的新的研究课题。本文针对的在线考试系统的设计进行了分析。

【关键词】;在线考试系统;设计方案

随着互联网与计算机软硬件技术的快速发展,建立在其上的远程教育成为现代教育技术未来发展方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。在线考试是现代远程教育研究的一个重要部分,它利用计算机和网络进行组卷、考试、评分,实现“教考分离”,相对减少了考试各环节的人为主观因素,更高速、客观、安全的组织考试,把教师从繁重的组卷、评卷、成绩分析等工作中解放出来,提高考试的效度和信度,对提高教学效果和教学质量具有重要意义。

1、系统设计与实现

本系统主要需要实现对教师管理员以及考生的身份验证,试题的录入和随机抽取试题组成试卷,考试过程中的试卷无刷新,考试的计时功能,考生交卷后客观题的系统自动评分,教师和后台管理人员对试题信息的单独管理。针对考试系统,考虑到数据库的数据比较庞大,本系统采用SQL2005数据库存储数据信息。根据考试系统的要求,我们需要设计管理员信息表、考试科目信息表、考生记录信息表、考生信息表、教师信息表、试题信息表。

1.1文件夹组织结构

每个网站都会有相应的文件夹组织结构,如果网站中网页数量很多,可以将所有的网页及资源放在不同的文件夹中。如果网站中网页不是很多,可以将图片、公共类或者程序资源文件放在相应的文件中,而网页可以直接放在网站根目录下。在线考试系统就是按照前者的文件夹组织结构排列的。

1.2公共类设计

在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。本系统中创建了一个公共类BaseClass类,其中包含建立数据库连接的DBconn 方法、绑定GirdView控件的BindDG方法、执行SQL语句的EXsql方法、判断考生登录的ChkStu方法以及判断教师登录的ChkTea方法和判断管理员登录的ChkAdmin方法。

1.3登录的实现

本系统的登录包括教师、考生、管理员三种不同身份的登录,它们的实现方法大致都差不多。在这里我们主要谈谈考生的登录实现,考生进入登录页面后,先输入自己的准考证号和自己的密码同时需要选择学生身份进行登录。输入正确后单击登录按钮则可以进入考试界面进行考试。

2、设计方案的选择

在通常的考试中,相同科目的考生使用相同的试卷,而在线考试系统中则可以做得更好,即相同科目的考生却使用看起来不一样的试卷。如果仅是模拟通常意义的考试,则是容易实现的,但如果能够针对不同的考生呈现不同的在线试卷,则可以有两种方案可以选择:一是针对每个考试生成不同的具有相同难度系数的试卷,二是使用相同的试卷但呈现不同的排列。

由于计算机应用基础课程同时在线考试的人数可能达到上千人,采用方案1要求准备上千份试卷,这是最直接的实现方式。但在考试过程中由于需要频繁地存取试卷数据库,以每份试卷100K字节计算,一千人同时考试则可以产生超过100M/S的突发数据流,如果考虑到数据的封装则会更多,同时还要大量占用处理器及内存资源,这对计算机硬件系统的配置以及网络的性能带来较高的要求,也给在线考试软件的稳定运行带来隐患。

采用相同命题不同呈现方式即方案2,虽然不能真正做到对不同考生呈现不同命题,但却是较适合于基于Web技术的在线考试系统的命题呈现方式。很显然,这种呈现方式不会产生数据拥堵现象,提高了操作的响应性能,较少地占用系统资源,有益于在线考试系统的稳定运行。

3、试卷呈现方法的实现

实现相同的试卷但呈现不同的排列的呈现方式的策略是:①从试卷库中选择将要考试的试卷,将其命题映射到计算机内存中;②针对每个考生产生不同的命题随机序列;③根据不同的命题随机序列显示在线试卷。

3.1实现试卷中命题到内存的映射

计算机应用基础课程试卷中的命题类型可分为选择题和操作题两种,因此需要根据命题在数据库中的关系模式来建立命题类的定义,这里给出命题中选择题的类定义,其他类型命题可做类似处理,代码片段如下(C#语法):

Public class OneQuestion{

Public int PaperID;//试卷ID

Public int KindID;//命题类型

Public int QuestionID;//命题ID

Public int Mark;//分数

Public int NumberOfSelect;//可选项个数

Public String Content;//命题内容

Public String Options;//可选项

Public String answer;//答案}

命题类提供了命题在内存中的数据结构,因此可以从试卷库中读取试卷命题并保存在命题对象数组中,下列Get Paper Contents函数(C#语法)读出选择题到数组中:

Private bool Get Paper Contents(){

ArrayList ar=new ArrayList();//数组ar用于保存选择命题集

SqlDataReader dr=null;//数据集dr表示数据库中试卷的关系模式

Int paperid=Convert.ToInt32(Application["paper

ID"].ToString(),10);//取得试卷ID

ExamineLB examlib=newExamineLB();//创建试卷库读取对象

dr=examlibGetPaperContents(paperid);//读取命题//依次将命题映射到数组中

上一篇:GPS精确定位一次安装多块扭王字块体的应用研究 下一篇:浅析煤炭企业采煤方法的选择及影响要素