你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
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)。

  推荐精品文章

·一文解读:工程师常用的接口大全
·谷歌在深圳设立办公室 或专注硬件业务
·甲骨文发布关键补丁 修复英特尔芯片漏洞
·容器圈2017年回顾及2018年技术热点预测
·外媒速递:Web开发者与用户界面开发者之间…
·在2018年最值得去学习的编程语言
·共享医疗来了!温州全民健康信息化“十三…
·百度 CES 发布会:重磅推出 Apollo 2.0,…
·数据科学热到爆,如何让数据成为运维的大…
·芯片涨价潮再度来袭,2018芯片国产化迫在…
·美团云+AI,打造最开放人工智能平台,带来…
·京东京麦:微服务架构下的高可用网关与容…
·阿里云计算公司总部效果图曝光 预计2021年…
·东进:加密将成为中国企业数据安全的标配…

  联系方式
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