第五章 ASP实例设计开发在线考试系统5.1基本简介 试题库与在线考试系统采用ASP、HTML、Frontpage2000/98、Javascript、VBScript、Java编程语言、图形编辑与数据库等工具,通过基于WEB服务器访问纯WEB页面,实现在线组卷与考试等各项相关的功能。 它是专门用于试题(卷)录入、查询、修改、删除、组卷和参加在线考试的ASP应用程序。其最大的特点是开放性、方便性和灵活性。主要是指一般的用户不仅可以轻松地向题库添加、修改和查询试题(卷),而且还可以自动新增科目并建立相应的数据表;它还允许用户根据自己的需求,从现有的试题库中灵活地抽取各类试题,以组建适合于自身所需的试卷。而且,自测试卷的难易程度和形式以及各大题分数等都由用户根据需要确定。考生通过浏览器进行有效的身份验证登录后,输入正确的试卷编号,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提交。一旦考生做完后便能立即看到预先记录在库中的标准答案和自己的平时成绩(正规考试试卷不得随意更改以及答案将不及时提供),并且其答案和分数将被记入库中以供审核和查阅,并作为成绩评估和试卷分析的历史数据;另外,还可完全由计算机自动按照"难度系数"灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,不妨把它称之为实时的互动的试卷。 用户对象主要是大、中、小学及职业学校等单位的教师及学生和企事业单位的教育部门(因企事业单位每年要对员工进行素质、安全教育与技能等方面的培训及考试等)。5.2 运行环境与系统结构 此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求和逻辑结构分别如下:
客户端:Windows95/98,Internet Explorer(IE)等 服务器端:Windows NT/Windows2000,Internet Information Server (IIS)4.0及其以上版本,IE等;或者Windows98,Personal Web Server(PWS),IE等。
数据库:采用SQL Server,运行于服务器端。5.3 系统特点 系统联为一体,界面整齐、美观,操作简单、方便。另外,支持按权限对系统进行操作,即不同类型的用户拥有相异的权限对题库执行不同的操作。主要是在首页通过两种不同的方式进入相异的操作界面,以确保整个数据库中数据的安全性及完整性。其主要特点体现在以下三个方面:
(1) 自主设计数据库 ⑵ 自主调用数据库 ⑶ 自主管理数据库 自主设计数据库是指用户能够根据自己的需要创建新科目数据库(即系统实现了自动建表的功能),让数据库真正成为用户自己的数据库。不过,只要库中已存在该科目名称及表名,则不予重建,这样就保证了数据的统一性;自主调用数据库即允许用户能自由地从数据库中抽取试题组成试卷,试卷中有几道大题和小题以及是否提供查看答案均由用户自行设置并选题。通常来说,一份高质量的试卷,需要用户反复推敲、比较和琢磨,用户就象进超市买东西一样能方便地把看中的取出来,也可反悔把不需要的退回去,并且在形成一份完整的试卷之前,允许任意调整该试题的次序。在组卷时,还可以多份试卷选取同一试题或同一知识点的试题,但严禁一套试卷中出现知识点相同(似)且难度一致的试题。不过,其最大的缺陷在于目前只实现了试卷中的客观题部分,即包括判断、单选和多选题。而且,还没有实现客观题部分和真正的多媒体试卷;自主管理数据库指一般用户具有添加、修改和检索数据的权力,实现数据库的可扩充性和开放性。而管理员则另具有删除数据的权力,从而达到了系统数据统一性和一致性的目的,具体情况请见系统演示。5.4 详细设计
5.4.1试题(客观题部分)设计
在以往的考试中,判断题常常是通过画" ╳ "," "来判断;而单选题往往在四个供选的答案A、B、C、D中选择唯一正确的答案;另外,多选题跟单选题在根本上没什么区别,只是供选的答案和标准答案多一些。因而,本系统中所涉及的单选题和多选题跟过去的大体相同,主要不同在于把判断题巧妙地转化为只有两个选项的单选题,并且假设多选题一般情况下也是最多提供六个备选答案,标准答案至少有一个。故各题型的样题设计如下:判断题-->如:重发器也叫中继器: (A)错 (B)对单选题-->如:HUB是指: (A)网桥 (B)集线器 (C)网关 (D)路由器多选题-->如; Internet上使用的网络协议是: (A)IPX/SPX兼容协议 (B)TCP/IP协议 (C)NetBEUI协议 (D)X.25协议 (E)ATM LAN仿真用户 (F)快速红外线协议
5.4.2数据库设计
5.4.2.1试题结构 通常,每一类型的试题都应有一个表结构。但考虑到目前系统存贮空间已经不受物理空间的限制。因此,我们采用按科目而不按试题类型方案来建立数据表,更不把所有科目的全部试题集中在一起,只是每道客观题均有六个备选答案项,还有一个表用来记录各科目数据表的相关属性。这样,查询起来较方便,可能会节约时间,也不致于造成数据十分杂乱等。详细设计如下表所示:说明:
科目数据信息表字段名 字符标识 类型 长度 NULL 主键 说明 5.4.2.2试卷结构 试卷一般包括客观题(判断题、单选题或多选题)和主观题(填空题、短文字题或长文字题),即一套试卷包括若干大题,每道大题包含若干小题。但是,本系统的试卷目前只涉及客观题部分。故大题数暂定为最多3道,小题数总和若干,而且,在此表中只存贮该科目试卷相应的试题编号,其试题内容则在调用时到相应科目中查询获得。 5.4.2.3用户、留言信息结构 A、超级用户:在此系统中有且仅有一个,即系统管理员。他具有一般用户所没有的至高无上的权力,即具有删除用户、留言、试题以及试卷等信息的权力。它不需注册,在数据库没有它的任何相关信息,但可由管理员自己更改用户名和密码。确保万一数据泄密而造成系统的危害。 B、一般用户:主要是指学校的教师及学生和企事业单位的教育部门等。另外,所有用户可能会对我们的系统发表意见或相互之间答疑。
5.4.2.4考生答案成绩表结构实际考试日期可能因某种原因推迟考试而与试卷表中的考试日期有所不同。因而,此表应与用户、试卷及试题库等多表相关联,关系比较复杂。
5.4.3功能模块详细设计
下面,按照录入试题-出卷-进行考试等流程就各个模块分别进行详细讨论,具体情况见系统源程序及演示。考虑到数据的保密与安全问题,凡进入系统的用户,必须先注册,然后通过验证才能进入。否则,进入"SORRY"页面。
5.4.3.1录入模块 许可的用户根据自身教
学目的和要求,可以向库中添加各种类型且符合要求(对不符合的将给出提示和警告,并且不予保存!)的试题和试卷以及各自的意见与疑难问题等。一旦添加成功,只有管理员才能删除。 ①试题录入
首先,用户选择试题所属科目。若下拉菜单中没有该科目,则点击右边的新增科目,即进入这一页面,只要输入新增科目详细名称(一般以一个学期修完为标准)和表名(最好由汉语拼音首字母组成),即可由系统根据已设定好的字段自动建立新的科目试题表。返回、刷新一次页面,即可看到新增的科目名称。而且,在本系统中其它需要选择科目的地方也会自动更新。
其次,每道试题有类型、难度系数、选自书籍及章节、试题内容与答案和标准答案等栏目。用户一一输入完(对于该试题不需要的答案项,则默认为"不填"),按"提交"后,即可看到预览效果。如果输入不合法,或者该科题库中已有该试题编号和内容等,则系统给出相应的提示或警告,以待更正。 ②试卷录入 此子模块包括两个部分,即标识试卷的基本信息录入和手工组卷部分。其基本信息有试卷编号、标题、套数、难度、科目名称、考试性质与日期等,而卷中试题将通过后面的手工组卷模块予以实现。对于用户输入的不符合系统要求的数据,系统仍旧给出提示或警告。
③用户留言
凡使用此系统的用户可能对我们的工作有许多良好的建议和意见,或者有一些疑难问题需要大家共同探讨的话,可以在此提出。
5.4.3.2查询模块
系统中的所有用户均可检索试题、试卷、用户及留言等信息。只是试题检索界面较复杂,但它已实现了多种条件的组合查询,非常适合于数量繁大的试题库。而后三者相对来说比较简单,"默认"或"空白"的情况下,则按该表中的系统默认的字段显示其全部信息。使用起来比较灵活、方便。
5.4.3.3修改模块
用户除了只修改自己的部分资料(包括用户帐号、密码和E-Mail)外,还可修改试题及试卷,而留言则不许修改。只要用户选择科目和输入编号,即可进行修改。不过,对于各表中的主键不准修改,避免了造成系统中的数据混乱,或者覆盖其它有用数据的现象。如果用户执行了非法操作,则必须重新操作。
5.4.3.4组卷模块
在组卷过程中,我们肯定会遇到有许多题目是关于同一个教学内容的,这里称之为关于同一考核点的试题。因此,在组装一份试卷时,对于同一考核点的试题只能出一道题。这里设计一种快速选题算法,该算法只需经一次比较,便可判定是否已选过该考核点的试题,且又可以有针对性地重点选取某个考核点的试题。即每一道题都设有一个相关码,对于同一章、同一节、同一考核点的题,则相关码相同,显然,前面章节的相关码都要小于后面章节的相关码。故在组卷时,同一试卷中不允许出现相关码相同的试题。所以,在选题过程中每选出一题,就要与已经选出的题的相关码逐一进行比较,若该题的相关码与已选各题的相关码均不相同,则可将该题加入到试卷中,否则,放弃该题,重新进行选题。
下面,在只考虑最佳情况下,即每次选出的题都恰好是尚未选过的,每选一道题就要与已选出的各题逐一比较,假设已选出了M题,再选下一题时,则需比较M次,不妨设一份试卷的总题数为N,在最佳情况下,则总的比较次数为:
0,1, 2,…N-2,N-1
即时间复杂度为O(N),这样,就可保证下面算法中选择出来的试题编号都合法。基本算法:{定义参数,获得整套试卷的共同限制参数,即包括输入必要条件得到必要参数和 输入任选条件得到任选参数}必要参数组合= A1 AND A2 ~~AND An;任选参数组合= B1 OR B2 ~~OR Bn;大题数dts =3 '默认为3道大题;小题数xts=0 '默认为50道小题;
开始扫描相应科目的试题库,获得临时所有符合条件的试题预览,接着开始手工细选试题以生成试卷或计算机自动组卷。IF 符合必要参数组合 THEN
主要有下面两个子模块:
其一:手工组卷模块
用户提交相关限制条件,由系统根据这些条件先从大的范围内调出试题,稍后再手工通过复选按钮细选以生成自己所需的试卷,即利用现有的试题库,可编制出多份试卷。在组卷时,可以对所选的每一试题进行增删,顺序进行调整,并可自行规定各大(小)题分数和试卷的考试时间(默认值前已述及)。总之,能作出用户完全满意的试卷,以供在线考试或测试使用。 其好处关键在于---选题随机性强、成卷速度较快、试卷质量高;知识考核点分布均匀,且内容覆盖面容易控制。例如,期中考试时,只考前一半内容时,只要选取章节码小于或等于某个指定的值,则一定不会出现后一半内容的试题。
其二:计算机自动卷模块
完全由系统自动按照"易-中-难"顺序和根据用户选择的信息,灵活、随机的抽取试题库中的各类试题组成试卷,试卷内容会随着库中试题的改变而改变,试卷库中没有保存试卷的基本信息及相应的试题编号,不妨称之为活动的互动的试卷。不过,其试卷质量不高,难易程度把握不当,知识考核点分布不均,一般只作在线练习使用。
5.4.3.5进入在线考场模块
进入在线考场是本系统非常重要的部分之一。因为一个系统如果涉及到现实的话,就必须考虑得十分周到、完善。考生登录后,只要输入已编辑好的试卷编号,就可以调出其试卷进行在线考试或测试,其答题信息通过单、复选按钮选择答案来反映。为了防止考生多次提交试卷和规范考场纪律,采取自愿交卷和到了规定的时间自动收卷两者有机结合的方式、限制考试时间和期限以及禁用鼠标等办法予以实现。但真正的无人监视的考试好象不能用软件实现,而且其安全性在系统设计中也很重要。因此,在设计过程中注意了以下几个问题:
1、只有考生自己才能参加考试!2、考试时间到了将自动交卷!
3、限制提交次数,暂只提供一次机会!4、禁止用户联网作弊!上图为此模块程序设计详细流程图
5.4.3.6在线练习模块
计算机自动组卷模块组成的互动的试卷(卷库中没有保存此类试卷的任何信息!)是通过单复选按钮来反映用户的做题信息。它主要用于平时的在线练习等,让用户了解自身的不足,并有针对性地进行复习和训练。因此,用户做完后,只要点击"查看答案",就可以与相应试题的标准答案对比,以便及时反馈情况,而没有提供成绩判定与分析和时间限制等。 5.4.3.7成绩分析与试卷评估模块
考生每参加一次考试,系统根据已有的标准答案很快得出其分数,再根据不同的分数段给出相异的评语。一方面与其它同科考生进行横向对比,得出各个考生之间的差别;另一方面,也通过用户一段时期内参加同科考试的成绩来做纵向比较,用以说明其掌握该科目内容的实际程度,以便做出相应的决定。另外,管理员先给出一套完整试卷的预先评估,然后由系统自动根据同一试卷编号的所有用户成绩给出其实际的评估,并且都有一个难度等级,把两次评估进行比较得出该卷的难易程度以及更详细的评估情况。
5.4.3.8删除模块
在整个系统中,只有系统管理员具有此权限。管理员通过复选按钮选择要删除的用户、留言、试卷及科目,而对于数量较大的试题库则通过输入或选择条件,就可达到删除那些过时的无用的试题,当然,对于那些恶意破坏系统的用户,管理员有权删除他,以示惩罚。这样就可确保数据库不至于十分庞大和其安全性。5.5 ADO--ActiveX Data Object操作数据库的几个步骤rs(i).name:第i(指针)个字段名,i由0算起到rs.fields.count-1;rs(i):读取第i(指针)个字段的记录,i由0算起到rs.fields.count-1;rs("字段名"):读取指定的字段的记录;rs.eof:是否已指定最末条;rs.movenext:将指针移到下一条;rs.moveprev:将指针移到上一条;rs.movefirst:将指针移到第一条;rs.movelast:将指针移到最末条;
第五步 使用后关闭数据库:rs.close;adocon.close5.6数据的安全与保密