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

  推荐精品文章

·“物链网”的正确打开姿势:区块链如何拯…
·Facebook利用人工智能的六种方式,有些你…
·微软推出Visual Studio Kubernetes工具包…
·Facebook 正在重构 React Native,将重写…
·Facebook 正在重构 React Native,将重写…
·GitLab发布Web IDE 在Web端为你提供集成开…
·5G第一阶段标准发布 中国厂商标准占三成
·微软Windows 10的上下文菜单引入Fluent D…
·蚂蚁金服完成新一轮100亿美元融资 估值15…
·搭搭云发布3.0平台上线暨品牌升级 让SaaS…
·京东推出京点智慧办公方案 一体化服务平台…
·Java 流(Stream)、文件(File)和IO
·Java 异常处理
·Java 基础语法

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