用ASP开发试题库与在线考试系统

   摘 要 利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,我们基于B/S模式研究开发了试题库与在线考试系统这一ASP应用程序。它运用方便、操作简单,效率很高,现阶段虽只实现了试卷的客观题部分,但已具有试题(卷)录入、修改和查询,手工组卷与自动组卷以及进行在线考试等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,并给出其详细的成绩分析与试卷评估,同时也大大减轻了教师出题、组卷和改卷等繁重的工作量。

  引 言

  现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!

  一、基本简介

  试题库与在线考试系统采用ASP、HTML、Frontpage2000/98、Javascript、VBScript、Java编程语言、图形编辑与数据库等工具,通过基于WEB服务器访问纯WEB页面,实现在线组卷与考试等各项相关的功能。

  它是专门用于试题(卷)录入、查询、修改、删除、组卷和参加在线考试的ASP应用程序。其最大的特点是开放性、方便性和灵活性。主要是指一般的用户不仅可以轻松地向题库添加、修改和查询试题(卷),而且还可以自动新增科目并建立相应的数据表;它还允许用户根据自己的需求,从现有的试题库中灵活地抽取各类试题,以组建适合于自身所需的试卷。而且,自测试卷的难易程度和形式以及各大题分数等都由用户根据需要确定。考生通过浏览器进行有效的身份验证登录后,输入正确的试卷编号,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提交。一旦考生做完后便能立即看到预先记录在库中的标准答案和自己的平时成绩(正规考试试卷不得随意更改以及答案将不及时提供),并且其答案和分数将被记入库中以供审核和查阅,并作为成绩评估和试卷分析的历史数据;另外,还可完全由计算机自动按照"难度系数"灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,不妨把它称之为实时的互动的试卷。

  用户对象主要是大、中、小学及职业学校等单位的教师及学生和企事业单位的教育部门(因企事业单位每年要对员工进行素质、安全教育与技能等方面的培训及考试等)。
   二、运行环境与系统结构

  此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求和逻辑结构分别如下:

   客户端:Windows95/98,Internet Explorer(IE)等

   服务器端:Windows NT/Windows2000,Internet Information Server (IIS)4.0及其以上版本,IE等;或者Windows98,Personal Web Server(PWS),IE等。

   数据库:采用SQL Server,运行于服务器端。


试题库与在线考试系统逻辑结构图

  三、系统特点

  系统联为一体,界面整齐、美观,操作简单、方便。另外,支持按权限对系统进行操作,即不同类型的用户拥有相异的权限对题库执行不同的操作。主要是在首页通过两种不同的方式进入相异的操作界面,以确保整个数据库中数据的安全性及完整性。其主要特点体现在以下三个方面:

  (1) 自主设计数据库 ⑵ 自主调用数据库 ⑶ 自主管理数据库

  自主设计数据库是指用户能够根据自己的需要创建新科目数据库(即系统实现了自动建表的功能),让数据库真正成为用户自己的数据库。不过,只要库中已存在该科目名称及表名,则不予重建,这样就保证了数据的统一性;自主调用数据库即允许用户能自由地从数据库中抽取试题组成试卷,试卷中有几道大题和小题以及是否提供查看答案均由用户自行设置并选题。通常来说,一份高质量的试卷,需要用户反复推敲、比较和琢磨,用户就象进超市买东西一样能方便地把看中的取出来,也可反悔把不需要的退回去,并且在形成一份完整的试卷之前,允许任意调整该试题的次序。在组卷时,还可以多份试卷选取同一试题或同一知识点的试题,但严禁一套试卷中出现知识点相同(似)且难度一致的试题。不过,其最大的缺陷在于目前只实现了试卷中的客观题部分,即包括判断、单选和多选题。而且,还没有实现客观题部分和真正的多媒体试卷;自主管理数据库指一般用户具有添加、修改和检索数据的权力,实现数据库的可扩充性和开放性。而管理员则另具有删除数据的权力,从而达到了系统数据统一性和一致性的目的,具体情况请见系统演示。
  四、详细设计

  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)快速红外线协议

  4.2、数据库设计

  4.2.1、试题结构

  通常,每一类型的试题都应有一个表结构。但考虑到目前系统存贮空间已经不受物理空间的限制。因此,我们采用按科目而不按试题类型方案来建立数据表,更不把所有科目的全部试题集中在一起,只是每道客观题均有六个备选答案项,还有一个表用来记录各科目数据表的相关属性。这样,查询起来较方便,可能会节约时间,也不致于造成数据十分杂乱等。详细设计如下表所示:

说明:
  1. 按科目(一般以1个学期为标准)分别定义各表,表名一律由中文名汉字拼音首字母构成。例如,软件工程---RJGC;计算机网络---JSJWL;小学二年级上期数学---XXENJSQSX

  2.字段名是指该字段的中文名

  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 OR B2 ~~OR Bn;
大题数dts =3 '默认为3道大题;小题数xts=0 '默认为50道小题;
IF 无判断题 THEN dts=dts - 1 END IF '开始计算大题数
IF 无单选题 THEN dts=dts - 1 END IF
IF 无多选题 THEN dts=dts - 1 END IF

  开始扫描相应科目的试题库,获得临时所有符合条件的试题预览,接着开始手工细选试题以生成试卷或计算机自动组卷。

