专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » 按键精灵vb运用:VB在CAI编制程序的运用 »正文

按键精灵vb运用:VB在CAI编制程序的运用

来源: 发布时间:星期四, 2009年2月12日 浏览:301次 评论:0


:前言
----众所周知VB中MCIControl控件在设计多媒体CAI(Computer Assisted Instruction) 软件Software中有着非常重要作用有关这方面文章也很多;其实,VB中其它众多Control控件在设计CAI软件Software时也有不少应用本文就介绍几个在非多媒体CAI编程中有着特殊应用Control控件相信对广大CAI编程者有所帮助

2:文本框应用
---- 在CAI 编 程 中 经 常 要 面 临 这 样 问 题: 如 何 在 屏 幕 上 显 示 大 量 练 习 题 或 试 题 ? 学 生 如 何 在 屏 幕 上 输 进 多 项 选 择 题、 填 空 题 或 问 答 题 答 案 ? 利 用VB 中 文 本 框 就 能 很 容 易 地 解 决 这 个 问 题 文 本 框(TextBox) 是VB 中 最 基 本 字 符 串 输 入 和 输 出 对 象 它 不 仅 可 以 供 用 户 输 入 数 据 还 可 以 显 示 程 序 输 出 数 据 和 已 编 辑 好 文 本 文 件 这 样 只 要 我 们 事 先 把 大 量 练 习 题 或 试 题 用 文 字 处 理 软 件 编 辑 成 文 本 文 件 然 后 在VB 程 序 运 行 阶 段 用 文 本 框 显 示 文 本 文 件 内 容 即 可

下图是个用来辅导学生学习英语界面:
----图中有 2个文本框大文本框用来显示练习题内容小文本框用来供学生输入答案,大小文本框些重要属性设置情况如下:①:大文本框MaxLength值设为缺省值0表示它能容纳最多数没有限制而小文本框MaxLength值设置可根据实际情况进行限制或不限制字数在这里是没有限制字数②:大文本框MultiLine值设为True这样大文本框就允许有多行文字输出显示小文本框MultiLine值设为False表示小文本框就只允许有行文字输出显示③:大文本框ReadOnly值设为True表示不允许修改大文本框里练习题内容小文本框ReadOnly值设为False 表示可以修改小文本框里内容④:大文本框Scrollbars值设为3表示大文本框有水平和垂直滚动条小文本框Scrollbars值设为0表示小文本框没有滚动条⑤:大小文本框Text值设为空否则运行时将在文本框里显示Text1
----由于小文本框里数可以不限制因此也适用于多项选择题填空题甚至简答题和问答题

3: 数 据 库 应 用
---- 数 据 库 在CAI 程 序 设 计 中 应 用 很 广 数 据 库 可 用 来 存 放 题 目 编 号、 题 目 内 容 和 答 案 以 及 学 生 输 入 答 案 等 等 为 了 程 序 运 行 时 数 据 库 对 象 不 在 屏 幕 上 显 示 出 来 要 求 把 数 据 库 对 象 Visible 属 性 设 为FalseVB 可 以 访 问 多 种 数 据 库 并 且 编 程 也 不 复 杂 为 了 加 快 数 据 库 访 问 速 度 最 好 使 用Access 建 立 扩 展 名 为MDB 数 据 库 如 果 是 用Foxbase 或Foxpro 建 立 扩 展 名 为DBF 数 据 库 可 用 如 下 方 法 把 它 进 行 转 换: 先 用Foxpro For Windows 打 开DBF 形 式 数 据 库 然 后 把 它 另 存 为 扩 展 名 为XLS Excel 表 格 文 件 再 利 用Access 就 可 以 把Excel 表 格 文 件 转 换 为MDB 形 式 数 据 库 在 图 每 个 题 目 编 号 和 答 案 就 存 放 在 数 据 库 中 通 过 用 鼠 标 单 击\" 下 题\" 和\" 上 题\" 可 以 把 数 据 库 指 针 指 向 任 何 条 记 录
4:MsgBox 函 数 和 语 句 应 用
---- MsgBox 函 数 是VB 提 供 以 多 种 方 式 将 信 息 传 递 给 用 户 函 数 它 有 函 数 和 语 句 两 种 形 式 函 数 和 语 句 根 本 区 别 在 于 函 数 有 返 回 值 而 语 句 没 有 当MsgBox 将 信 息 传 递 给 用 户 时 传 递 信 息 窗 口 是 嵌 在 运 行 程 序 窗 口 中; 因 此 在CAI 程 序 设 计 中 这 个 函 数 非 常 有 用 如 果 能 把 它 和 数 据 库 应 用 结 合 起 来 其 作 用 就 更 大 在 图 用 鼠 标 单 击\" 答 案\" 电 脑 不 仅 告 诉 你 该 题 目 答 案 还 告 诉 你 选 择 答 案 理 由 见 图 2
---- 这 就 是 利 用 了MsgBox 语 句 结 果 在 程 序 设 计 阶 段 设 计 出 几 个 标 签 或 文 本 框 它 们 分 别 和 数 据 库 中 \" 答 案\" 和\" 答 案 说 明\" 字 段 相 关 联 这 样 当 图 题 目 编 号 改 变 时\" 答 案\" 所 输 出 内 容 也 跟 随 变 化 由 于MsgBox 函 数 输 出 信 息 可 多 达1024 个 字 符 所 以 选 择 题 填 空 题 简 答 题 答 案 和 选 择 答 案 理 由 都 可 以 用 它 来 输 出 值 得 是: 数 据 库 字 符 型 字 段 最 多 只 能 容 纳255 个 字 符 因 此 当 问 题 答 案 和 答 案 说 明 比 较 长 时 就 要 把 它 们 分 成 几 个 字 段

