你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
C++Builder下基于CppWebBrowser的“考试系统”设计与实现(三)
 

3  关键技术编码设计

    系统在编码实现中,重点要解决好随机抽题、HTML试卷生成与评判、HTML页面自动填充、系统完整性校验等关键技术。

3.1  随机抽题实现

“专业技术理论考试系统”数据库内有数千道试题,而每次考试,试题数目一般在80——100道之间,组织试卷时,就需要从试题数据库内随机的抽取要求类型、要求数目的数据记录。为此,作者设计了如下的随机数产生函数,实现所要抽取记录编号的生成。

 

//在randRange范围内产生randNum个不重复的随机数

//randRange : 随机数生成范围

//randNum : 要生成的随机数个数

//randArray : 返回生成的随机数数列

void  MakeRands(int randRange,int randNum,int* randArray)

{

   if(randRange < randNum) return;

   int*  numArray = new int[randRange];

   for(int i=0;i<randRange;i++)

       numArray[i] = i;

   int curRange = randRange;       

   for(int i=0;i<randNum;i++)

      {

          int anum = RandomRange(0,curRange);

          int tem = numArray[anum];

          numArray[anum] = numArray[curRange-1];

          numArray[curRange-1] = tem;

          curRange = curRange-1;

       }

   int index = 0;

   for(int i = randRange-1;i > randRange-1-randNum;i--)

      {

          randArray[index] = numArray[i];

          index++;

      }

   delete  []numArray;

   return;

}

    在产生试卷的过程中,依次读取randArray[]数组中元素相对应的数据记录,从而快速实现试卷试题的读取。

 

3.2  HTML试卷生成

系统设计生成的HTML试卷如下所示。

 

专业技术理论考试(专业1)

单位:部门1 姓名:fsd 卷面总分:100 答题时长:45分钟

一、填空题(共 40 题,每题 1 分,共 40 分)

    1、重点防火单位和防火场所,应当制定         ,明确消防应急分队,定期组织有针对性的         。

 

 

其HTML编码如下:

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>temp</title>

<style type="text/css">

<!--

.STYLE1 {font-size: 24px;

        font-family: "宋体";

        font-weight: bold;}

.STYLE2 {font-size: 36px;

        font-family: "宋体";

        font-weight: bold;}

-->

</style>

<style type="text/css">

<!--

body {

    background-color: #CCFFFF;

}

-->

</style>

</head>

<body>

<p align="center" class="STYLE2">专业技术理论考试(专业1)</p>

<p align="center"><strong>单位:</strong>部门1<strong>  姓名:</strong>fsd<strong>  卷面总分:</strong>100<strong>  答题时长</strong>:45分钟</p>

<p align="left" class="STYLE1">一、共同科目(共 40 题,每题 1 分,共 40 分)</p>

<span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; <a name="Question_1_1"></span>

<strong>1、重点防火单位和防火场所,应当制定

<span style="mso-tab-count:1"><input type="text" size="8" ID="100101" /></span>

,明确消防应急分队,定期组织有针对性的

<span style="mso-tab-count:1"><input type="text" size="8" ID="100102" /></span>。<p></p>

 

将从数据库中抽出的试题按HTML编码格式输出到一TstringList对象,HTML试卷数据就准备好了。这里特别要注意的是每个HTML对象(试卷中要求用户输入的部分)要进行唯一标识,以便在评卷和表单填充时可以访问到每个对象。这里采用唯一的ID值进行区分。ID命名的规则为:ID值=(大题序号+1)*100000 + (小题序号+1)*100 + (对象序号+1)。

  推荐精品文章

·黑客频频攻击区块链安全软肋,如何保证区…
·阿里、商汤在香港设立人工智能实验室 本月…
·云端的竞争:巨头纷纷加码云市场
·中国云体系联盟主办未来科技独角兽与行业…
·Gartner:企业首席信息官们可能没有注意到…
·微软开源Azure云服务AI引擎Infer.NET
·创新指纹读取器出炉:平均准确率最高可达…
·微软投资东南亚出行公司Grab 将进行AI等技…
·Facebook开发AI系统:看美食图片能自动生…
·工信部:促进区块链与实体经济深度融合
·谷歌首度证实了重返中国的Dragonfly计划的…
·Java 11正式发布,告诉你到底应不应该升级…
·Stack Overflow 10 周年了,作为程序员你…
·新手初学Python最常犯的十个错误,其中有…

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089