IF 符合必要参数组合 THEN
 SELCECT 任选参数
  B1:显示符合必要参数+B1的试题编号及内容
  B2:显示符合必要参数+B2的试题编号及内容
    ┋ ┋ ┋
  Bn:显示符合必要参数+Bn的试题编号及内容
 END SELCECT
END IF
IF dts>= 1 THEN
 IF 试题编号合法THEN xts=xts + 1
 ELSE 请输入合法的试题编号!
 END IF
 IF dts>xts THEN xts必须大于或等于dts!
 ELSE
  IF 某已存在的题型中小题数为0 THEN 该题型至少要有1道试题!
  END IF
 END IF
 IF 判断题存在且分数<= 0 OR分数>100 THEN 请修改!
 ELSE TOTALFEN= TOTALFEN +PDTF
 END IF
 IF 单选题存在且分数<= 0 OR分数>100 THEN 请修改!
 ELSE TOTALFEN= TOTALFEN +DXTF
 END IF
 IF 多选题存在且分数<= 0 OR分数>100 THEN 请修改!
 ELSE TOTALFEN= TOTALFEN +TSTF
 END IF
 IF TOTALFEN <= 0 OR TOTALFEN > 100 THEN
  总分在1---100分之内!
 END IF
ELSE 试卷大题数不得为0!
 IF testtime<= 0 OR testtime>= 4 (hour) THEN
  考试时间必须满足0 <testtime< 4 (hour)!
 END IF
END IF
IF所有数据均合法 THEN 则将该试卷的相关信息存盘
END IF
  主要有下面两个子模块:

  其一:手工组卷模块

  用户提交相关限制条件,由系统根据这些条件先从大的范围内调出试题,稍后再手工通过复选按钮细选以生成自己所需的试卷,即利用现有的试题库,可编制出多份试卷。在组卷时,可以对所选的每一试题进行增删,顺序进行调整,并可自行规定各大(小)题分数和试卷的考试时间(默认值前已述及)。总之,能作出用户完全满意的试卷,以供在线考试或测试使用。

  其好处关键在于---选题随机性强、成卷速度较快、试卷质量高;知识考核点分布均匀,且内容覆盖面容易控制。例如,期中考试时,只考前一半内容时,只要选取章节码小于或等于某个指定的值,则一定不会出现后一半内容的试题。

  其二:计算机自动卷模块

  完全由系统自动按照"易-中-难"顺序和根据用户选择的信息,灵活、随机的抽取试题库中的各类试题组成试卷,试卷内容会随着库中试题的改变而改变,试卷库中没有保存试卷的基本信息及相应的试题编号,不妨称之为活动的互动的试卷。不过,其试卷质量不高,难易程度把握不当,知识考核点分布不均,一般只作在线练习使用。

  4.3.4、进入在线考场模块

  进入在线考场是本系统非常重要的部分之一。因为一个系统如果涉及到现实的话,就必须考虑得十分周到、完善。考生登录后,只要输入已编辑好的试卷编号,就可以调出其试卷进行在线考试或测试,其答题信息通过单、复选按钮选择答案来反映。为了防止考生多次提交试卷和规范考场纪律,采取自愿交卷和到了规定的时间自动收卷两者有机结合的方式、限制考试时间和期限以及禁用鼠标等办法予以实现。但真正的无人监视的考试好象不能用软件实现,而且其安全性在系统设计中也很重要。因此,在设计过程中注意了以下几个问题:

  1、只有考生自己才能参加考试!2、考试时间到了将自动交卷!

  3、限制提交次数,暂只提供一次机会!4、禁止用户联网作弊!

上图为此模块程序设计详细流程图

  4.3.5、在线练习模块

  计算机自动组卷模块组成的互动的试卷(卷库中没有保存此类试卷的任何信息!)是通过单复选按钮来反映用户的做题信息。它主要用于平时的在线练习等,让用户了解自身的不足,并有针对性地进行复习和训练。因此,用户做完后,只要点击"查看答案",就可以与相应试题的标准答案对比,以便及时反馈情况,而没有提供成绩判定与分析和时间限制等。

  4.3.6、成绩分析与试卷评估模块

  考生每参加一次考试,系统根据已有的标准答案很快得銎浞质俑莶煌姆质胃鱿嘁斓钠烙铩R环矫嬗肫渌瓶忌泻嵯蚨员龋贸龈鞲隹忌涞牟畋穑涣硪环矫妫餐ü没б欢问逼谀诓渭油瓶际缘某杉ɡ醋鲎菹虮冉希靡运得髌湔莆崭每颇磕谌莸氖导食潭龋员阕龀鱿嘤Φ木龆āA硗猓芾碓毕雀鲆惶淄暾跃淼脑は绕拦溃缓笥上低匙远萃皇跃肀嗪诺乃杏没С杉ǜ銎涫导实钠拦溃⑶叶加幸桓瞿讯鹊燃叮蚜酱纹拦澜斜冉系贸龈镁淼哪岩壮潭纫约案晗傅钠拦狼榭觥?

  4.3.7、删除模块

  在整个系统中,只有系统管理员具有此权限。管理员通过复选按钮选择要删除的用户、留言、试卷及科目,而对于数量较大的试题库则通过输入或选择条件,就可达到删除那些过时的无用的试题,当然,对于那些恶意破坏系统的用户,管理员有权删除他,以示惩罚。这样就可确保数据库不至于十分庞大和其安全性。
   五、ADO--ActiveX Data Object操作数据库的几个步骤

  第一步 数据库数据来源设定。若要访问数据库,需在"控制面板"中的"ODBC Data Sources",建立数据库名称(选择Users DSN),点击"Add"按钮,选定数据库所用的驱动程序和文件等。

  第二步 使用"Server.CreateObject"建立连接的对象,并使用"Open"打开待访问的数据库。set adocon=Server.CreateObject("ADODB.Connection");adocon.Open "zxtest"

  第三步 设定SQL命令,使用"Execute"命令,即可开始执行访问数据库的动作。

sqlstr ="select * from jsjwl where stbh like 'PD' order by stbh ASC"
set rs = adocon.Execute(sqlstr) ′adocon为第二步所设定的对象名称
  第四步 使用Recordset对象的命令,显示结果,其中rs为第三步所定义。

rs.fields.count:记录的字段数;
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.close
  六、数据的安全与保密

  由于此系统的特殊性,数据的安全与保密显得尤为重要。保密性是指用户在网上的所有信息应有一定的保密度,不同类型的用户之间的内容是互相保密的。安全性是指用户参加一次活动是一个安全的过程,对于所有用户的动作,服务器都加以跟踪。为了确保其安全与保密性,一要确保考生不能联网作弊;二要在试卷上实时加以监控;三要在时间上加以严格的控制等。主要通过下列两种途径予以实现:

  其一,凡进入在线考试的用户,都要通过用户身份验证(见下图)才能进入。而且,不同用户具有不同的操作权限,支持按权限进行操作,确保数据的公共性与私有性。不允许用户执行非法的操作,防止用户无意或有意的破坏。

  其二,禁止用户查看所有试卷的源文件及拷贝功能,方法有二:

  1、禁止使用鼠标右键等功能;

   II、试卷库中的试卷将以无下拉菜单及工具栏等的页面方式呈现在浏览者面前。
    七、附录:源程序列表

  由于源代码繁多,限于篇幅,无法一一列举,现只公布部分代码,具体以系统实物为准。下面是录入试题.asp文件:

<script language="VBScript">
<!-- 'Written by HeKai 2001
Function datacheck()'确保前台输入数据合法
 dim errflag, msg
 errflag = True
 if Len(Trim(luru.xzsj.value)) = 0 Then
  focusto(1); errflag = false; msg="请输入 '选自书籍名称'"
 ElseIf Len(Trim(luru.stnr.value)) = 0 Then
  focusto(9); errflag = false; msg=" '试题内容' 呢"
 ElseIf Len(Trim(luru.A.value)) = 0 Then
  focusto(10); errflag = false; msg=" '答案_A' 呢"
   ┋ ┋ ┋
 ElseIf Len(Trim(luru.F.value)) = 0 Then
  focusto(15); errflag = false; msg="请还原成默认值"
 End if
 If (errflag = false) then
  msg = msg & vbCRLF
  MsgBox msg, 64, "提示"
  Exit Function
 End if
  datacheck = errflag; luru.Submit
End Function

Sub focusto(x)'将鼠标定位在出错处
document.luru.elements(x).focus()
End Sub
--></script>
  以下是录入试题.inc文件:

<script Language="VBScript" RunAt="Server">
 Function check_Pass()'检查库中是否已有此数据
  kmxxmc = Request.Form("kmxxmc")
  stbh = Request.Form("stbh") stnr = Request.Form("stnr")
  SQLstr = "select * from " & kmxxmc & " where stbh=" & "'" & stbh & "'"
  SQLstr = SQLstr & " or tmnr=" & "'" & stnr & "'"
  set adocon=Server.CreateObject("ADODB.Connection")
  adocon.Open "zxtest"
  set sa1=adocon.Execute(SQLstr)
  If sa1.EOF Then
   check_Pass = False
  Else
   check_Pass = True
  End If
  sa1.Close adocon.Close
End Function

Sub Add_Comment()'开始插入数据并显示出来
 Dim kmxxmc,xzsj,tmlx,nycd,jxyq,stbh,stnr
 Dim A,B,C,D,E,F,bzda,lrz,Picstr,SQLstr,lr_date,zhang,jie
 kmxxmc = Request.Form("kmxxmc") xzsj = Request.Form("xzsj")
  ┋ ┋ ┋
 bzda = Request.Form("bzda") zhang = Request.form("zhang")
 set adocon=Server.CreateObject("ADODB.Connection")
 adocon.Open "zxtest"
 SQLstr = "insert into " & kmxxmc & " (xzsj,tmlx,tmnd,jxyq,stbh,tmnr,  bxda_a,"
 SQLstr = SQLstr & ",jie,lrz) values (" & "'" & xzsj & "'," & "'" & tmlx & "',"
  ┋ ┋ ┋
 SQLstr = SQLstr & "'," & "'" & date & "'," & "'" & zhang & "'," & "'" & jie & "'," SQLstr = SQLstr & "'" & lrz & "')"
 set sa1 = adocon.Execute(SQLstr)
 Picstr="<img src='/images/hekai.jpg'>"
 Response.Write "恭喜!此为<i> " & lrz & "</i> 刚才录入的试题"
 Response.Write Picstr & " 试题编号:" & stbh
 Response.Write "试题内容:" & stnr & "<br>"
 Response.Write "答案_A:" & A & "<br>"
  ┋ ┋ ┋
 adocon.Close
