在线考试系统的设计与实现

在线考试系统的设计与实现

摘 要: 随着企业信息化不断推进,办公信息化在企业日常工作中发挥越来越大的作用。结合实际,提出建设在线考试系统平台,更加方便快捷地组织考试以及阅卷工作。在线考试系统采用ASP.NET 、JavaScript 等技术编写实现,使用该系统无需印制大量纸质试卷,并在试卷提交后可对考题进行自动评阅。

关键词: 信息化,考试系统,在线考试

Design and Implementation of Online Exam System

【Abstract 】 With the development of enterprise information, office information plays an increasing important role in enterprise daily work. Taking into account of the actual situation, the company proposed the building of online exam system, which could organize examination and marking work faster and more convenient. Online exam system is developed with ASP.NET and JavaScript; there is no need to print lots of papers, papers will be reviewed automatically after submission.

【Key words】 information, exam system, online exam

1 引言

目前,企业组织考试的传统方法需印制大量纸质试卷,考生完成答题后,需组织人员进行试卷评阅以及成绩统计分析等

工作。随着企业的发展,各种培训及对应的考试越来越多,传统考试方式耗费大量的人力物力,不能满足企业发展的需要。通过信息化手段,编制在线考试系统可以解决传统考试组织过程中的问题。在线考试系统不仅可以避免印制大量纸质试卷,系统自动阅卷功能还可以节省大量的人力,在线考试系统对企业的信息化工作将有很大的推动作用。 2 系统设计

根据企业实际需求,确定在线考试系统应具备以下功能: (1)题库可通过手工输入导入,也可通过Excel 文件导入; (2)支持随机抽题、手工选题以及手工输入三种出卷方式;

(3)考试过程中,用户可对答案进行保存,防止意外事件导致系统关闭; (4)用户考试期间,页面禁止刷新、右键菜单等操作; (5)试卷提交后,系统对考题进行自动评阅;

(6)系统具备成绩统计功能,如考试参加率、考试通过率等; (7)提供成绩查询以及成绩导出Excel 功能;

(8)试卷评分后,考生可查看试题正确答案,错题用标记标出。

系统使用三级权限管理:普通用户、部门管理员以及超级管理员。普通用户登录系统可参加考试、查看历史试卷及成绩;部门管理员可以管理本部门题库及试卷;超级管理员可以管理所有题库以及试题,还可以管理部门管理员。

在线考试系统结构图如图1所示。部门管理员/超级管理员登录界面分为5个子模块:系统管理、题库管理、试卷管理、考试安排以及我的账号。系统管理模块可以查询企业当前人员情况,实时更新当前人员情况,超级管理员可以为部门分配部门管理员。题库管理模块可以手工增加试题,也可以通过Excel 文件批量导入试题。试卷管理模块分为手工选题、随机抽题及手工输入三个子模块。手工选题可以从题库中选择试题组成试卷。随机抽题可为每位考生生成不同试卷。手工输入试卷可以在试卷中插入图片、表格等,主要用于论述题为主的试卷。考试安排模块分为考试安排、评卷管理及成绩管理三个子模块。考试安排模块可以查看当前进行中的考试。评卷管理模块可以评阅已经提交的试卷。成绩管理模块可以对试卷成绩进行查询和统计。

图1在线考试系统结构图

3 系统实现与关键技术

在线考试系统主要采用ASP.NET 以及JavaScript 等技术实现,数据库采用SQL Server 2008。系统界面如图2所示。

图2在线考试系统界面

在线考试系统填空题每道含有空数不定,给出题者处理试卷考分分布带来麻烦;大量题库的手工输入导入需耗费大量时间。本系统设计了针对这些问题的设计了随机选择填空题的算法Random_FillBlank与Excel 导入题库的方法,方便用户选择填空题与批量导入大量试题。 3.1 Random_FillBlank算法