5: 计 时 器 应 用
---- 在CAI 程 序 中 经 常 要 记 录 学 生 练 习 或 考 试 所 用 时 间VB 中 就 是 使 用 计 时 器 来 完 成 这 个 任 务 中 所 显 示 时 间 就 是 使 用 者 从 开 始 做 练 习 到 目 前 所 用 时 间 计 时 器 另 外 个 作 用 就 是 进 行 倒 计 时 倒 计 时 程 序 在 设 计 限 时 练 习 和 限 时 考 试 程 序 就 要 用 到 当 倒 计 时 为 零 时 程 序 自 动 结 束 运 行 限 时 练 习 或 考 试 也 随 的 结 束
---- 下 面 这 个 程 序 是 图 所 对 应 源 程 序 主 要 部 分 它 包 括 了 以 上 4 个 方 面 应 用

Dim h0 As Integer
\'ho,mo,so为时间
Dim m0 As Integer
Dim s0 As Integer
Private Sub Command5_Click
\'用鼠标单击\"上题\"
If Val(Label1.Caption) > 1 Then
Data1.Record.MovePrevious
Else
Title = \"提示\"
msg2$ = \"这是第题!\"
MsgBox msg2$, 0, Title
End If
End Sub
Private Sub Command7_Click
\'用鼠标单击\"下题\"
If Val(Label1.Caption) < 224 Then
\'共224道题
Data1.Record.MoveNext
Else
Title = \"提示\"
msg2$ = \"这是最后题!\"
MsgBox msg2$, 0, Title
End If
End Sub
Private Sub Command8_Click


\'用鼠标单击\"确定\"
ch = UCase$(Trim$(Text2.Text))
ans = UCase$(Label4.Caption)
If StrComp(ch, ans, 1) = 0 Then
\'如果和题目正确答案
Title = \"提示\"
msg1$ = \"你做对了!\"
msg2$ = \"这是最后题,你做对了\"
If Val(Label1.Caption) < 224 Then
MsgBox msg1$, 0, Title
Else
MsgBox msg2$, 0, Title
Close
End If
Else
Title = \"提示\"
msg1$ = \"你做错了!\"
msg2$ = \"这是最后题,你做错了\"
If Val(Label1.Caption) < 224 Then
MsgBox msg1$, 0, Title
Else
MsgBox msg2$, 0, Title
Close
End If
End If
Text2.Text = \" \"
\'把第 2个文本框内容变空
End Sub
Private Sub Command9_Click
\'用鼠标单击\"答案\"
an = Label4.Caption \'an为题目正确答案
jx = Label6.Caption \'jx为题目答案介绍说明
Title = \"答案提示\"
msg2$ = \"本题答案为:\" & an + jx
MsgBox msg2$, 0, Title
End Sub
Private Sub Form_Load
Open \"C:\\gram\\gram.txt\" For Binary As #1
\'gram.txt文件里存放了练习题内容
filelength = LOF(1)
If filelength > 60000 Then
MsgBox \"File is too long\", 16
Exit Sub
End If
tmp$ = String$(LOF(1), 0)
Get #1, , tmp$
Text1.Text = tmp$
Close #1
h0 = Val(Time$)
m0 = Minute(Time$)
s0 = Second(Time$)
Text2.Text = \" \"
End Sub