End Sub

Sub Register()
 If check_Pass() Then '如果库中已有的话,则给出提示信息
  Show_Warning()
 Else '否则添加进去
  Add_Comment()
 End If
End Sub

Sub Show_Warning()'给出提示信息的函数
 Response.Write("<p>")
 Response.Write("<center>很抱歉<p>")
 Response.Write("库中已有此试题编号或试题内容,请返回前页修改!")
 Response.Write("</center>")
 Response.Write("Made by hekai himself in 2001")
End Sub
</script>

此为"检索试题"的程序代码:
<script Language="VBScript" RunAt="Server">
Function adjust_sql(adj_str)
 '目的---转换查询字符串中的特殊字符至SQL指令
 Dim final_str, i 'WRITE BY HEKAI2001
 adj_str = Trim(adj_str)
 final_str = "" '每次从传进来的字符串中取出一个字符,并判断是否为下述三个字符之一: DOS的Filter符号"|"、左中括号"["以及单引号"'"
 If Len(adj_str) > 0 Then
  For i = 1 To Len(adj_str)
   Select Case Mid(adj_str, i, 1)
     Case "[": final_str = final_str & "[[]"
     Case "|": final_str = final_str & "[{-}]"
     Case "'": final_str = final_str & "[&-()"
     Case Else: '以上皆非则什么事都不做!
     final_str = final_str & Mid(adj_str, i, 1)
   End Select
  Next
 End If
 adjust_sql = final_str
End Function

Sub Output_shiti()
 Dim kmxxmc,xzsj,stbh,zhang,jie,tmlx,nycd,jxyq,lrz,stnr,cond_count, Picstr
 Dim SQLstr,mf,zhangfw,jiefw,stbhfw,nycdfw,lr_datefw,lr_date
 '记录指定条件的栏位总数
 cond_count = 10; mf = "%"
 Picstr="<img src='/images/hk.gif'>"
 '取得表单栏位内容
 kmxxmc = Request.Form("kmxxmc")
 stbh = Request.Form("stbh")
  ┋ ┋ ┋
 stnr = Request.Form("stnr")
 '调整SQL指令中的特定字元
 kmxxmc = adjust_sql(kmxxmc)
 stbh = adjust_sql(stbh)
  ┋ ┋ ┋
 stnr = adjust_sql(stnr)
 If Len(xzsj) = 0 Then cond_count = cond_count - 1
  If Len(stbh) = 0 Then cond_count = cond_count - 1
  ┋ ┋ ┋
  If Len(stnr) = 0 Then cond_count = cond_count - 1
   SQLstr = "select * from " & kmxxmc & " where "
  If Len(stbh) > 0 Then
   SQLstr = SQLstr & " stbh " & stbhfw & "'" & stbh & "'"
  If cond_count > 1 Then
   SQLstr = SQLstr & " and "
   cond_count = cond_count - 1
  End If
 End If
  ┋ ┋ ┋
 If Len(stnr) > 0 Then
  SQLstr = SQLstr & " tmnr like " & "'" & mf & stnr & mf & "'"
  If cond_count > 1 Then
   SQLstr = SQLstr & " and "
   cond_count = cond_count - 1
  End If
 End If
 SQLstr = SQLstr & " order by lr_date DESC "
 set adocon=Server.CreateObject("ADODB.Connection")
 adocon.Open "zxtest"
 set sa1 = adocon.Execute(SQLstr)
 If sa1.EOF Then
  Response.Write "<br><center><h1>"
  Response.Write "Sorry!<p>"
  Response.Write "没有找到试题,"
  esponse.Write "请重试一次!</center><p>"
  Response.Write "<hr></h1>"
 Else
  i = 0
  Response.Write "<h2>"
  Response.Write "符合条件的试题相关内容如下:"
  Response.Write "</h2>"
  While Not sa1.EOF
   i = i + 1
   Response.Write "第 <i>" & i & "</i>题 题编号:<i>" & sa1("stbh") & "</i><br>"
   Response.Write "试题内容:" & sa1("tmnr") & "<br>"
    ┋ ┋ ┋
  Response.Write "答案A:" & sa1("bxda_a") & "<br>"
  sa1.MoveNext
  WEnd
  adocon.Close
 End If
End Sub
</script>

<% '"检索试卷"的查询方式源代码
 mf="%"
 select case request("findfs")
  case "sjbh"
   sqlstr="SELECT * FROM tbsjxx WHERE " & " sjbh LIKE"
   sqlstr=sqlstr & "'" & mf & request("findfsz") & mf & "'order by ksrq DESC"
   ┋ ┋ ┋
  case "lr_date"
   sqlstr="SELECT * FROM tbsjxx WHERE " & " lr_date LIKE"
   sqlstr=sqlstr & "'" & mf & request("findfsz") & mf & "'order by ksrq DESC"
  case else
   sqlstr="SELECT * FROM tbsjxx order by ksrq DESC"
end select %>
  下面是考试的时间自动控制程序(便于演示只设了60秒钟,实际应用应以系统调出试卷的考试时间为准!):

<SCRIPT language=JavaScript>
<!-- Write by HEKAI for TestTimeContorl
var timerID = null;var timerRunning = false
var stardate = new Date();var startime = gettotalsecond(stardate)
var totaltime = 60; var lasttime;var facetime
function Stepclock(){
// hk made by himself
if(timerRunning)
clearTimeout(timerID)
timerRunning = false }
function startclock(){
Stepclock();showtime() }
function gettotalsecond(getdate){
var hours = getdate.getHours()
var minutes = getdate.getMinutes();var seconds = getdate.getSeconds()
var gettotalsecond = seconds + minutes * 60 + hours * 3600
return(gettotalsecond) }
function showtime(){
var now = new Date();var timeValue = gettotalsecond(now)
document.clock.face.value = timeValue - startime
facetime = document.clock.face.value;lasttime = totaltime - facetime
document.clock.sytime.value = lasttime
timerID = setTimeout("showtime()",1000)
timerRunning = true
if (lasttime == 20){
for(i=1;i<=3;i++){
alert('考试时间只剩下最后20秒!')}}
if (lasttime == 0){
for(i=1;i<=5;i++){
alert('时间完毕!请迅速交卷!!')}}
if (lasttime == -10){
for(i=1;i<=10;i++){
alert('考试时间超过10秒,关闭此窗口!')}}
}//-->
</SCRIPT>
  八、后记

  此系统从研究设计到投入实际应用历时4个月之余,通过多次细致的测试及鉴定,证明系统完全具有可行性与可扩充性,就最近传来的消息,该系统获得了湖南省科技厅的普遍好评。另外,系统还有待于进一步升级,并将实现试卷的主观题部分和多媒体试卷。因此,仍有大量的工作需要开展。若有不详或不妥之处,请您以应用程序为准以及提出良好的意见与建议。