算法主要思想为:统计好题库中每道填空题的空数以及每种空数对应题目数;出题者指定填空题总道数、总空数;系统通过递归算法(CreateSubjectTree)构造出所有可行的方案树;系统自动从方案树中选择一套可行方案的填空题组合(GetRandomProject);根据组合从数据库中随机选择对应空数对应道数的填空题组成试卷。算法主要代码实现如下: private bool CreateSubjectTree (int sum, int spacenum, int count, ref SubjectTreeNode node, ref List> GroupSum) //构造所有可行的方案树 //当执行到最低空格数1时做如下判断

if (spacenum == 1 && sum == count * GroupSum[spacenum - 1].Key) { SubjectTreeNode nodechild = new SubjectTreeNode(); nodechild.count = count;

nodechild.num = GroupSum[spacenum - 1].Key; //将不满足的条件过滤

if (count > GroupSum[spacenum - 1].Value){ return false; } node.child.Add(nodechild); return true; }

else if (spacenum == 1 && sum != count * GroupSum[spacenum - 1].Key){ return false; } //获取该空格数的可能出现的最大题目数 int len = (int)((sum - count) / (GroupSum[spacenum - 1].Key - 1)); if (len > GroupSum[spacenum - 1].Value) len = GroupSum[spacenum - 1].Value; if (len > count) len = count; for (int k = 0; k

SubjectTreeNode nodefather = new SubjectTreeNode(); nodefather.count = k;

nodefather.num = GroupSum[spacenum - 1].Key;

breturn = CreateSubjectTree(sum - k * GroupSum[spacenum - 1].Key, spacenum - 1, count - k, ref nodefather, ref GroupSum); if (breturn) //将不满足的条件过滤 node.child.Add(nodefather); } return breturn; }

/// 在方案树中走随机路线获取解决方案

