【asp源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了asp源码-基于ASP的试题库与在线考试系统开发论文附详细源代码 - 网页设计的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
基于
ASP 的试题库与在线考试系统开发论文附详细源代码摘 要 利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,我们基于 B/S 模式研究开发了试题库与在线考试系统这一
ASP 应用程序。
它运用方便、操作简单,效率很高,现阶段虽只实现了试卷的客观题部分,但已具有试题(卷)录入、修改和查询,手工组卷与自动组卷以及进行在线考试等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,并给出其详细的成绩分析与试卷评估,同时也大大减轻了教师出题、组卷和改卷等繁重的工作量。
引 言现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效、便捷的作用把老师从繁重的工作中解脱出来!一、基本简介试题库与在线考试系统采用
ASP、HTML、Frontpage2000/98、Javascript、VBScript、Java 编程语言、图形编辑与数据库等工具,通过基于 WEB 服务器访问纯 WEB 页面,实现在线组卷与考试等各项相关的功能。
它是专门用于试题(卷)录入、查询、修改、删除、组卷和参加在线考试的
ASP 应用程序。
其最大的特点是开放性、方便性和灵活性。
主要是指一般的用户不仅可以轻松地向题库添加、修改和查询试题(卷),而且还可以自动新增科目并建立相应的数据表;它还允许用户根据自己的需求,从现有的试题库中灵活地抽取各类试题,以组建适合于自身所需的试卷。
而且,自测试卷的难易程度和形式以及各大题分数等都由用户根据需要确定。
考生通过浏览器进行有效的身份验证登录后,输入正确的试卷编号,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提交。
一旦考生做完后便能立即看到预先记录在库中的标准答案和自己的平时成绩(正规考试试卷不得随意更改以及答案将不及时提供),并且其答案和分数将被记入库中以供审核和查阅,并作为成绩评估和试卷分析的历史数据;另外,还可完全由计算机自动按照难度系数灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,不妨把它称之为实时的互动的试卷。
用户对象主要是大、中、小学及职业学校等单位的教师及学生和企事业单位的教育部门(因企事业单位每年要对员工进行素质、 。
安全教育与技能等方面的培训及考试等)二、运行环境与系统结构此应用程序可广泛运行于国际互联网即 Internet,也可适用于内部的局域网。
其运行要求和逻辑结构分别如下:客户端:Windows95/98,Internet ExplorerIE等服务器端:Windows NT/Windows2000,Internet Information IEServer IIS4.0 及其以上版本, 等; Personal 或者 Windows98,Web ServerPWS,IE 等。
数据库:采用 SQL Server,运行于服务器端。
试题库与在线考试系统逻辑结构图三、系统特点系统联为一体,界面整齐、美观,操作简单、方便。
另外,支持按权限对系统进行操作,即不同类型的用户拥有相异的权限对题库执行不同的操作。
主要是在首页通过两种不同的方式进入相异的操作界面,以确保整个数据库中数据的安全性及完整性。
其主要特点体现在以下三个方面:(1) 自主设计数据库 ⑵ 自主调用数据库 ⑶ 自主管理数据库自主设计数据库是指用户能够根据自己的需要创建新科目数据 ,让数据库真正成为用户自库(即系统实现了自动建表的功能)己的数据库。
不过,只要库中已存在该科目名称及表名,则不予重建,这样就保证了数据的统一性;自主调用数据库即允许用户能自由地从数据库中抽取试题组成试卷,试卷中有几道大题和小题以及是否提供查看答案均由用户自行设置并选题。
通常来说,一份高质量的试卷,需要用户反复推敲、比较和琢磨,用户就象进超市买东西一样能方便地把看中的取出来,也可反悔把不需要的退回去,并且在形成一份完整的试卷之前,允许任意调整该试题的次序。
在组卷时,还可以多份试卷选取同一试题或同一知识点的试题,但严禁一套试卷中出现知识点相同(似)且难度一致的试题。
不过,其最大的缺陷在于目前只实现了试卷中的客观题部分,即包括判断、单选和多选题。
而且,还没有实现客观题部分和真正的多媒体试卷;自主管理数据库指一般用户具有添加、修改和检索数据的权力,实现数据库的可扩充性和开放性。
而管理员则另具有删除数据的权力,从而达到了系统数据统一性和一致性的目的,具体情况请见系统演示。
四、详细设计4.1、试题(客观题部分)设计 在以往的考试中,判断题常常是通过画 ╳ , 来判断;而单 选题往往在四个供选的答案 A、B、C、D 中选择唯一正确的答 案;另外,多选题跟单选题在根本上没什么区别,只是供选的答 案和标准答案多一些。
因而,本系统中所涉及的单选题和多选题 跟过去的大体相同,主要不同在于把判断题巧妙地转化为只有两 个选项的单选题,并且假设多选题一般情况下也是最多提供六个 备选答案,标准答案至少有一个。
故各题型的样题设计如下:判断题-->如:重发器也叫中继器: A错 B对单选题-->如:HUB 是指: A网桥 B集线器 C网关 D路由器多选题-->如; Internet 上使用的网络协议是: AIPX/SPX 兼容协议 BTCP/IP 协议 CNetBEUI 协议 DX.25 协议 (E)ATM LAN仿真用户 F快速红外线协议 4.2、数据库设计 4.2.1、试题结构 通常,每一类型的试题都应有一个表结构。
但考虑到目前系统存 贮空间已经不受物理空间的限制。
因此,我们采用按科目而不按 试题类型方案来建立数据表,更不把所有科目的全部试题集中在 一起,只是每道客观题均有六个备选答案项,还有一个表用来记 录各科目数据表的相关属性。
这样,查询起来较方便,可能会节 约时间,也不致于造成数据十分杂乱等。
详细设计如下表所示:说明:1. 按科目(一般以 1 个学期为标准)分别定义各表,表名一律由中文名汉字拼音首字母构成。
例如,软件工程---RJGC;计算机网络---JSJWL;小学二年级上期数学---XXENJSQSX2.字段名是指该字段的中文名3.字符标识一般由中文名拼音首字母构成外键字段最好与主表对应字段同名4.若该字段为字符型,则对应的长度栏填最大允许长度,若为固定长度则加定字5.若该字段可以为空,则对应的 NULL 栏填 Y否则不填6.若该字段为主键,则对应的主键栏填 Y否则不填 科目数据信息表 长 主字段名 字符标识 类型 NULL 说明 度 键科目中文 以中文为准,例如计算机网 KMMC CHAR 50详细名称 络 一律由上面中文名拼音首字科目表名 KMBM CHAR 50 Y 母构成,如JSJWL录 入 者 LRZ CHAR 15 默认为录入员登入帐号录入日期 LR_DATE DATE 10 默认为录入时的系统日期备 注 MEMO CHAR 50 Y 四、详细设计 4.1、试题(客观题部分)设计 在以往的考试中,判断题常常是通过画 ╳ , 来判断;而单 选题往往在四个供选的答案 A、B、C、D 中选择唯一正确的答 案;另外,多选题跟单选题在根本上没什么区别,只是供选的答 案和标准答案多一些。
因而,本系统中所涉及的单选题和多选题 跟过去的大体相同,主要不同在于把判断题巧妙地转化为只有两 个选项的单选题,并且假设多选题一般情况下也是最多提供六个 备选答案,标准答案至少有一个。
故各题型的样题设计如下:判断题-->如:重发器也叫中继器: A错 B对单选题-->如:HUB 是指: A网桥 B集线器 C网关 D路由器多选题-->如; Internet 上使用的网络协议是: AIPX/SPX 兼容协议 BTCP/IP 协议 CNetBEUI 协议 DX.25 协议 (E)ATM LAN仿真用户 F快速红外线协议 4.2、数据库设计 4.2.1、试题结构 通常,每一类型的试题都应有一个表结构。
但考虑到目前系统存 贮空间已经不受物理空间的限制。
因此,我们采用按科目而不按 试题类型方案来建立数据表,更不把所有科目的全部试题集中在 一起,只是每道客观题均有六个备选答案项,还有一个表用来记 录各科目数据表的相关属性。
这样,查询起来较方便,可能会节 约时间,也不致于造成数据十分杂乱等。
详细设计如下表所示:说明:1. 按科目(一般以 1 个学期为标准)分别定义各表,表名一律由中文名汉字拼音首字母构成。
例如,软件工程---RJGC;计算机网络---JSJWL;小学二年级上期数学---XXENJSQSX2.字段名是指该字段的中文名3.字符标识一般由中文名拼音首字母构成外键字段最好与主表对应字段同名4.若该字段为字符型,则对应的长度栏填最大允许长度,若为固定长度则加定字5.若该字段可以为空,则对应的 NULL 栏填 Y否则不填6.若该字段为主键,则对应的主键栏填 Y否则不填 科目数据信息表 长 主字段名 字符标识 类型 NULL 说明 度 键科目中文 以中文为准,例如计算机网 KMMC CHAR 50详细名称 络 一律由上面中文名拼音首字科目表名 KMBM CHAR 50 Y 母构成,如JSJWL录 入 者 LRZ CHAR 15 默认为录入员登入帐号录入日期 LR_DATE DATE 10 默认为录入时的系统日期备 注 MEMO CHAR 50 Y 四、详细设计 4.1、试题(客观题部分)设计 在以往的考试中,判断题常常是通过画 ╳ , 来判断;而单 选题往往在四个供选的答案 A、B、C、D 中选择唯一正确的答 案;另外,多选题跟单选题在根本上没什么区别,只是供选的答 案和标准答案多一些。
因而,本系统中所涉及的单选题和多选题 跟过去的大体相同,主要不同在于把判断题巧妙地转化为只有两 个选项的单选题,并且假设多选题一般情况下也是最多提供六个 备选答案,标准答案至少有一个。
故各题型的样题设计如下:判断题-->如:重发器也叫中继器: A错 B对单选题-->如:HUB 是指: A网桥 B集线器 C网关 D路由器多选题-->如; Internet 上使用的网络协议是: AIPX/SPX 兼容协议 BTCP/IP 协议 CNetBEUI 协议 DX.25 协议 (E)ATM LAN仿真用户 F快速红外线协议 4.2、数据库设计 4.2.1、试题结构 通常,每一类型的试题都应有一个表结构。
但考虑到目前系统存 贮空间已经不受物理空间的限制。
因此,我们采用按科目而不按 试题类型方案来建立数据表,更不把所有科目的全部试题集中在 一起,只是每道客观题均有六个备选答案项,还有一个表用来记 录各科目数据表的相关属性。
这样,查询起来较方便,可能会节 约时间,也不致于造成数据十分杂乱等。
详细设计如下表所示:说明:1. 按科目(一般以 1 个学期为标准)分别定义各表,表名一律由中文名汉字拼音首字母构成。
例如,软件工程---RJGC;计算机网络---JSJWL;小学二年级上期数学---XXENJSQSX2.字段名是指该字段的中文名3.字符标识一般由中文名拼音首字母构成外键字段最好与主表对应字段同名4.若该字段为字符型,则对应的长度栏填最大允许长度,若为固定长度则加定字5.若该字段可以为空,则对应的 NULL 栏填 Y否则不填6.若该字段为主键,则对应的主键栏填 Y否则不填 科目数据信息表 长 主字段名 字符标识 类型 NULL 说明 度 键科目中文 以中文为准,例如计算机网 KMMC CHAR 50详细名称 络 一律由上面中文名拼音首字科目表名 KMBM CHAR 50 Y 母构成,如JSJWL录 入 者 LRZ CHAR 15 默认为录入员登入帐号录入日期 LR_DATE DATE 10 默认为录入时的系统日期备 注 MEMO CHAR 50 Y 4.2.2、试卷结构 试卷一般包括客观题(判断题、单选题或多选题)和主观题(填 空题、短文字题或长文字题),即一套试卷包括若干大题,每道大题包含若干小题。
但是,本系统的试卷目前只涉及客观题部分。
故大题数暂定为最多 3 道,小题数总和若干,而且,在此表中只存贮该科目试卷相应的试题编号,其试题内容则在调用时到相应科目中查询获得。
4.2.3、用户、留言信息结构A、超级用户:在此系统中有且仅有一个,即系统管理员。
他具有一般用户所没有的至高无上的权力,即具有删除用户、留言、试题以及试卷等信息的权力。
它不需注册,在数据库没有它的任何相关信息,但可由管理员自己更改用户名和密码。
确保万一数据泄密而造成系统的危害。
B、一般用户:主要是指学校的教师及学生和企事业单位的教育部门等。
另外,所有用户可能会对我们的系统发表意见或相互之间答疑。
4.2.4、考生答案成绩表结构实际考试日期可能因某种原因推迟考试而与试卷表中的考试日期有所不同。
因而,此表应与用户、试卷及试题库等多表相关联,关系比较复杂。
4.3、功能模块详细设计下面,按照录入试题-出卷-进行考试等流程就各个模块分别进行详细讨论,具体情况见系统源程序及演示。
考虑到数据的保密与安全问题,凡进入系统的用户,必须先注册,然后通过验证才能进入。
否则,进入SORRY页面。
4.3.1、录入模块许可的用户根据自身教学目的和要求,可以向库中添加各种类型且符合要求(对不符合的将给出提示和警告,并且不予保存!)的试题和试卷以及各自的意见与疑难问题等。
一旦添加成功,只有管理员才能删除。
①试题录入首先,用户选择试题所属科目。
若下拉菜单中没有该科目,则点击右边的新增科目,即进入这一页面,只要输入新增科目详细名称(一般以一个学期修完为标准)和表名(最好由汉语拼音首字母组成),即可由系统根据已设定好的字段自动建立新的科目试题表。
返回、刷新一次页面,即可看到新增的科目名称。
而且,在本系统中其它需要选择科目的地方也会自动更新。
其次,每道试题有类型、难度系数、选自书籍及章节、试题内容与答案和标准答案等栏目。
用户一一输入完(对于该试题不需要 ,按提交后,即可看到预览效果。
的答案项,则默认为不填)如果输入不合法,或者该科题库中已有该试题编号和内容等,则系统给出相应的提示或警告,以待更正。
②试卷录入此子模块包括两个部分,即标识试卷的基本信息录入和手工组卷部分。
其基本信息有试卷编号、标题、套数、难度、科目名称、考试性质与日期等,而卷中试题将通过后面的手工组卷模块予以实现。
对于用户输入的不符合系统要求的数据,系统仍旧给出提示或警告。
③用户留言凡使用此系统的用户可能对我们的工作有许多良好的建议和意见,或者有一些疑难问题需要大家共同探讨的话,可以在此提出。
4.3.2、查询模块系统中的所有用户均可检索试题、试卷、用户及留言等信息。
只是试题检索界面较复杂,但它已实现了多种条件的组合查询,非常适合于数量繁大的试题库。
而后三者相对来说比较简单,默认或空白的情况下,则按该表中的系统默认的字段显示其全部信息。
使用起来比较灵活、方便。
4.3.3、修改模块用户除了只修改自己的部分资料(包括用户帐号、密码和 E-Mail)外,还可修改试题及试卷,而留言则不许修改。
只要用户选择科目和输入编号,即可进行修改。
不过,对于各表中的主键不准修改,避免了造成系统中的数据混乱,或者覆盖其它有用数据的现象。
如果用户执行了非法操作,则必须重新操作。
4.3.4、组卷模块在组卷过程中,我们肯定会遇到有许多题目是关于同一个教学内容的,这里称之为关于同一考核点的试题。
因此,在组装一份试卷时,对于同一考核点的试题只能出一道题。
这里设计一种快速选题算法,该算法只需经一次比较,便可判定是否已选过该考核点的试题,且又可以有针对性地重点选取某个考核点的试题。
即每一道题都设有一个相关码,对于同一章、同一节、同一考核点的题,则相关码相同,显然,前面章节的相关码都要小于后面章节的相关码。
故在组卷时,同一试卷中不允许出现相关码相同的试题。
所以,在选题过程中每选出一题,就要与已经选出的题的相关码逐一进行比较,若该题的相关码与已选各题的相关码均不相同,则可将该题加入到试卷中,否则,放弃该题,重新进行选题。
下面,在只考虑最佳情况下,即每次选出的题都恰好是尚未选过的,每选一道题就要与已选出的各题逐一比较,假设已选出了 M题,再选下一题时,则需比较 M 次,不妨设一份试卷的总题数为 N,在最佳情况下,则总的比较次数为:0,1, 2…N-2,N-1即时间复杂度为 O(N),这样,就可保证下面算法中选择出来的试题编号都合法。
基本算法:定义参数,获得整套试卷的共同限制参数,即包括输入必要条件得到必要参数和 输入任选条件得到任选参数必要参数组合 A1 AND A2 AND An;任选参数组合 B1 ORB2 OR Bn;大题数 dts 3 默认为 3 道大题;小题数 xts0 默认为 50 道小题;IF 无判断题 THEN dtsdts - 1 END IF 开始计算大题数IF 无单选题 THEN dtsdts - 1 END IFIF 无多选题 THEN dtsdts - 1 END IF开始扫描相应科目的试题库,获得临时所有符合条件的试题预览,接着开始手工细选试题以生成试卷或计算机自动组卷。
IF 符合必要参数组合 THENSELCECT 任选参数B1:显示符合必要参数B1 的试题编号及内容B2:显示符合必要参数B2 的试题编号及内容┋ ┋ ┋Bn:显示符合必要参数Bn 的试题编号及内容END SELCECTEND IFIF dts> 1 THENIF 试题编号合法 THEN xtsxts 1ELSE 请输入合法的试题编号!END IFIF dts>xts THEN xts 必须大于或等于 dts!ELSEIF 某已存在的题型中小题数为 0 THEN 该题型至少要有 1 道试题!END IFEND IFIF 判断题存在且分数< 0 OR 分数>100 THEN 请修改!ELSE TOTALFEN TOTALFEN PDTFEND IFIF 单选题存在且分数< 0 OR 分数>100 THEN 请修改!ELSE TOTALFEN TOTALFEN DXTFEND IFIF 多选题存在且分数< 0 OR 分数>100 THEN 请修改!ELSE TOTALFEN TOTALFEN TSTFEND IFIF TOTALFEN < 0 OR TOTALFEN > 100 THEN总分在 1---100 分之内!END IFELSE 试卷大题数不得为 0!IF testtime< 0 OR testtime> 4 hour THEN考试时间必须满足 0 <testtime< 4 hour!END IFEND IF