考试系统论文 摘要 随着计算机技术的普及和提高,计算机等级考试成为热门,等级考试的目的在于适应社会主义市场经济建设的需要,一方面是为了促进计算机知识的普及和计算机应用技术的推广,另一方面是为劳动力市场服务,即为劳动人员提供其计算机应用知识与能力的证实,为用人部门录用和考核工作人员提供一个统一、客观、公正的评价标准. 该系统用于用户登录、参加等级考试以及治理员进行试题录入、修改、删除、成绩查询、治理用户的ASP应用程序。它应该具有开放性、方便性和灵活性。治理员不仅可以轻松地向题库添加、修改和查询试题,而且还可以自动新增考试等级并建立相应的数据;它还答应用户根据自己的需求,选取考试等级。考生进行有效的身份验证登录后,选择考试等级,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提示。一旦考生做完交卷后便能立即看到自己的考试成绩,并且其分数将被记入库中以供审核和查阅;另外,还可完全由计算机自动灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,而且,不同的考生生成的试题是不同的。 系统选用的开发软件是ASP,后台数据库为ACCESS2000 系统的开发用结构化设计思想。本文介绍了考试系统的开发初衷和背景,系统的开发工具,结构化开发的具体步骤,其中包括实体-联系模型,数据流图,功能结构图等 关键字:考试试卷自动系统ASPvbscriptaccessresponserequest, Summary Alongwiththefastdevelopmentincomputertechnology,wehavegottenbigprogressinschoolscienceandinformationmanagement.Soitneedsequaldevelopmentineverypart.Theschoolwillbebuildinganinformationmanagementandeducationalplatfromhardwareandsoftwaretwosides.Idevelopedthissystemisinordertoreducetheteacherstesting,enhancethestudentssecrecy.Itcansavemorepeoplemoneyandtimethantraditionmethods. Thesystemisdedicatedtousersdownload,onlineexaminationandmanagersparticipateintheexaminationincluded,modify,delete,performanceenquiries,managementuserASPapplications.Itshouldbeopen,convenienceandflexibility.Managersnotonlytothedatabankcaneasilyadd,modifyandinquiryquestions,butalsocanautomaticallycreatenewexaminationgradingandthecorrespondingdata;Italsoallowsusersonthebasisoftheirownneeds,selectingexaminationgrades.Candidatesforeffectiveidentificationandrecorded,theselectionexaminationgrading,andrequestsinthetimeallowed,whenaprescribedtime,thesystemwillautomaticallybemade.Oncecandidateswillbeabletocompletehomeworkimmediatelyafterseeingtheirexaminationresultsandtheirscoreswillberecordedandputinstorage,forauditandinspection;Inaddition,thecomputercouldbecompletelyautomatedflexible,randomsamplesofthevarioustypesoftestquestionsfortheformationofvariousformsofpaper,itscontentwillchangewiththechangeintheexamination,but,differentcandidatesgeneratedquestionsaredifferent. ThesystemchoosesthesoftwareofdevelopmentthatuseisASP,andACCESS2000. Thesystemdevelopmentsadoptideaofconstructiondesigning.Thesystemmanualintroducedtheoriginalintentionandbackgroundofthisexaminationsystem,thetoolofdevelopmentofthesystem,thedetailsprocessofconstructiondevelopment,itcontenttheentity-model,thedatastreamchart,functionandconfigurationchart,andothernecessarychartexplanations. Keywords:testpaperautosystemASPvbscriptaccessresponserequest, 前言 计算机技术没有应用到考试上时,组织一次考试至少要经过五步,人工出题、考生考试、人工阅卷、成绩评估和试卷分析。教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常轻易出错的事情,明显的传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,应用不断扩大,如教学和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行等级考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习爱好。例如目前许多国际闻名的计算机公司所举办的各种认证考试绝大部分采用这种方式。 等级考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单, 使考试不受地域的局限。一个完备的等级考试系统可以使用户在网上学习过后及时检验自己的学习效果, 已发现自己的不足,使得学习效率得到很大提高。等级考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在 上自动完成。只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的只是精心设计题目、维护题库, 而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。为了适应新形势的发展, 我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、 便捷的作用,把老师从繁重的工作中解脱出来! 目前,应用软件运行的模式主要有二类:Client/server模式,Browser/Web模式。前者主要的缺点是维护、 升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式类似, 客户端是一个标准的浏览器,服务器端是WebServer,而WebServer与数据库和应用服务器的紧密结合, 使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、 企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。 另外,考试系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我完善的过程。 基于上述考虑,用Browser/Web模式来设计考试系统比较合适,服务器端我们采用Access数据库系统和 ASP组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和治理。 利用和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用ActiveServerPage技术,我开发了基于B/S模式多用户等级考试系统这一程序。它运用方便、操作简单,效率很高。现阶段虽只实现了试卷的客观题部分,但已具有用户注册、多用户同时等级考试、动态随机出题、时间控制、自动判卷,试题录入、修改题库、用户治理、科目治理、治理员治理、分数治理等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,同时也大大减轻了教师出题、出题和判卷等繁重的工作量。 第一章 系统设计相关原理 该在线考试系统主要采用ASP、HTML、Access数据库VBScript、SQL等技术和工具〖本文来自论文路上,Www.Lw63.Com,专业毕业设计〗整体设计遵循软件工程的方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现几个阶段。下面就对这几种技术和方法做一个概述。 2.统一的语言 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括: ☆查询数据 ☆在表中插入、修改和删除记录 ☆建立、修改和删除数据对象 ☆控制对数据和数据对象的存取 ☆保证数据库一致性和完整性 以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。 3.是所有关系数据库的公共语言 由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。如果使用了 PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/pgSQL,应用可以获得可观的性能提升。 2.2 系统应该具备的基本功能 ☆用户注册:用户可以进行注册,然后登录。 ☆用户信息的管理:管理员可以增删用户 ☆试题模型设置:设置各科目试题的每种题型的数量和分值。 ☆试题库管理:分科目,对单选、多选两种题型试题库的管理,使试题的增删、编辑更为简便。 ☆试卷生成:可以指定试卷的各题型的数量,从试题库里随机抽取试题生成一份原始试卷。 ☆在线考试:系统严格控制整个考试过程,实行时间的监控与权限的控制,考生需要在限定的考试时间内交卷。 ☆计算机自动阅卷:本系统只考虑客观题,要求计算机能自动阅卷,然后马上显示出考生分数。 ☆成绩查阅:考生考完以后,管理员应该能对所有纪录进行查询,并应该可以删除指定纪录。 除了实现上述功能以外,在线考试系统还应该具有友好、简洁的界面,安全性要高,稳定性要强,能够满足100人以上同时及进行在线考试。 3.3.3 用户、管理员权限 ☆管理员:在此系统中可以由若干个管理员,即系统管理员。他们具有一般用户所没有的权限,即具有管理用户、试题以及试卷等内容的权力。它不需注册,在数据库有一个表来存放相关信息,可由以存在的管理员添加或删除管理员。 ☆一般用户:主要是指学校的学生和企事业单位的培训对象等。 3.3.4 功能模块详细设计 下面,对各个功能模块分别进行详细讨论,具体情况见系统源程序。 3.3.4.1 管理模块 管理员可以向题库中添加各种类型且符合要求的试题,也可以对它们进行修改和删除。同时,管理员也能对科目、用户、考试记录等数据进行管理。 1. 试题管理 (1)试题录入 首先,用户选择试题所属科目。若菜单中没有该科目,则可以新增一个。返回、刷新一次页面,即可看到新增的科目名称。而且,在本系统中其它需要选择科目的地方也会自动更新。其次,每道试题有类型、试题内容与选项和答案等栏目。管理员输入完以后,即可看到预览效果。如果输入不合法,或者该科题库中已有该试题编号和内容等,则系统给出相应的提示或警告,以待更正。 (2)试题修改 管理员还可以对试题进行修改。不过,对于各表中的主键不用修改,避免了造成系统中的数据混乱,或者覆盖其它有用数据的现象。如果用户执行了非法操作,则必须重新操作。 (3)试题删除 管理员可以删除不再需要的试题。 2. 科目管理 (1)添加科目 其基本信息有科目名称、题型、题量和考试总时间等,对于用户输入的不符合系统要求的数据,系统仍旧给出提示或警告。 (2)科目删除 管理员可以删除不再需要的科目。 3.用户管理 管理员可以通过管理界面添加或删除用户。 4.管理管理员 管理员可以通过管理界面添加新管理员或删除原有管理员。 5.考试记录管理 系统中的管理员可以查询考试记录,也可以删除考试纪录。 3.3.4.2在线考试模块 进入在线考场是本系统最重要的部分之一。因为一个系统如果涉及到现实的话,就必须考虑得十分周到、完善。考生登录后,只要选择考试科目以后,就可以调出试卷进行在线考试。为了实现动态随机不重复的抽取试题,需要在选题过程中每选出一题,就要在试题库中作相应的标志,以便下次不会重复取出此题。试卷出来后要对试题库中的标志位复原。这样就会使每个考生的试卷都不同。考生的其答题信息通过单、复选按钮选择答案来反映。考试结束采取自主交卷和到了规定的时间自动题示有机结合的方式办法予以实现。 3.3.4.2用户注册模块 该模块的功能是实现用户远程注册。用户输入想要注册的用户名和密码,提交之后由系统判断该用户是否已经存在,如果存在,就给出相应信息,如果不存在,就把用户输入的用户名和密码写到数据库中,完成注册。 该文件就是考试界面,实现真正的动态随机选题,并对每个考生的考试时间进行监控,到结束时间后自动给出提示。 该文件的总体构架是使用了if else 语句进行了一个选择,刚进入该页面submit1得值肯定不等于“开始考试”,所以先显示出“开始考试”的按钮。按下以后,首先把当前时间以分种为单位存储在session的变量starttime中。然后进入随机抽取试题部分,单选题和多选题的抽取很相似,只不过一个是单选按钮,一个是多选按钮罢了。这里只解释单选题的部分。 strid1=""是定义了一个字符串变量,并先赋值为空。 Randomize是产生随机种子,在使用rnd()函数之前一定要先用Randomize产生随机种子才能实现其产生0~1之间随机数的功能。 for i=1 to session("singlenumber")直到next是选择singlenumber(代表某科目的单选题数量)个单选题。 下面的代码实现了从数据库中随机不重复的选题: set rs=server.createobject("adodb.recordset") sql="select * from question where subjectname='"&session("selectsubjectname") & "'and type='单选题' and haveselect=0 " rs.open sql,conn,3,2 count=rs.recordcount temp=fix(count*rnd(10)) rs.move temp rs("haveselect")=1 rs.update strid1=strid1 & rs("ID") & "," 其中haveselect标志某题是否已经被选过。 Count变量用来存放所有未被选过的单选题的总数。 temp变量用来存放0~Count之间的随机整数值。 rs.move temp是将当前记录移到第temp条纪录。 rs("haveselect")=1是将当前选出的纪录的标志位设为1,然后用rs.update数据库中的相应标志位改为1。 strid1=strid1 & rs("ID") & ","是将所有选出的试题的id号用逗号分割后存储在strid1一个变量中,以方便的把所有选出的试题的id号传到result.Asp文件中,这也是本设计的一个独特的地方。需要说明的是strid1变量的最后是一个逗号,在下一个文件中会详细说明如何进行处理。 在线考试系统的实现 摘要:人类已经步入了崭新的21世纪,以Internet技术为代表的信息技术为人类创造了一种新的不受地域、时间和计算机本身的约束的信息交流、共享和协作方式。21世纪是信息化的社会,数据信息应用已进入大规模的服务阶段。考试作为最直接的体现信息化社会中人们的知识水平的一种方式,是目前使用最为广泛的形式之一,传统的考试从出题、组卷、印刷,到试卷的分发、答题、收卷、再到判卷、公布成绩,整个过程都需要人工参与,周期长,工作量大,容易出错,还要有适当的保密工作,使的整个考试的成本较大。所以,实现无纸化、网络化、自动化的计算机考试系统,具有深远的现实意义和使用价值。 本系统采用B/S模式,采用现在使用广泛的ASP语言和对数据文件安全保护性极好的SQL Server2000设计开发出的一个实现在线考试的动态网站—基于Web的考试管理系统,也就是在线考试系统。该系统基本上具备一个网上数据传递的功能,具体分为用户层和管理层两大模块,用户层模块实现用户的考试、查询功能;管理实现题库的管理、试卷的生成、查询、修改、删除等功能。系统采用三层结构,统一的管理题库,自动组卷,自动判卷,极大的节省了人力、物力,提高了效率。 本文主要介绍了本课题的开发背景,所要完成的功能和开发的过程等,并给出了在开发过程中的一些经验体会。 关键词:B/S模式; WEB; 用户层; 管理层 Online Examination System To Achieve Abstract:We have got into the completely new 21Century, and as the typical of information technology, the internet creates a new way of information exchanged and shared for humans which isn’t restricted by the district, time, and computer itself. The 21-century is an informational society, in which the data information is exerted for a large service scale. The examination, as a way of directly embodying the knowledge of humans in the informational society, is one of the most common forms in present. However, humans have to participate into the whole process of traditional examination, whatever the stages of arranging examination are, such as, collecting the questions, printing, sending, and turning in paper, correcting answers or declaring the results, so that all these stages cause the long cycle, heavy workload, and more mistakes in the course of making an examination. Additionally, we also sometimes should pay attention to the secrecy. The above factors are enabling to raise the examination cost. So, to be the paperless, internalization, and automatic computer examination systems have confounded signification and valuable. Employing the B/S model, ASP language and the dynamic website developed by the SQL Server2000 and well protecting the data document---- on the basis of Web examination system, actually, the system has a basic foundation of sending internet dates, which is divided into two models, that is, the Consumer and the Administer. The Consumer is to be the foundation of the registration and landing, examination and inquired; the Administer is to be the foundation of the paper management, the paper formation, inquiry, amendment, and delectation. The system has three structures which are separately the unity of the paper management, automatic formation, and automatic correction, so it saves the labour, worthy, and improve the work efficiency. The paper mainly introduces the developing background, the foundations and the developing process, Meanwhile, we are sharing the experience from the developing. key words:B/S model ; WEB ; the costume; the domination 目 录 前言 1 1 在线考试系统的现状分析 2 2 开发工具简介和数据库技术 3 2.1 开发工具的选择 3 2.2 ASP简介 3 2.2.1 ASP概述 3 2.2.2 ASP的特点 3 2.3 SQL Server 2000简介 4 2.3.1 SQL Server概述 4 2.3.2 SQL Server的运行环境 7 2.3.3 SQL Server 安全性 7 2.3.4 SQL Server的特性 7 2.4 用来操纵数据的SQL命令 8 3 系统总体设计 9 3.1 系统需求分析 9 3.1.1 用户考试查询功能 10 3.1.2 系统管理员管理功能 11 3.2 系统功能模块设计 12 3.2.1 前台考试系统 12 3.2.2 后台管理员模块 12 3.3系统结构图 13 3.3.1 系统结构图 13 3.4实体关系图(ER图) 15 3.4.1 用户(学生或管理员)关系 15 3.4.2 试卷关系 15 3.4.3 题库关系 15 3.4.4考试过用户关系 16 3.4.5用户答题关系 16 3.5数据库的设计 17 3.5.1 数据库需求分析 17 3.5.2 数据库逻辑设计 17 3.5.3 数据库连接文件 19 4 系统功能模块 20 4.1前台考试模块 20 4.1.1 考试用户登陆模块 20 4.1.2 验证用户模块 21 4.1.3 考试开始模块 22 4.1.4 考试结束模块 26 4.2后台管理员模块 28 4.2.1 管理员登陆模块 29 4.2.2 试题创建模块 30 4.2.3 题库管理模块 31 4.2.4 试卷管理模块 34 4.2.5 考生管理模块 36 4.2.6 成绩统计模块 38 5 结束语 43
实现了在线考试系统,功能主要包括考试者功能和管理员功能,考试者需要功能:系统登录、选择不同的科目进行考试、在线考试、考试结束得到自己的成绩、查看试卷答案;管理员需要功能:管理员登录、考试科目管理、题库管理、用户管理、成绩管理、试卷管理: \MyOnLineExam\App_Code\BusinessLogicLayer 在线考试业务逻辑层,包括以下文件: \Course.cs 考试科目类 \Paper.cs 试卷类 \Users.cs 用户类 \Scores.cs 成绩类 \SingleProblem.cs 单选题类 \MultiProblem.cs 多选题类 \JudgeProblem.cs 判断题类 \FillBlankProblem.cs 填空题类 \MyOnLineExam\App_Code\DataAccessHelper 在线考试数据访问接口层,包括文件: \SQLString.cs 构造SQL语句的通用类 \GetSafeData.cs 安全获取数据类 \MyOnLineExam\App_Code\DataAccessLayer 在线考试数据访问层,包括文件: \DataBase.cs 数据访问类 \MyOnLineExam\Controls 在线考试用户控件,包括文件: \admin_left.ascx 管理员左侧菜单控件 \MyOnLineExam\DB \ 在线考试数据库,包括文件: \ MyOnLineExam.sql 数据库创建脚本 \ MyOnLineExam.bak 数据库备份 \MyOnLineExam\Images\ 在线考试系统图片文件夹 \MyOnLineExam\Web 在线考试系统页面,包括文件: \Login.aspx 用户登录页面 \UserTest.aspx 在线考试页面 \TestAnswer.aspx 查看试卷答案页面 \admin_Login.aspx 管理员登录页面 \adminMain.aspx 管理员主页面 \admin_CourseAdd.aspx 添加考试科目页面 \admin_CourseLists.aspx 考试科目管理页面 \admin_PaperSetup.aspx 制定试卷页面 \admin_PaperLists.aspx 试卷管理页面 \admin_UserAdd.aspx 添加用户页面 \admin_UserList.aspx 用户管理页面 \admin_UserScore.aspx 成绩管理页面 \admin_SingleSelectAdd.aspx 录入单选题页面 \admin_SingleSelectLists.aspx 单选题维护页面 \admin_MultiSelectAdd.aspx 录入多选题页面 \admin_MultiSelectLists.aspx 多选题维护页面 \admin_JudgeAdd.aspx 录入判断题页面 \admin_JudgeLists.aspx 判断题维护页面 \admin_FillBlankAdd.aspx 录入填空题页面 \admin_FillBlankLists.aspx 填空题维护页面
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值