Private Sub Text2_Change
Text2.Text = UCase$(Text2.Text)
\'把第 2个文本框里内容变成大写
End Sub

Private Sub Timer1_Timer
Dim gg As Integer
Dim h As Integer
Dim m As Integer
Dim s As Integer
Dim x1 As Integer
Dim x2 As Integer
h = Val(Time$)
m = Minute(Time$)
s = Second(Time$)
gg = (h - h0) * 3600 + (m - m0)
* 60 + (s - s0)
x1 = Int(gg / 60)
x2 = (gg - (Int(gg / 60)) * 60)
Label7.Caption = Str(x1) + \" 分\"
+ Str(x2) + \" 秒\"
End Sub

6: 在 线 帮 助 应 用
---- 我 们 这 里 讲 在 线 帮 助 是 指 模 仿Windows 在 线 帮 助 把 各 种 练 习 题 或 试 题 以 及 它 们 答 案 以 在 线 帮 助 形 式 在 屏 幕 上 呈 现 出 来( 见 图 3) 并 非 是 指 在 程 序 中 加 个 帮 助 菜 单 来 告 诉 学 生 如 何 使 用CAI 软 件Windows 在 线 帮 助 本 身 就 是 个 很 好 教 学 软 件 如 果 在CAI 程 序 中 模 仿Windows 在 线 帮 助 那 将 使 你 CAI 程 序 更 加 实 用 例 如: 各 种 选 择 题、 填 空 题 特 别 是 问 答 题 和 论 述 题 要 让 学 生 能 快 速 查 阅 问 题 答 案 使 用 在 线 帮 助 是 最 好 不 过 实 际 上 在Internet 或HTML 没 有 兴 起 的 前 国 外 很 多 CAI 软 件 中 就 有 模 仿Windows 在 线 帮 助 模 块 要 把 各 种 练 习 题 或 试 题 以 及 它 们 答 案 以 在 线 帮 助 形 式 在 屏 幕 上 呈 现 出 来 就 要 把 它 们 制 作 成 帮 助 文 件 为 此 请 先 用WORD 把 练 习 题 或 试 题 以 及 它 们 答 案 编 辑 好 为 了 让 使 用 者 更 加 方 便 操 作 编 辑 时 可 以 在 每 个 小 题 后 面 加 上 这 几 个 字\" 单 击 此 处 可 查 阅 答 案\"( 或 简 单 点 就 用\" 答 案\") 制 作 帮 助 文 件 时 就 把 这 几 个 字 作 为 关 键 词 分 别 和 每 个 题 目 答 案 建 立 关 联 详 细 介 绍 如 何 制 作 帮 助 文 件 文 章 已 很 多 在 此 就 不 介 绍 了
---- 在VB 中 调 用 帮 助 系 统 方 法 的 是: 在 程 序 设 计 阶 段 在 窗 口 中 设 计 出 个 命 令 按 钮 和 个 对 话 框 然 后 加 进 如 下 代 码:

Attribute VB_Name = \"Module1\"
\'Declaration for WinHelp
Declare Function OSWinHelp% Lib \"User\"
Alias \"WinHelp\" (ByVal hwnd%, ByVal
HelpFile$, ByVal wCommand%, dwData As Any)

Private Sub SSCommand1_Click
Cls
With CommonDialog1
.HelpCommand = cdlHelpContents
.HelpFile = \"C:\\zggm\\ch23.hlp\"
\'ch23.hlp是我自己制作个帮助文件
.ShowHelp
End With
End Sub
1

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: