1 绪论1.1 开发的意义随着计算机应用的迅猛发展,网络应用不断扩大,远程教育和虚拟大学作为一种新型的教育方式正逐步渗透到传统教育体制中。
在很多大学和社会其他部门都已开设了远程教育,通过计算机网络实现异地教育和培训。
远程教育包括很多环节,例如教学系统、答疑系统和考试系统等,其中最重要的一个环节就是网上考试系统。
网上考试是现阶段研究的一个热点。
它是建立在国际互联网上的应用系统,客户端只需要能够访问网络而不需要任何配置,考试也不受地域的局限。
服务器端承载着试题的抽取、获取答案以及判分等管理功能。
这与传统考试方式完全不同,减轻了出试卷、判试卷的工作量,也提高了准确性。
1.2 主要实现的功能对于网上考试系统,要实现的功能有:(1)前台学生端:学生登录模块、试卷抽取模块、试题抽取模块、评分模块、计时器模块、成绩查询模块等。
(2)后台教师端:试卷管理功能、试题管理功能、考生管理功能、部门管理功能、主观题判分功能、成绩统计功能等。
1.3 开发工具简介利用ASP作为前台开发工具,Access数据库软件作为后台数据库管理的工具集和应用程序的开发环境[1]。
ASP内含于IIS中,IIS+ASP构成三层式Web结构的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大[2]。
1.3.1 Access 数据库介绍Access数据库软件是一个关系型数据库管理系统,它为用户提供了数据库管理的工具集和应用程序的开发环境。
Access同时也是一种数据库管理系统(DBMS),它同Oracle、DBASE和Foxpro等数据库软件系统一样,用于构造数据库应用程序并实行对数据库的统一管理[3]。
用户可以通过Access提供的开发环境及工具集方便地构建数据库应用程序,大部分是直观地可视化地操作,无需编写程序代码便可方便地完成数据库的管理。
它的优点是:(1)ACCESS是真正的关系型数据库管理系统。
(2)ACCESS是面向数据库开发人员和最终用户的数据库管理系统。
(3)ACCESS是开放式的数据库管理系统。
(4)ACCESS内置了大量的内部函数。
(5)可视化的操作工具和方便的向导。
1.3.2 ASP介绍ASP即Active Server Pages,是一套微软开发的服务器端脚本环境,内含于IIS 3.0和4.0之中[4]。
通过ASP,我们可以结合HTML网页、ASP指令和ActiveX空间建立动态、交互且高效的web服务器应用程序。
ASP程序主要运行在Windows系列的操作系统上,如Windows 2000、Windows XP、Windows Server 2003等[5]。
通过PWS或IIS作为服务器软件来执行ASP程序,当程序执行完毕后,服务器将执行的结果返回给客户端,这样就减轻了客户端服务器的负担,也使其客户端与平台无关,从而大大提高了交互的速度[6]。
ASP的特性:1、任何开发工具皆可发展ASP只要使用一般的文书编辑程序[7],如Windows记事本,就可以编辑。
当然,其他网页发展工具,例如,FrontPage Express、FrontPage等也都可以。
2、语言相容性高ASP与所有的ActiveX Script语言都相容,除了可结合HTML、VBScript、Java Script、Active X服务器组件来设计外,还可经由“plug-In(外挂组件模组)的方式,使用其他厂商(Third Party)所提供的语言[8]。
3、隐密安全性高如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP 程序代码是看不到的。
4、易于操控数据库ASP可以轻易地通过ODBC(Open Database Connectivity)驱动程序连接各种不同的数据库[9],例如:Access、Foxpro、dBase、Oracle等等。
另外,ASP亦可将“文本文件”或是“Excel”文件当成数据库用[10]。
5、面向对象学习容易ASP具备面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便且能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,使用ASP 内建的“Application”对象或“Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息[11]。
1.3.3 ADO 介绍ADO是ASP内置的重要组件,其主要目的是为了存取数据源的数据或增加数据到指定的数据源。
一般来说ADO必须配合ODBC(Open Database Connectivity)数据库前端存取标准界面,并以SQL命令来操作关系式数据库[12]。
ODBC是一个由微软公司所制定的数据库前端存取标准界面,其目的是为了让客户端的数据库应用程序可以存取各种不同的数据库,包括关系数据库和非关系数据库,例如Oracle、Microsoft SQL Server、Informix、Foxpro、Access、Excel及Dbase等。
换句话说,我们只要安装不同的ODBC驱动程序,就可以连接到不同的数据库并存取该数据库的数据。
因此,要想通过ASP来存取数据库,ODBC必不可少。
ADO(ActiveX Data Objects)是微软公司提供的网页开发者在网页中存取数据库的最新技术,ADO主要由Connection对象,Command对象,Parameter对象,Recordset 对象,Field对象,Property对象,及Error对象与Fields数据集合,Properties数据集合,Parameters数据集合,及Error数据集合四个数据集合组合而成[13]。
Connection对象负责与指定的数据源进行连接。
Command对象负责对数据库提供请求,也就是传递指定的SQL命令。
Parameter对象负责传递Command对象所需的SQL命令参数。
Recordset对象负责浏览从操作数据库中取出的数据。
Field对象表示指定Recordset对象的数据字段。
Property对象表示ADO的各项对象属性值,换言之,每一个ADO对象都会有一组描述或控制对象行的属性[14]。
Error对象负责记录连接过程所发生的错误信息。
皮匠网—开放、共享、免费的咨询方案报告文库咨询人士学习成长与交流平台2系统分析2.1 系统功能分析在线考试系统从功能上分主要分为前台考生端和后台教师端两部分功能。
前台考生端为考生提供登录的页面,考生进入考试系统后,完成试题抽题、在线答题、评分、成绩查询等功能。
在线考试与一般的单机考试是不同的,鉴于考试环境一般为机房,考生之间的距离很近,为了规范性,对于每个考生来说,考生的试题的题量都应是相同的,但试题并不相同。
另外,系统还应该对时间进行控制,时间到了会要求考生交卷。
考生选择答案提交后,应该有计算机自动判卷,得到成绩后显示出来。
考试完毕后,可以返回登陆界面或继续考试。
前台考生系统需要具有的功能模块为:学生登录模块:在线考试安全是十分重要的问题,该模块主要进行学生身份注册和具有校验码的认证登录。
试卷抽取模块:为考试提供选择试卷类型的功能,为试题抽取做好准备。
试题抽取模块:根据选定的试卷类型,从题库中随机选择试题组成试卷并显示在考生界面中。
评分模块:考生答题完毕后能够完成客观题的在线判分功能。
计时器模块:在考试过程中为考生提供倒计时时间。
如果考生在规定的时间内未完成那个题目,也会强制提交试卷。
成绩查询模块:考生考试完毕后,可以查询自己的考试成绩。
在线考试的后台管理主要由教师负责,完成试题库的维护、试卷的设置、考生信息管理、成绩统计等功能。
一般而言教师端应该具有如下功能:试卷管理功能:完成试卷的设置、修改以及删除等功能。
教师设置试卷的相关信息后,考生则可以在前台抽取该种类型的试卷。
试题管理功能:为了避免试卷中试题的重复率,需要提供一个题量较大的题库。
提供添加、修改以及删除试题等管理功能。
考生管理功能:在线考试系统能够在后台由教师管理考生信息。
部门管理功能:主要完成所在学校、系或者班级的管理。
主观题判分功能:目前为止对于标准化考试的题型可以实现自动的判卷功能,但是对于主观题则很难自动完成判分的过程。
为了更为准确地给出主观题的分数,设置主观题的判分功能。
成绩统计功能:为了更好地掌握考生的考试结果,设计统计考生成绩的功能。
系统功能模块图如图2.1。
图2.1 在线考试系统功能模块2.2 数据库设计2.2.1数据库功能分析本系统后台采用ACCESS 2000作为数据库服务器,根据系统的功能需求,设计了网上考试系统。
数据库主要包括如下数据表:题库表:主要包括试题的ID、试卷号、试题内容、试题答案、试题分数、试题难度以及一些附加的内容。
值得指出的是题库表有一个随机值,是用来作为随机抽题的标识。
用户(教师、学生)信息:用户的ID、用户名、密码等内容。
试卷表:主要包括试卷的ID、试卷的名称、考试时间、出卷人、试题难度以及附加的内容。
值得指出的是试卷表中有题目数的设置,试卷根据这个设置进行试卷各题型题目数的确定。
考生答案表:主要包括考生的ID、题目的ID、题目的正确答案、试题分数、考生得分以及一些附加的内容。
考生分数表:主要包括考生的ID、试卷的ID、分数等内容。
部门表:主要包括部门的ID、部门名称。
本系统中用来保存考生所在的系及班级信息。
2.2.2 数据库表结构设计根据数据库的分析,各数据表结构如下:(1)后台教师信息表(Administrators)主要存储后台教师的基本信息,包括管理员登陆账号、姓名、登录密码、性别以及所在部门。
其结构如表2.1所示表2.1 后台教师信息表(2)试卷信息表(subject)试卷信息表用来保存试卷的基本信息,能够存储试卷的科目号、科目名称、所属部门、考试时间、出卷人、试卷难度、单选题数量、单选题分值、多选题数量、多选题分值、填空题数量、填空题分值以及总分等情况。
其结构如表2.2所示。
表2.2试卷信息表(3)考生信息表(Student)考生信息表主要记录考生的准考证号、考生姓名、登录密码、性别、学号、系别、年级、班级及照片信息。
其结构如表2.3所示。
表2.3 考生信息表(4)试题信息表(question)试题信息表记录了试题编号、所属科目号、试题、试题类型、试题难度、试题的题型、备选答案、正确答案等信息。
其结构如表2.4所示。
表2.4 试题信息表(5)考生试卷答案表(answer)考生试卷答案表用来存储考生考试的相关信息,以及自动判卷后各题的得分,包括考生的准考证号、科目号、试题号、考生答案、正确答案、分数、考生得分以及题目类型的信息。