语言考试系统的设计与实现

greenlight

发布日期: 2019-02-02 10:06:17 浏览量: 1366
评分:
star star star star star star star star_border star_border star_border
*转载请注明来自write-bug.com

摘 要

随着信息技术的广泛使用,各类计算机考试也应运而生,这类考试多为上机考试,因此,考试的环境,即考试系统的设计和实现非常重要。在网络技术逐渐渗入社会生活各个层面的今天,采用网络考试是一个很重要的方向。目前,网络考试系统的实现,可以采用传统的客户机/服务器模式,也可以采用目前流行的浏览器/服务器模式,即基于Web的方式。本系统采用的后一种模式,因此,本文简单的介绍了该模式的实现方法。同时,还介绍了等级考试的一些相关信息;语言类考试系统设计和实现的相关技术;该系统的组成模块、数据库设计以及运行平台。还介绍了该考试系统的特点和实现的关键技术。最后,指出了该考试存在的一些不足,以及对实现该考试系统的主要技术——Web服务技术在考试系统中的应用进行了展望。

关键词:考试系统 Web服务 数据库 Visual Basic .NET

第1章 考试系统的数据库设计、构成模块

1.1 考试系统的数据库设计

考试系统离不开数据库系统的支持,不论是试题、答案,还是考生信息都需要存放在数据库中,而且数据库独立于程序而存在,具有较好的安全性。本系统使用的数据库软件为SQL Server 2000。首先建立一名为ksxt的数据库,主要表格介绍如下:

1.1.1 考生信息表(stuinfo)

列名 数据类型 长度 允许空
Id Nvarchar 10
Name Nvarchar 8
State Nvarchar 6

该表主要存放考生的信息,其中Id表示考生的准考证号;Name表示考生的姓名;State表示考生状态,分为三种:已交卷、未交卷(正在考试中)、缺考。考生登录的时候输入准考证号,从该表中检查是否存在该准考证号,如果存在,显示该考生姓名,允许进入考试界面;否则显示“无此考生”。State字段有助于统计缺考人数。

1.1.2 各类试题表(xuanze,tiankong,panduan,chengxtk,chengxts,chengxsj)

主要包括选择题表、判断题表、概念填空题表、程序填空题表、程序调试题表、程序设计题表共6张表,每张表中存放了各类试题的题号和题目。下面以程序设计题表为例说明:

列名 数据类型 长度 允许空
TH Char 2
XTH Char 2
TM Ntext 16
Ole Image 16

其中TH表示该试题在第几套题目中;XTH表示该试题的题号,即这套题目中的2个程序设计题中的第几题;TM表示该试题的题目描述;Ole字段存放的为考试时要读出来,解压,供考生下载的压缩文件。如果是选择题表,还有A、B、C、D四个字段分别表示该试题四个选项的内容。除了程序设计题以外,其他试题表没有Ole字段。之所以设TH字段,是因为试题是按套分的,每一套中又有若干题目。每套中的题目事先就定好的,但是每次抽到该套题目时,试题的顺序是打乱的,以减少出现一模一样试卷的概率。

1.1.3 考试信息表(testresult01—testresult99)

列名 数据类型 长度 允许空
Id Nvarchar 10
Xuanzth Char 2
Pandth Char 2
Tiankth Char 2
Chengxtkth Char 2
Chengxtsth Char 2
Chengxsjth Char 2
Xuanzda Nvarchar 40
Panda Nvarchar 20
Tiankda Nvarchar 100
Chengxtkda Nvarchar 100
Chengxtsda Image 16
chengxsjda Image 16
Lasttime Int 4

考试信息表共有99张,根据考生准考证号后两位来决定把该考生的考试信息放入哪张表中,比如该考生准考证号末两位为28,则放入表testresult28中。其中Id表示考生的准考证号;Xuanzth、pandth、Tiankth、Chengxtkth、Chengxtsth、Chengxsjth分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的题号;Xuanzda、pandda、Tiankda、Chengxtkda、Chengxtsda、Chengxsjda分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的正确答案。Lasttime用于记录考试时间,如果时间到了还没有交卷,则回收答案,停止考试。

1.1.4 回收表(reclaim,result)

回收表共有两张,一张记录回收的答案,另一张记录回收是否成功。

列名 数据类型 长度 允许空
Id Nvarchar 10
Xuanzth Char 2
Pandth Char 2
Tiankth Char 2
Chengxtkth Char 2
Chengxtsth Char 2
Chengxsjth Char 2
Xuanzda Nvarchar 40
Panda Nvarchar 20
Tiankda Nvarchar 100
Chengxtkda Nvarchar 100
Chengxtsda Image 16
chengxsjda Image 16

这张表主要用来记录回收的答案,其中Xuanzth、Pandth、Tiankth、Chengxtkth、Chengxtsth、Chengxsjth分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的题号,Xuanzda、Pandda、Tiankda、Chengxtkda、Chengxtsda、Chengxsjda分别表示考生的选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的答案,可与考试信息表中各题的正确答案做比较。

