编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 进入问吧 | 
用Delphi编制汉字录入能力测试软件,计算机应用能力考试中少不了对汉字输入能力的考核,在平时的教学考核中,这部分内容用笔试进行,但有下列缺点:首先是批改十分困难,其次是输入法必须限定,再者也是最主要的是不能较准确地反映学生的真实水平。针对这些问题,笔者用先进的可视化编程工具De1phi开发了基于windows平台的汉字录入能力水平测试软件。该软件可由教师自己出题,可设置考试时间,有查错能力,有评,
您现在的位置: 编程资料,学习资料,c,c++,vc,vc++,java,jsp,j2ee,j2me,asp,php >> 文章中心 >> delphi >> 文章正文
【字体:
用Delphi编制汉字录入能力测试软件   进入问吧

本站地址:http://www.bajiao123.com

作者:佚名    文章来源:不详    点击数:    更新时间:2007-8-1    

用Delphi编制汉字录入能力测试软件

  计 算 机 应 用 能 力 考 试 中 少 不 了 对 汉 字 输 入 能 力 的 考 核, 在 平 时 的 教 学 考 核 中, 这 部 分 内 容 用 笔 试 进 行, 但 有 下 列 缺 点: 首 先 是 批 改 十 分 困 难, 其 次 是 输 入 法 必 须 限 定, 再 者 也 是 最 主 要 的 是 不 能 较 准 确 地 反 映 学 生 的 真 实 水 平。 针 对 这 些 问 题, 笔 者 用 先 进 的 可 视 化 编 程 工 具De1phi 开 发 了 基 于windows 平 台 的 汉 字 录 入 能 力 水 平 测 试 软 件。 该 软 件 可 由 教 师 自 己 出 题, 可 设 置 考 试 时 间, 有 查 错 能 力, 有 评 分 功 能。 由 于 该 软 件 是 借 助 于 操 作 系 统 提 供 的 输 入 法 录 入 汉 字, 因 此 软 件 适 用 于 使 用 各 种 输 入 法 的 用 户。 下 面 将 主 要 的 方 法 作 一 介 绍:

1. 试 题 与 答 卷

  试 题 是 以 文 本 文 件 的 形 式 保 存, 因 此 一 般 的 文 本 编 辑 器 均 可 以 直 接 对 其 进 行 编 辑。 试 题 通 过OpenDia1og 控 件 装 入 到 名 为TestMemo 的Memo 控 件 中, 为 显 示 清 楚, 用 一TPanel 控 件TPanel0 并 将 其 设 为 黑 色 构 成 一 模 拟 黑 板, 通 过 几 个Label 将TestMemo 中 的 试 题 分 行 显 示 在TPanel0 上, 达 到 在 黑 板 上 出 试 题 的 效 果。 因 为 黑 板 上 一 行 最 多 只 能 显 示 二 十 个 汉 字, 故 又 引 人ShowMemo 控 件, 将TestMemo 中 过 长 的 行 转 换 为 二 十 个 字 一 行, 防 止 出 行。 这 里TestMemo 和ShowMemo 的Visible 属 性 均 为False。

  答 卷 用 被 称 为AnswerMemo 的Memo 控 件 实 现, 可 充 分 利 用 该 控 件 的 编 辑 功 能。

2. 同 步 显 示 能 力

  由 于 试 题 内 容 通 常 较 多, 不 能 在 黑 板 上 一 次 全 部 显 出, 因 而 显 示 的 内 容 应 受AnswerMemo 中 的 光 标 控 制。 也 就 是 说, 随 着AnswerMemo 中 的 光 标 在 不 同 行 的 移 动, 黑 板 上 也 应 及 时 显 示 出 这 行 需 输 入 的 内 容。 因 此 确 定 光 标 的 位 置 是 关 键, 该 功 能 是 利 用 函 数UpdateCursorPos 实 现 的, 过 程 如 下:

   Procedure TMain.UpdateCursorPos;

   var

     CharPos:TPoint;

   begin

     CharPos.Y:= SendMessage(AnswerMemo.Handle,

EM_LINEFROMCHAR,AnswerMemo.SelStart,0);

     CharPos.X:=(AnswerMemo.SelStart

     SendMessage(AnswerMemo.Handle,

EM_LINEINDEX,CharPos.Y,0));

     CurX:=CharPos.x;

     CurY:=CharPos.y;

   end;

  在 过 程Check 中 调 用 该 过 程, 而 后 由AnswerMemo 的OnKeyUp 事 件 中 调 用Check, 实 现 了 在 答 卷 过 程 中 光 标 换 行 的 移 动 试 题 内 容 也 随 之 移 动 的 效 果。

3. 禁 止 从 剪 贴 板 复 制

  由 于Windows 具 有 从 剪 贴 板 复 制 内 容 的 功 能, 使 得 试 题 内 容 能 非 常 容 易 地 被 复 制 到AnswerMemo 中 而Memo 控 件 又 不 具 备 禁 止 从 剪 贴 板 复 制 的 功 能, 从 而 造 成 不 答 题 也 能 得 满 分 的 恶 果, 因 此, 必 须 有 禁 止 从 剪 贴 板 复 制 的 能 力。 实 现 方 法 是 在USES 中 添 加Clipbrd, 再 在AnswerMemo 的OnKeyPress 事 件 处 理 过 程 中 写 入Clipboard.Clear, 这 样 在 答 卷 时 一 按 健 就 将 剪 贴 板 中 的 内 容 清 除。

4. 定 时 器 的 实 现

  既 然 是 测 试 自 然 少 不 了 定 时 功 能, 利 用Timer 控 件 能 方 便 地 实 现 定 时 器 的 制 作。 但 是Timer 是 非 可 视 控 件, 需 要 写 代 码 来 显 示 所 剩 时 间。 在StopWatchTimer 的 唯 一 事 件OnTimer 处 理 过 程 中 进 行 如 下 设 计。

   procedure TMain.StopWatchTimer

(Sender:TObject);

   var B,F:String;

   begin

   if SecTime=0 then

     begin

       SecTime:=59;

       TestTime:=TestTimer -1;

     end

   else

     SecTime:=SecTime -1;

   if SecTime

  这 里label5 用 于 显 示 测 试 所 剩 时 间,SecTime 与TestTime 分 别 是 在TMain 类 中 的private 和public 下 定 义 的Integer 型 变 量。

5. 评 分 功 能

  当 测 试 到 时 后, 应 先 禁 止 输 入, 这 只 要 在StopWatchTimer 过 程 中 加 上AnswerMemo.Enabled :=False; 语 句 即 可。 另 外 应 显 示 考 试 成 绩, 过 程CompareAnswerTest 就 是 比 较AnswerMemo 和ShowMemo 中 的 内 容, 统 计 出 输 入 正 确 的 汉 字 个 数 并 放 于 变 量ExactWordCount 中。

  程 序 如 下:

procedure TMain.CompareAnswerTest;

var i,j:Integer;

   s,w:string;

begin

   i:=0;

   while ShowMemo.lines.Strings[i]'' do

     begin

       j:=1;

S:=copy

(ShowMemo. Lines. strings[i],j,2);

       W:=copy

(AnswerMemo.Lines.Strings[i],j,2);

       while s''

[1] [2] 下一页

   

进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
编程资料集中营