在线考试系统毕业设计.doc
《在线考试系统毕业设计.doc》由会员分享,可在线阅读,更多相关《在线考试系统毕业设计.doc(52页珍藏版)》请在冰豆网上搜索。
![在线考试系统毕业设计.doc](https://file1.bdocx.com/fileroot1/2022-11/2/af549064-629a-48d5-9537-7e161d1c7a79/af549064-629a-48d5-9537-7e161d1c7a791.gif)
软件工程硕士学位论文
第1章考试系统概述
1.1计算机考试系统的研究意义
传统的基于纸和笔的考试老师要花费大量的时间和精力出题、改卷、统计分数等,存在诸多弊端:
工作量大、周期长、反馈能力弱、人为的因素影响考试成绩。
随着高校扩招和各类考试自动化出卷批改的要求,迫切需要一种高效、快捷、科学的考试方式。
随着计算机技术与网络技术的不断发展,利用计算机网络技术实现的计算机网上考试取代传统的手工考试成为一种趋势。
利用计算机对数据库的并发存取功能和网络传输特性,实现高效、准确和科学的网上考试将成为现代教育方式中的一种重要手段。
它的优点主要体现在以下几个方面:
1.出卷方便快捷。
通过现成的题库系统,只要输入考卷的难度级别、试卷的题型题量等约束条件,软件会自动生成符合要求的试卷,简便、快捷、公平;
2.阅卷准确快速。
通过计算机阅卷,可以大大减轻教师阅卷的工作量,提高教师的工作效率,同时提高阅卷的准确性;
3.成绩分析统计科学直观。
成绩分析统计由计算机自动完成,可以方便地统计及格率、优秀率和每题的得分情况等。
计算机考试方式的优越性较之传统方式,既灵活方便,又高效可靠,还能及时反馈教学情况,减少诸多中间环节,提高教学效率[1]。
我校有一万多学生,每个学期都要组织大规模的考试,耗费老师大量的时间和精力,如果能够把本课题的考试系统应用到教学实践,一定能够节省很多的时间和精力,提高阅卷效率和正确率。
1.2计算机考试系统国内外研究现状
计算机考试系统指的是由计算机软件来辅助测试,计算机辅助测试简称CAT。
60年代初CAT起源于美国,经过40多年的发展,已经在国内外得到了广泛应用。
1.2.1国内外在用的考试系统
国外有许多专门的考试机构采用计算机辅助测试对考试对象进行考核,比较著名的有美国SylvanLearningSystemInc,它在全世界一百多个国家和地区有数千个考试中心,提供近百个不同类型,一千多种考试。
国内也有许多考试采用了计算机考试系统。
1.2000年开始TOEFL考试在中国采用计算机考试模式[1];
2.人事部组织的专业人员计算机应用能力考试;
3.微软认证、Cisco认证等;
4.全国范围内的“全国计算机等级考试”,“NIT考试”都采用计算机考试模式;
5.浙江省大学生计算机一级等级考试全部采用计算机考试,二级等级考试的部分内容采用了计算机考试;
6.还有很多大学和科研机构采用了自主研发的考试系统,例如浙江大学、浙江师范大学等院校;
7.交通管理部门组织的驾驶员理论考试。
以上的考试系统大多比较完善,但是一些计算机基础考试系统还有一些不足,比如试题的实用性程度不高;为了方便计算机批改,操作题比较死板;批卷的智能化有待提高。
1.2.2考试系统分类
以题库构成为标准可以把计算机考试系统分为三种:
1.不以题库为基础的考试,试卷以单份为主,多用于心理测验和调查研究;2.题库由试卷库构成,试卷库指多份试卷,随机抽取一份给学生考试;3.题库由试题库构成,试题库指海量试题,海量试题按照一定组卷策略组卷[2]。
对计算机辅助测试系统的分类还有很多方法。
按试卷是否基于题库可分为基于题库的考试系统和非基于题库的考试系统;按题量是否定长可分为定长和不定长的考试系统;按采用的测试理论可分为基于经典测试理论和基于项目反应理论的考试系统;按是否是自适应考试可分为传统的和自适应的考试系统,自适应组卷指依靠大型题库,自行适应被测试人员水平,灵活实施测试难度。
1.2.3组卷算法分类和进展[3][4]
组卷算法的好坏直接关系到试卷的成卷质量,是考试系统的一个研究重点。
试题库组卷的计算机考试系统根据组卷算法的不同可以分为以下几种:
1.随机组卷,这是最低级的组卷算法,随机地从试题库中抽取一定数量的试题组成试卷,对抽取的题目没有任何约束条件[5]。
2.多重目标约束组卷,试题设置题号、难度、分值、重要性、知识点等属性值,然后根据多种属性值的约束条件组卷。
可以使用深度优先或者广度优先算法搜索试题。
该组卷算法较之于随机组卷算法有很大进步,生成试卷的质量比较高。
3.基于遗传算法的组卷算法,遗传算法是一种模拟大自然生物进化过程的计算模型。
遗传算法的群体搜索策略为多目标优化提供了非常合适的解决方案[6]。
4.遗传算法的改进,例如判断优化目标个体优劣的基于偏好的多目标调和遗传算法[7]。
5.多种人工智能算法的组合,例如遗传算法与模拟退火算法的结合[8],遗传算法与蚂蚁算法的结合[9]。
6.各类算法的扩展,例如基于学生BOSM模型的智能组卷算法[10];分段随机抽选法对随机组卷的改进[11];增加信息反馈提高试题属性质量,将学生答题的情况反馈给试题,修正试题的难度等[12]。
组卷算法的发展方向是在海量试题库的基础上运用人工智能生成试卷。
1.2.4考试系统的实现模式分类
从逻辑上来说,一个典型网络应用由三部分组成:
表示逻辑层、业务逻辑层和数据逻辑层。
其中表示逻辑层直接面向用户,主要完成应用的前端界面处理,即人机界面处理;业务逻辑层实现应用的业务规则处理,决定程序的流程;数据逻辑层是应用中对数据进行管理的部分,主要完成应用对数据的存取、更新、管理等工作以及访问数据的安全性、完整性、一致性。
计算机考试系统有两种主要模式:
客户机/服务器模式(Client/Server)和浏览器/服务器(Browser/Server)模式。
C/S模式于1989年由麻省剑桥的ForesterResearch首先提出[13],是客户进程从服务进程中请求服务的一种计算方式,属于协同处理的范畴。
根据表示层、应用层、数据层分布在几层,C/S模式可以分成两层C/S模式和三层C/S模式。
两层模式将一个考试系统的三个逻辑层分布在Client端和Server端,Client和Server通过网络联结起来。
通常Client端和Server端分别运行在不同的计算机中,Client端一般安装于普通计算机,Server端一般安装在功能更强的服务器。
将业务逻辑独立出来,就产生了三层C/S模式。
在三层C/S模式中,表示逻辑位置不变,仍放在Client端,业务逻辑则放在一个独立的中间服务器上,数据逻辑在另一个服务器上[14]。
随着网络的发展,出现了B/S模式。
B/S模式在本质上也是一种C/S结构,它由传统的C/S结构发展而来,是一种在Web上的应用。
与传统C/S结构不同的是,B/S的表示层为Web浏览器,功能层为Web服务器,使用ASP、JSP或PHP等技术。
相对C/S结构而言,B/S结构的优点有:
简化客户端;易于维护;易于升级;用户操作简便易学;便于网上发布消息。
但是B/S结构也有一些缺点:
1.交互性弱。
C/S模式的客户端是完整的应用程序,在出错提示、帮助等方面都有强大的功能并且可以在子程序间自由切换。
B/S模式虽然由JavaScript、VBScript提供了一定的交互能力,但和C/S相比功能就少多了;
2.安全性低。
由于采用开放的TCP/IP协议和解释型的脚本语言编程,数据的流向不固定,容易被截取破译,其安全性有限;
3.数据处理能力弱。
B/S模式的数据处理多用解释脚本语言实现,无法开发出利用可视化工具开发的功能强大的编译型应用程序。
C/S和B/S模式各有优缺点,适合不同的场合。
一般而言,B/S模式的缺点就是C/S模式的优点,而B/S模式的优点就是C/S模式的缺点。
C/S模式相比而言有以下优点:
1.保密性好。
可以设置专门的加密函数,针对不同的数据设置不同的加密方式和加密等级。
而B/S模式采用开放的TCP/IP协议和解释型的脚本语言编程,安全性较低;
2.数据处理能力强。
可以连接多种关系数据库;
3.交互性强。
相对浏览器而言可以生成更加复杂的图形界面和允许更多的用户交互方式[15];
4.可控性好。
服务端可以控制连接的时间、连接的IP、连接用户等信息,适合安全性要求高的应用;
5.数据分析统计功能强。
可以批改多种题型的试题,并且进行复杂的数据分析和统计。
本课题的网上考试系统是使用Java语言实现的二层C/S模式系统。
根据使用对象和实现功能的不同,客户端分为三种类型:
学生使用的客户端,教师使用的客户端和管理员使用的客户端。
1.2.6考试系统的开发平台分类
考试系统由应用程序和数据库组成,开发程序主要有微软的VisualBasic、VisualC++、VisualFoxPro(VFP)和PowerBuilder、Delphi、JBuilder等,数据库主要有本地数据库Access和网络数据库SQLServer、MYSQL、ORACLE等。
从理论上说开发平台可以由任何一种开发程序和数据库组成,也就是任意两两组合,但是综合考虑系统需求、软件的兼容性等方面,往往有比较合适的组合。
对于数据库的选择,可以考虑数据存取速度、容量和网络存取等要求。
如果考试系统是单机版的,那么可以选择Access数据库;如果数据库数据的容量在几十万行之内,并且要求网络存取,那么可以选择SQLServer;如果数据库中的数据非常大,那么从安全性和速度等方面考虑采用ORACLE是最好的选择。
如果数据库采用SQLServer,有很多开发程序支持它,分别使用不同的技术连接和管理数据库。
1.VB+SQLServer,DAOs方法、ODBCAPI或VBSQL方法管理数据库;
2.VC+SQLServer,开放数据库连接OpenDatabaseConnectivity(ODBC)实现数据库访问;
3.Delphi+SQLServer,数据库引擎BorlandDatabaseEngine实现连接;
4.VFP+SQLServer,SQLPassThrough(SPT)技术直接访问ODBC函数,并把SQL语句发送给服务器执行;
5.Java+SQLServer,JDBC实现数据库访问。
1.2.7计算机考试系统的发展趋势[16]
计算机考试系统朝着智能化的方向发展,例如组卷的智能化,批卷的智能化等。
另外考试系统对学生答题情况的统计和成绩分析的要求也越来越高,据此掌握教学质量。
出于考试的严肃性,网上考试系统对安全性、容错性和保密性的要求也越来越高。
1.3J2SE实现网上考试系统
现在已经有了多种实用的考试系统,应用于各种类型的考试,那么为什么要开发本网上考试系统呢,主要出于以下几点考虑:
1.虽然各种类型考试系统研究很多,但是和操作系统无关或者支持多操作系统的考试系统的研究还比较少。
Java语言和平台无关,可以使用JBuilder开发多平台下的J2SE程序。
2.商品化软件一般只能获得考试系统的学生端,出于系统保密的原因,有时甚至不能批改试卷,例如省计算机一级考试下发到学校的是考试客户端,考试结束后学生答题数据包统一上交批改。
但是教师希望批改后统计和分析学生成绩,并且以直观的方式显示,从而发现问题改进教学。
3.自主控制考试题目,可以用于单元学习后的单元测试。
4.自主扩充修改题库,随时增加修改题目。
现有的考试系统不能完全符合我校定制的需求。
我校的老师对考试系统有特定的要求,例如可以在,多种方式分析成绩等。
结合教学和研究的需要,本人开发了基于J2SE的网上考试系统。
本考试系统采用C/S模式的软件体系结构,客户端使用Java集成开发环境JBuilder开发调试生成,数据库使用MicrosoftSQLServer2000技术,使用JDBC技术连接数据库。
1.3.1J2SE概念
本课题中的考试系统是基于J2SE的C/S模式考试系统,具体使用Java的开发平台JBuilder实现。
JBuilder的集成开发环境IDE广受业界赞誉,其可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。
JBuilder集成了软件开发、调试、部署、管理、版本控制等工具,提高了项目开发速度[17]。
Java的开发平台称之为JDK,