列名 数据类型 长度 允许空
Id Nvarchar 10
Name Nvarchar 8
Xuanze Char 2
Pand Char 2
Tiank Char 2
Chengxtk Char 2
Chengxts Char 2
Chengxsj Char 2

这张表主要用来判断回收是否成功。其中Id表示考生的准考证号;Name表示考生的姓名;Xuanze、Pand、Tiank、Chengxtk、Chengxts、Chengxsj分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题是否回收成功,如果成功,则为OK,否则为空。

1.1.5 管理表(setting)

列名 数据类型 长度 允许空
Dbname Nvarchar 10
Servername Nvarchar 10
Sqlpwd Nvarchar 10
Testdir Nvarchar 40
Testtype Nvarchar 4
Relaimdir Nvarchar 40
redopwd Nvarchar 10

其中Dbname表示数据库名称;Servername表示服务器名称;Sqlpwd表示SQL Server服务器密码;Testdir表示考试目录;Testtype表示考试类型;Relaimdir表示回收目录;redopwd表示重做密码。有些考生考试时可能会因为误操作而退出了系统,这时候要再次进入系统进行考试,就需要输入密码,以防止作弊行为。重做密码是在考生第一次进入系统时从该表中获得的。

1.2 考试系统的构成模块

该考试系统主要有6个模块构成,包括题库管理模块、身份验证模块、各类试题模块、监考管理模块、阅卷模块、缺考统计模块。各模块关系如图所示。下面分别介绍这6个模块。

1.2.1 题库管理模块

题库管理模块实现了试题管理与试卷形成功能。试题的管理主要包括试题编辑、试题修改。在该考试系统中,预计准备20套选择题、填空题、判断题、程序分析题和程序设计题,每套的题目都是事先定好的。每套试卷形成时,随机抽取各类试题的题号,可能两次抽到相同题号试题的概率是比较大的,但每次试题的顺序都是打乱的,以减少出现重复试卷的概率。

1.2.2 身份验证模块

考生登录系统时,需要输入准考证号,根据准考证号到相应的数据库表(这里是“考生信息表”)中查找是否有该考生存在。如果有此准考证号,表示存在该考生,显示该考生的姓名;否则提示“没有该考生信息,请确认后重新输入”。当已经确认存在该考生时,还需要判断该考生是否第一次进入系统,如果是第一次,则进行组题,抽取题号;如果不是第一次,则进入另一个页面,要求输入重做密码,直到密码输入正确才能进入考试界面,并且考试的试题内容与顺序都和上次进入时的一样。重做密码是在考生第一次进入系统时获得的。流程图如图2所示。

1.2.3 各类试题模块

1) 选择题模块

初次进入选择题界面时,显示第一个题目的内容。可以用“上题”、“下题” 按钮来选择不同的题目,在选择“上题”或“下题”前,先要记录下本题的答案(在客户端执行)。可以用“保存”按钮来上传答案,即把考生的答案写入回收表reclaim中(在服务器端执行)。

2)判断题模块、概念填空题模块、程序填空题模块同上。

3)程序调试题模块

同样可以用“上题”、“下题” 按钮来选择不同的题目。可以用“下载”按钮来建立程序调试题存放的文件夹,并下载题目(是一个压缩文件);通过“上传”按钮把最终结果上传到指定的目录。

4)程序设计题模块同上

1.2.4 监考管理模块

该模块提供考试用的操作界面,同时提供考试的操作指南,以供考生参考。考生的准考证号、姓名,始终显示在状态栏上,以便监考人员查验。 可查询考生的剩余时间、交卷否和是否正在考试等状态信息,在考试过程中,对考生的合法性和唯一性进行监控。考生如有疑问,可以“帮助”按钮来解决问题。

1.2.5 阅卷模块

对考生的答案进行阅卷评分。目前这块没有实现。

1.2.6 缺考统计模块

统计有多少考生没有参加考试。可通过“考生信息表”中的State字段进行统计。通过这个字段还可以统计某一时刻有多少考生正在考试,有多少以已经交卷。

参考文献

[1] 侯戓,《.NET Web服务入门经典》,清华大学出版社

[2] 康博译,《VB.NET高级编程》,清华大学出版社

[3] 郁红英、冯庚豹,《Visual Basic.NET 语句与函数全》,电子工业出版社

[4] 唐树才等,《Visual.Basic.NET程序设计与应用》,电子工业出版社

[5] 李振格等,《SQL Server 2000与Visual.Basic.NET数据库》,清华大学出版社

上传的附件 cloud_download Java语言考试系统的设计与实现.zip ( 829.48kb, 26次下载 )
error_outline 下载需要9点积分

发送私信

幸福的绿光在哪里

23
文章数
20
评论数
最近文章
eject