private string GetRandomProject(ref SubjectTreeNode node){ string strproject = "";

SubjectTreeNode temp = node; while (true){

if (temp.child.Count == 0) break; Random ra = new Random();

int num = ra.Next(0, temp.child.Count); temp = temp.child[num]; if (strproject == ""){

strproject = temp.count.ToString();} else{

strproject = strproject + ";"+ temp.count;} return strproject; }

根据题库中已有试题,算法会随机从可行方案中选择一套组成填空题。如图3所示,出题者指定10道总计30空填空题,系统从方案树中选择4道2空题、2道3空题、4道4空题的方案。用户点击参加考试,系统从题库中随机挑选对应空数道数的填空题组成试卷。

图3填空题随机组题

3.2 Excel导入题库

题库导入使用手工输入与Excel 导入两种方式。少量试题导入可采用手工输入逐条导入试题,试题量大可采用Excel

批量导入的方式。其中,Excel 导入方便用户批量导入试题。Excel 导入题库界面如图4所示。Excel 导入试题部分主要代码如下:

workBook = myExcel.Application.Workbooks.Open(savePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

Excel.Worksheet sheet1 = (Excel.Worksheet)workBook.Worksheets[1]; Excel.Range r1 = sheet1.get_Range("A" + i, Type.Missing); while (r1.Value2 != null){

SubjectOfFillBlank subject = new SubjectOfFillBlank();

subject.Question = sheet1.get_Range("A" + i, Type.Missing).Value2.ToString(); subject.Answer = sheet1.get_Range("B" + i, Type.Missing).Value2.ToString();

subject.BlankNum = Convert.ToInt32(sheet1.get_Range("C" + i, Type.Missing).Value2); …..

list.Add(subject); i++;

r1 = sheet1.get_Range("A" + i, Type.Missing);

}

图4Excel 导入试题

4 结语

企业信息化的发展使得纸质考试电子化成为发展的主流。在线考试结果不仅方便保存,也为企业查找与统计成绩提供方便。在线考试系统的设计与实现大大提高了企业组织员工进行培训考试的效率,为企业节约了大量的人力与物力成本,将为企业后续信息化发展提供有力的支撑。

参考文献

[1] 庞海. 基于ASP.NET 的在线考试系统的分析与实现[J].科技信息(学术研究), 2008.24:117 [2] 李俊, 彭昕彦, 丁胜. 基于ASP 的在线考试系统的设计与实现[J].电脑与信息技术, 2005.13(2):60-62 [3] 闵璐. 基于Web 的在线考试系统设计与实现[J] . 信息技术与信息化,2008.3:25-27

在线考试系统的设计与实现

摘 要: 随着企业信息化不断推进,办公信息化在企业日常工作中发挥越来越大的作用。结合实际,提出建设在线考试系统平台,更加方便快捷地组织考试以及阅卷工作。在线考试系统采用ASP.NET 、JavaScript 等技术编写实现,使用该系统无需印制大量纸质试卷,并在试卷提交后可对考题进行自动评阅。

关键词: 信息化,考试系统,在线考试

Design and Implementation of Online Exam System

【Abstract 】 With the development of enterprise information, office information plays an increasing important role in enterprise daily work. Taking into account of the actual situation, the company proposed the building of online exam system, which could organize examination and marking work faster and more convenient. Online exam system is developed with ASP.NET and JavaScript; there is no need to print lots of papers, papers will be reviewed automatically after submission.

【Key words】 information, exam system, online exam

1 引言

目前,企业组织考试的传统方法需印制大量纸质试卷,考生完成答题后,需组织人员进行试卷评阅以及成绩统计分析等

工作。随着企业的发展,各种培训及对应的考试越来越多,传统考试方式耗费大量的人力物力,不能满足企业发展的需要。通过信息化手段,编制在线考试系统可以解决传统考试组织过程中的问题。在线考试系统不仅可以避免印制大量纸质试卷,系统自动阅卷功能还可以节省大量的人力,在线考试系统对企业的信息化工作将有很大的推动作用。 2 系统设计

根据企业实际需求,确定在线考试系统应具备以下功能: (1)题库可通过手工输入导入,也可通过Excel 文件导入; (2)支持随机抽题、手工选题以及手工输入三种出卷方式;

(3)考试过程中,用户可对答案进行保存,防止意外事件导致系统关闭; (4)用户考试期间,页面禁止刷新、右键菜单等操作; (5)试卷提交后,系统对考题进行自动评阅;

(6)系统具备成绩统计功能,如考试参加率、考试通过率等; (7)提供成绩查询以及成绩导出Excel 功能;

(8)试卷评分后,考生可查看试题正确答案,错题用标记标出。

系统使用三级权限管理:普通用户、部门管理员以及超级管理员。普通用户登录系统可参加考试、查看历史试卷及成绩;部门管理员可以管理本部门题库及试卷;超级管理员可以管理所有题库以及试题,还可以管理部门管理员。

在线考试系统结构图如图1所示。部门管理员/超级管理员登录界面分为5个子模块:系统管理、题库管理、试卷管理、考试安排以及我的账号。系统管理模块可以查询企业当前人员情况,实时更新当前人员情况,超级管理员可以为部门分配部门管理员。题库管理模块可以手工增加试题,也可以通过Excel 文件批量导入试题。试卷管理模块分为手工选题、随机抽题及手工输入三个子模块。手工选题可以从题库中选择试题组成试卷。随机抽题可为每位考生生成不同试卷。手工输入试卷可以在试卷中插入图片、表格等,主要用于论述题为主的试卷。考试安排模块分为考试安排、评卷管理及成绩管理三个子模块。考试安排模块可以查看当前进行中的考试。评卷管理模块可以评阅已经提交的试卷。成绩管理模块可以对试卷成绩进行查询和统计。

图1在线考试系统结构图

3 系统实现与关键技术

在线考试系统主要采用ASP.NET 以及JavaScript 等技术实现,数据库采用SQL Server 2008。系统界面如图2所示。

图2在线考试系统界面

在线考试系统填空题每道含有空数不定,给出题者处理试卷考分分布带来麻烦;大量题库的手工输入导入需耗费大量时间。本系统设计了针对这些问题的设计了随机选择填空题的算法Random_FillBlank与Excel 导入题库的方法,方便用户选择填空题与批量导入大量试题。 3.1 Random_FillBlank算法

算法主要思想为:统计好题库中每道填空题的空数以及每种空数对应题目数;出题者指定填空题总道数、总空数;系统通过递归算法(CreateSubjectTree)构造出所有可行的方案树;系统自动从方案树中选择一套可行方案的填空题组合(GetRandomProject);根据组合从数据库中随机选择对应空数对应道数的填空题组成试卷。算法主要代码实现如下: private bool CreateSubjectTree (int sum, int spacenum, int count, ref SubjectTreeNode node, ref List> GroupSum) //构造所有可行的方案树 //当执行到最低空格数1时做如下判断

if (spacenum == 1 && sum == count * GroupSum[spacenum - 1].Key) { SubjectTreeNode nodechild = new SubjectTreeNode(); nodechild.count = count;

nodechild.num = GroupSum[spacenum - 1].Key; //将不满足的条件过滤

if (count > GroupSum[spacenum - 1].Value){ return false; } node.child.Add(nodechild); return true; }

else if (spacenum == 1 && sum != count * GroupSum[spacenum - 1].Key){ return false; } //获取该空格数的可能出现的最大题目数 int len = (int)((sum - count) / (GroupSum[spacenum - 1].Key - 1)); if (len > GroupSum[spacenum - 1].Value) len = GroupSum[spacenum - 1].Value; if (len > count) len = count; for (int k = 0; k

SubjectTreeNode nodefather = new SubjectTreeNode(); nodefather.count = k;

nodefather.num = GroupSum[spacenum - 1].Key;

breturn = CreateSubjectTree(sum - k * GroupSum[spacenum - 1].Key, spacenum - 1, count - k, ref nodefather, ref GroupSum); if (breturn) //将不满足的条件过滤 node.child.Add(nodefather); } return breturn; }

/// 在方案树中走随机路线获取解决方案

private string GetRandomProject(ref SubjectTreeNode node){ string strproject = "";

SubjectTreeNode temp = node; while (true){

if (temp.child.Count == 0) break; Random ra = new Random();

int num = ra.Next(0, temp.child.Count); temp = temp.child[num]; if (strproject == ""){

strproject = temp.count.ToString();} else{

strproject = strproject + ";"+ temp.count;} return strproject; }

根据题库中已有试题,算法会随机从可行方案中选择一套组成填空题。如图3所示,出题者指定10道总计30空填空题,系统从方案树中选择4道2空题、2道3空题、4道4空题的方案。用户点击参加考试,系统从题库中随机挑选对应空数道数的填空题组成试卷。

图3填空题随机组题

3.2 Excel导入题库

题库导入使用手工输入与Excel 导入两种方式。少量试题导入可采用手工输入逐条导入试题,试题量大可采用Excel

批量导入的方式。其中,Excel 导入方便用户批量导入试题。Excel 导入题库界面如图4所示。Excel 导入试题部分主要代码如下:

workBook = myExcel.Application.Workbooks.Open(savePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

Excel.Worksheet sheet1 = (Excel.Worksheet)workBook.Worksheets[1]; Excel.Range r1 = sheet1.get_Range("A" + i, Type.Missing); while (r1.Value2 != null){

SubjectOfFillBlank subject = new SubjectOfFillBlank();

subject.Question = sheet1.get_Range("A" + i, Type.Missing).Value2.ToString(); subject.Answer = sheet1.get_Range("B" + i, Type.Missing).Value2.ToString();

subject.BlankNum = Convert.ToInt32(sheet1.get_Range("C" + i, Type.Missing).Value2); …..

list.Add(subject); i++;

r1 = sheet1.get_Range("A" + i, Type.Missing);

}

图4Excel 导入试题

4 结语

企业信息化的发展使得纸质考试电子化成为发展的主流。在线考试结果不仅方便保存,也为企业查找与统计成绩提供方便。在线考试系统的设计与实现大大提高了企业组织员工进行培训考试的效率,为企业节约了大量的人力与物力成本,将为企业后续信息化发展提供有力的支撑。

参考文献

[1] 庞海. 基于ASP.NET 的在线考试系统的分析与实现[J].科技信息(学术研究), 2008.24:117 [2] 李俊, 彭昕彦, 丁胜. 基于ASP 的在线考试系统的设计与实现[J].电脑与信息技术, 2005.13(2):60-62 [3] 闵璐. 基于Web 的在线考试系统设计与实现[J] . 信息技术与信息化,2008.3:25-27


相关内容

  • 最新山东理工大学软件工程学院毕业设计选题参考表
  • 最新山东理工大学软件工程学院毕业设计选题参考表 B 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 题目 数据挖掘技术在大学生心理问题分析中的应 ...

  • 文献检索课程报告
  • 文献检索课程报告 班级:理工计科1211 学号: 03 姓名:dreamkunk 一 选题简介 课程名称:C语言网络考试系统的开发与研究 C-language network test system development and research 课程分析:关键词:网络考试系统.试卷生成算法 ne ...

  • N多毕业设计题目
  • 基于Ajax技术的WEB应用的设计 又快到毕业的时候了,大家该准备做毕业设计了.大学问问特意收集了一些毕业设计(论文)的题目,供大家选择. VB售楼管理系统 VB无纸化考试系统 VB小区物业管理系统 VB航空公司管理信息系统 VB计算机机房管理系统 VB房地产评估系统VB+SQL2000 VB光盘信 ...

  • 毕业论文选题
  • 毕业论文(设计)选题 一.信息管理专业 题目1.基于PHP的投票管理系统(设计类) 参考语言:PHP,MYSQL 要求:能够使用PHP编程语言及MYSQL的数据库知识设计一个投票管理系统,能够实现:申请投票主题.投票.统计投票结果.版主管理等主题模块 题目2.基于PHP的产品进销存管理系统(论文类) ...

  • 毕业设计论文-上机考试系统的设计与实现
  • 忻州师范学院成教院 题 目 专 业 年 级 指导教师 学员姓名 学 号 上机考试系统的设计与实现 计算机科学与技术 08级 杜 娟 珍赵 晋 明 年 5月 26日 (毕业论文) 2011 目 录 摘要·················································· ...

  • 计算机科学与技术毕业论文
  • 毕业 设计(论文) 课题名称 姓 名 学 号 专 业 在线考试系统的设计与研发 XXX XXXXXXX 计算机科学与技术 摘 要 随着计算机网络技术及相关技术的不断发展,考试的手段和媒介也在发生着巨大的变化,传统的考试方式和手段正面临着强烈的冲击.计算机网络技术应用于教育领域,经历了从传统的纸笔考试 ...

  • 在线考试系统---毕业设计开题报告
  • 毕业设计开题报告 题 目 名 称 院 (系) 计算机科学学院专 业 班 级 XXXXXXXX 学 生 姓 名 指 导 教 师 辅 导 教 师 开题报告日期 2015年1月9日 在线考试系统设计 学 生:XXX ,计算机科学学院 指导老师:XXX ,计算机科学学院 一.题目来源 生产/社会实际等 二. ...

  • 考试系统防作弊功能的实现
  • 第2卷第2期 2010年3月 JOURNAL 南 OF 阳理 NANYANG 工 学 院 学 OF 报 TECHNOLOGY V61.2No.2Mar.2010 INSTITUTE 文章编号:1674-5132(2010)02-0021-03 考试系统防作弊功能的实现 郭东恩,贾满磊,王绪宛 (南阳 ...

  • 详细设计说明书
  • 详细设计说明书 1.引言 1.1编写目的 在详细设计中,可以参考概要设计说明书,在概要设计对系统所做的模块结构设计的基础上,对系统进行详细设计.在以后的软件测试以及软件维护阶段也可以参考此说明书,以便于了解在概要设计过程中完成的各模块设计结构,活在修改时找出在本极端设计的不足或错误. 1.2项目背景 ...