1、华 北 工 学 院 计 算 机 科 学 与 技 术 系摘 要一 般 情 况 教 师 想 出 一 份 试 卷 , 要 么 到 庞 大 的 题 库 里 一 道 一 道 的 把 题 找 出 来 , 或是 从 几 本 相 关 的 书 里 把 题 一 道 一 道 挑 出 来 。 这 样 即 费 时 又 费 力 , 而 且 很 难 保 证 试 题的 覆 盖 面 和 把 握 好 试 卷 的 难 度 。 正 是 为 了 能 够 帮 助 教 师 轻 松 的 出 一 份 高 质 量 的 试 卷 而开 发 了 本 软 件 。 为 了 达 到 预 期 的 目 标 我 们 最 终 选 择 了 Microsoft Off
2、ice Word 做 为 本软 件 的 终 端 输 出 。 本 软 件 是 在 对 现 有 控 件 的 改 进 和 VBA 编 程 的 研 究 的 基 础 上 开 发 的 。本 软 件 实 现 了 以 下 主 要 功 能 : 1.手 动 生 成 试 卷 ; 2.自 动 生 成 试 卷 ; 3.抽 取 现 有 试 卷 ;4.用 户 管 理 ; 5.数 据 库 管 理 。 大 量 的 测 试 表 明 本 软 件 在 Windows 98 me 2000 XP平 台 配 合 Office XP 2003 的 环 境 下 程 序 运 行 稳 定 且 各 项 功 能 运 行 得 都 很 正 确 , 基
3、本达 到 了 预 期 的 要 求 ! !结 论 : 经 过 老 师 的 实 际 试 用 本 软 件 在 界 面 上 和 功 能 上 都 有 独 到 之 处 ! ! 相 信 完全 可 以 胜 任 出 一 份 好 的 试 卷 任 务 。全 套 源 程 序 代 码 , 联 系 153893706关 键 词 : 题 库 系 统 , 试 卷 生 成 , 数 据 库 , VBA华 北 工 学 院 计 算 机 科 学 与 技 术 系AbstractThe general situation teacher thinks out a paper, reach huge exam pool each finds
4、 out the question, or shoulder the question together out from several relevant books. Time-consuming and also strenuous like this, and very difficult to guarantee coverage rate and paper degree of difficulty of examination question. Helping the teacher thinks out a higt quality paper is the destinat
5、ion of develop this Software. In the cause of this we select the terminal is Microsoft Office Word. This Softwares base of develop is improve on control in existence and study the VBA programing. These functions of this software are as follows: One. Manual create paper; Two. Auto create paper; Three
6、. Select from existential papers; Four. User manage; Five. Database manage. The result of many test is that this software is runing steady and these funtions of it is runing right in the environment which make up of Windows 98 me 2000 XP and Office XP 2003, it is basic reach the requests.In all: the
7、 result of real test by teacher is that this software are unique in interface and function. We must believe it can complete creating a high quality paper.Key Words: Exam, Problem pool, VBA, word华 北 工 学 院 计 算 机 科 学 与 技 术 系目 录摘 要 1Abstract.2前 言 11 . 简 述 21.1 开 发 工 具 简 介 .21.1.1 Delphi 7.0 的 特 点 .21.1.
8、2 主 要 的 控 件 及 其 属 性 简 介 .21.1.3 数 据 库 连 接 方 式 选 择 .31.2 程 序 运 行 环 境 .42 . 需 求 分 析 52.1 负 责 的 功 能 模 块 .52.2 软 件 功 能 分 析 .53 . 设 计 阶 段 83.1 概 要 设 计 .83.1.1 系 统 数 据 库 设 计 83.2 详 细 设 计 .123.2.1 程 序 流 程 图 123.2.2 窗 体 功 能 简 介 144 . 软 件 实 现 20华 北 工 学 院 计 算 机 科 学 与 技 术 系4.1 OOP 简 介 204.2 开 发 的 关 键 技 术 205 .
9、 软 件 测 试 及 其 维 护 .245.1 系 统 测 试 平 台 简 介 245.2 测 试 方 法 .245.3 系 统 维 护 .256 . 开 发 总 结 26参 考 文 献 27致 谢 28译 文 29原 文 33华 北 工 学 院 计 算 机 科 学 与 技 术 系1前 言在 开 发 本 软 件 之 前 , 正 是 我 努 力 提 高 自 己 的 Delphi 开 发 水 平 的 时 期 。 因 此 我 选择 了 Delphi 做 为 我 的 开 发 工 具 , 然 而 这 次 开 发 的 软 件 和 以 前 不 一 样 。 最 主 要 的 区 别在 于 这 个 软 件 要 以
10、 Microsoft Office Word 做 为 试 卷 的 终 端 输 出 。 而 它 们 又 是 两 个 不同 公 司 的 产 品 。 因 而 , 刚 一 开 始 我 特 别 担 心 这 个 技 术 能 否 得 到 比 较 圆 满 的 解 决 。 在开 发 的 过 程 中 我 不 断 的 对 VBA 技 术 进 行 研 究 , 并 且 将 它 应 用 于 这 次 的 软 件 开 发 中 。因 而 比 较 好 的 解 决 了 Microsoft Office Word 的 接 口 编 程 问 题 。 还 有 一 个 比 较 棘 手的 问 题 就 是 Delphi 提 供 的 控 件 都
11、是 很 基 本 的 , 而 这 次 开 发 中 要 用 到 一 个 可 以 标 记 选中 状 态 的 树 型 控 件 , 在 对 Delphi 的 TtreeView 的 深 入 研 究 后 确 认 它 不 能 胜 任 这 个 任务 。 因 此 , 我 开 始 寻 找 第 三 方 控 件 , 然 而 这 一 次 我 很 失 望 因 为 只 找 到 了 一 个 2000 年编 写 的 TCheckTree 控 件 , 没 办 法 了 , 最 后 下 定 决 心 修 改 那 个 TCheckTree 控 件 以 使 它能 更 加 稳 定 和 实 用 。 在 深 入 研 究 Windows 的 消
12、息 机 制 和 VCL 框 架 对 Windows 消 息 机 制的 封 装 技 术 后 我 成 功 的 修 改 了 那 个 TCheckTree 控 件 。 在 程 序 开 发 的 后 期 测 试 中 , 我充 分 利 用 各 个 同 学 电 脑 平 台 的 多 样 性 。 把 本 软 件 在 多 达 4 种 操 作 系 统 和 3 个 不 同 版 本的 Office 上 进 行 测 试 。 测 试 表 明 : 在 Windows 98 me 2000 XP 平 台 配 合 Office XP 2003 下 程 序 运 行 稳 定 且 各 项 功 能 运 行 得 都 很 正 确 ! !华 北
13、 工 学 院 计 算 机 科 学 与 技 术 系21 . 简 述1.1 开 发 工 具 简 介1.1.1 Delphi 7.0 的 特 点Delphi 是 Borland 公 司 出 品 的 开 发 工 具 , 在 众 多 的 开 发 工 具 中 , 我 们 为 什 么 要选 择 Delphi 呢 ? 因 为 Delphi 具 有 众 多 其 它 开 发 工 具 所 没 有 的 优 点 ! 具 体 介 绍 如 下 : 开 发 的 高 效 语 言 的 高 效 编 译 的 高 效 执 行 的 高 效 维 护 的 高 效基 于 以 上 理 由 , 我 们 毫 不 忧 郁 的 选 择 了 Delphi
14、 做 为 我 们 的 开 发 工 具 ! !1.1.2 主 要 的 控 件 及 其 属 性 简 介 TForm 类 的 控 件 :1) BorderIcons 属 性 : 用 来 控 制 程 序 标 题 按 钮 的 可 用 性 。2) BorderStyle 属 性 : 用 来 控 制 程 序 边 框 的 样 式 。3) Color 属 性 : 用 来 控 制 程 序 界 面 的 颜 色 。4) Font 属 性 : 用 来 控 制 程 序 界 面 的 字 体 。5) Position 属 性 : 用 来 控 制 程 序 运 行 时 界 面 的 显 示 位 置 。 TADOConnection
15、 类 的 控 件 :1) ConnectionString 属 性 : 用 来 控 制 链 接 字 符 串 。2) LoginPrompt 属 性 : 用 来 控 制 链 接 时 是 否 要 输 入 密 码 。3) Connected 属 性 : 用 来 控 制 是 否 进 行 链 接 。 TADOQuery 类 的 控 件 :1) Connection 属 性 : 用 来 指 定 和 哪 个 TADOConnection 控 件 相 连 。2) SQL 属 性 : 用 来 添 加 向 数 据 库 提 交 的 SQL 语 句 。3) Add 方 法 : 用 来 向 SQL 属 性 添 加 SQ
16、L 语 句 。4) Open 方 法 : 用 来 执 行 SQL 语 言 中 的 Select 语 句 。5) ExecSQL 方 法 : 用 来 执 行 任 何 SQL 语 句 。6) FieldByName 属 性 : 用 来 给 数 据 库 的 字 段 赋 值 。7) FidldValues 属 性 : 用 来 取 出 数 据 库 的 字 段 的 。华 北 工 学 院 计 算 机 科 学 与 技 术 系38) Append 方 法 : 用 来 向 数 据 库 添 加 一 条 记 录 。9) Edit 方 法 : 用 来 编 辑 当 前 的 记 录 。10) Post: 用 来 向 数 据
17、 库 提 交 所 做 的 修 改 。 TADOTable 类 的 控 件 :1) Connection 属 性 : 用 来 指 定 和 哪 个 TADOConnection 控 件 相 连 。2) Open 方 法 : 用 来 打 开 数 据 库 中 指 定 的 表 。3) FieldByName 属 性 : 用 来 给 数 据 库 的 字 段 赋 值 。4) FidldValues 属 性 : 用 来 取 出 数 据 库 的 字 段 的 。5) Append 方 法 : 用 来 向 数 据 库 添 加 一 条 记 录 。6) Edit 方 法 : 用 来 编 辑 当 前 的 记 录 。7)
18、Post: 用 来 向 数 据 库 提 交 所 做 的 修 改 。 TDataSource 类 的 控 件 :1) DataSet: 用 来 指 定 和 哪 个 数 据 集 相 连 。 TDBGrid 类 的 控 件 :1) DataSource: 用 来 指 定 和 哪 个 TDataSource 控 件 相 连 。 TPageControl 类 的 控 件 :1) ActivePage 属 性 : 用 来 指 定 当 前 活 动 的 Page 页 。 TCheckTree 类 的 控 件 :1) ReadOnly 属 性 : 用 来 控 制 TCheckTree 内 的 Item 是 否
19、可 编 辑 。2) Item 属 性 : 用 来 控 制 TCheckTree 包 含 的 所 有 树 形 结 点 。3) Images 属 性 : 用 来 指 点 TCheckTree 中 结 点 的 图 标 。4) OnMouseUp 事 件 : 用 来 添 加 鼠 标 放 开 事 件 所 执 行 的 程 序 代 码 。5) OnStateChange 事 件 : 用 来 添 加 结 点 状 态 改 变 时 的 程 序 代 码 。 TFlatButton 类 的 控 件 :1) Caption 属 性 : 用 来 指 定 TFlatButton 的 标 题 。OnClick 事 件 : 用
20、 来 添 加 按 钮 的 单 击 事 件 所 执 行 的 程 序 代 码 。1.1.3 数 据 库 连 接 方 式 选 择Delphi 连 接 数 据 库 的 主 要 方 式 有 两 种 : 一 是 : BDE , 二 是 ADO 。 现 在 我 们 来 大致 比 较 一 下 这 两 种 技 术 的 优 缺 点 :BDE( Borland Database Engine) 是 Delphi 颇 具 特 色 的 数 据 库 连 接 管 理 技 术 。凭 借 窗 体 和 报 表 , BDE 可 以 访 问 诸 如 Paradox,dBASE,本 地 InterBase 服 务 器 的 数 据 库
21、,华 北 工 学 院 计 算 机 科 学 与 技 术 系4也 可 访 问 远 程 数 据 库 服 务 器 上 的 数 据 库 , 如 Oracle,SyBase,Informix 等 C S 数 据 库中 的 数 据 库 , 也 可 访 问 经 ODBC 可 访 问 的 数 据 库 管 理 系 统 中 的 数 据 库 。ADO(ActiveX Data Objects)是 微 软 提 供 的 一 项 技 术 。 通 过 ADO, 可 以 方 便 的 访问 各 种 类 型 的 数 据 库 , 特 别 是 OLEDB 数 据 库 。 ADO 已 成 为 访 问 数 据 库 的 新 的 标 准 接
22、口 。从 Delphi 6.0 开 始 Delphi 添 加 了 对 ADO 的 支 持 , 以 便 让 用 户 能 迅 速 实 现 对 终 端 用 户用 来 做 商 业 决 策 的 数 据 库 的 一 致 性 访 问 , 结 合 Delphi 本 身 的 开 发 式 数 据 组 件 结 构 ,程 序 员 可 以 很 快 地 建 立 应 用 程 序 , 用 来 把 自 己 的 商 业 数 据 库 通 过 Internet 发 送 给 客户 , 最 终 用 户 以 及 整 个 销 售 环 节 。 通 过 ADO, Delphi 7.0 也 能 让 用 户 快 速 访 问 关 系 或非 关 系 数
23、 据 库 以 及 E-Mail 和 商 务 文 件 系 统 。这 两 者 提 供 了 几 乎 相 同 的 功 能 , 在 进 行 产 品 开 发 时 , 势 必 要 做 一 个 精 心 的 比 较 。虽 然 ADO 技 术 提 出 的 时 间 不 长 , 并 被 定 位 为 工 业 标 准 的 , 而 且 其 在 性 能 上 由 于 当 前 没有 良 好 的 数 据 库 引 擎 支 持 , 其 性 能 还 不 够 完 美 , 但 是 , 我 们 应 该 要 注 意 到 Borland 公司 已 经 宣 布 停 止 发 展 BDE 了 , 其 性 能 被 ADO 超 越 也 是 迟 早 的 事
24、, 因 此 , 在 开 发 长 期 应用 的 产 品 时 , 推 荐 采 用 ADO 技 术 。 这 样 还 有 另 一 个 好 处 是 , 在 进 行 产 品 分 发 时 , 可 以避 开 大 量 BDE 的 链 接 库 DLL 的 分 发 。基 于 以 上 原 因 我 们 选 择 了 ADO 做 为 我 们 的 数 据 库 访 问 组 件 。1.2 程 序 运 行 环 境操 作 系 统 : Windows 2000 Windows XP办 公 软 件 : Office XP Office 2003华 北 工 学 院 计 算 机 科 学 与 技 术 系52 . 需 求 分 析2.1 负 责
25、的 功 能 模 块 设 计 试 题 生 成 功 能 , 试 题 能 分 布 整 个 教 学 内 容 设 计 试 题 的 难 易 程 度 分 析 功 能 具 有 试 题 的 答 案 生 成 功 能 数 据 库 设 计 及 维 护 程 序 的 其 它 选 项 设 置2.2 软 件 功 能 分 析根 据 我 负 责 的 功 能 模 块 , 主 要 是 在 试 卷 的 生 成 上 。1 要 显 示 书 本 章 节 信 息 以 供 用 户 使 用 。 而 在 数 据 库 里 章 节 的 存 放 是 没 有 规 则 也即 它 们 的 顺 序 不 一 定 按 照 真 实 书 本 的 章 节 顺 序 来 存
26、储 的 。 但 是 在 显 示 章 节 信 息 的时 候必 须 按 照 书 本 的 章 节 顺 序 来 显 示 。 所 以 特 别 设 置 如 下 的 数 据 类 型 :typeZJ=recordZJID:double;ZJName:string;end;在 这 里 ZJID 是 设 置 成 double 的 类 型 与 相 对 应 的 是 数 据 库 里 表 ZhangJie 里 的 ZJ字 段 此 字 段 的 类 型 为 文 本 弄 的 。 故 在 添 加 此 数 据 库 结 构 的 时 候 要 把 文 本 型 转 化 为double 的 类 型 。 而 ZJName 对 应 的 是 数
27、据 库 里 表 ZhangJie 里 的 ZJName 它 们 为 同 一 种数 据 类 型 。 再 由 于 数 据 库 里 章 节 的 数 量 是 不 定 的 , 故 此 种 数 据 类 型 的 变 量 必 须 是 一种长 度 可 变 的 类 型 才 行 , 所 以 我 们 选 择 了 Delphi 里 的 动 态 数 组 类 型 。 变 量 定 义 如 下 :VarTempZJ:ZJ;HaveZJ:array of ZJ;接 下 来 的 问 题 就 是 把 这 个 变 量 记 录 的 数 据 按 一 定 顺 序 显 示 到 TCheckTree 的 控 件 里 了 。由 于 章 节 的 数
28、 量 还 是 比 较 多 的 , 所 以 我 选 择 了 “改 进 的 选 择 排 序 ”, 具 体 的 排 序 算 法代 码 实 现 如 下 :for i:=0 to High(HaveZJ) do /对 章 节 号 进 行 排 序begink:=i;华 北 工 学 院 计 算 机 科 学 与 技 术 系6for j:=i+1 to MaxNum doif HaveZJk.ZJIDHaveZJj.ZJID then k:=j;if i0 then /开 始 初 始 化beginSetLength(XTH,num);for i:=0 to num-1 doXTHi:=MinBH+i; /给 动
29、 态 数 组 设 初 值Randomize; /初 始 化 随 机 数 生 成 器for i:=0 to num-1 dobeginj:=random(num);temp:=XTHi;XTHi:=XTHj;XTHj:=temp;end;end;华 北 工 学 院 计 算 机 科 学 与 技 术 系83 .设 计 阶 段3.1 概 要 设 计3.1.1 系 统 数 据 库 设 计根 据 任 务 书 的 规 定 , 现 设 计 如 下 的 数 据 库 表 格 :表 : 用 户 表 (YH)字 段 中 文 名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键姓 名 UserName 文 本
30、 20 是密 码 Password 文 本 18组 GroupID 数 字 长 整 型权 限 QXID 数 字 长 整 型表 : 题 型 (Type)字 段 中 文 名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键编 号 TypeID 自 动 编 号 是名 称 TypeName 文 本 20分 值 FZ 数 字 长 整 型表 : 难 易 度 (NYD)字 段 中 文 名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键编 号 BH 自 动 编 号 是难 易 度 NYD 文 本 表 : 用 户 组 (UserGroup)字 段 中 文 名 字 段 英 文 名 字 段 类
31、型 字 段 长 度 主 键编 号 GroupID 自 动 编 号 是组 名 GroupName 文 本 20华 北 工 学 院 计 算 机 科 学 与 技 术 系9表 : 选 择 题 (XuanZeTi)字 段 中 文 名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键题 号 TH 自 动 编 号 是题 型 TypeID 数 字 长 整 型题 目 TM 备 注选 项 A A 文 本 255选 项 B B 文 本 255选 项 C C 文 本 255选 项 D D 文 本 255正 确 答 案 DA 文 本 难 易 度 NY 数 字 长 整 型出 自 章 节 CZ 文 本 50表 :
32、 填 空 题 (TianKong)字 段 中 文 名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键题 号 BH 自 动 编 号 是题 型 TypeID 数 字 长 整 型题 目 TM 备 注空 1 K1 文 本 100空 2 K2 文 本 100空 3 K3 文 本 100空 4 K4 文 本 100空 5 K5 文 本 100应 填 数 YTS 数 字 长 整 型难 易 度 NY 数 字 长 整 型出 自 章 节 CZ 文 本 50华 北 工 学 院 计 算 机 科 学 与 技 术 系10表 : 简 答 题 (JianDaTi)字 段 中 文 名 字 段 英 文 名 字 段 类
33、 型 字 段 长 度 主 键题 号 BH 自 动 编 号 是题 型 TypeID 数 字 长 整 型题 目 TM 备 注答 案 DA 备 注难 易 度 NY 数 字 长 整 型出 自 章 节 CZ 文 本 50表 8: 原 理 论 述 题 (YuanLiLunShu)字 段 中 文 名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键题 号 BH 自 动 编 号 是题 型 TypeID 数 字 长 整 型题 目 TM 备 注答 案 DA 备 注难 易 度 NY 数 字 长 整 型出 自 章 节 CZ 文 本 50表 9: 系 统 设 计 题 (XiTongSheJi)字 段 中 文
34、名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键题 号 BH 自 动 编 号 是题 型 TypeID 数 字 长 整 型题 目 TM 备 注表 格 BG 文 本 100答 案 DA 备 注难 易 度 NY 数 字 长 整 型出 自 章 节 CZ 文 本 50答 案 表 格 DABG 文 本 50题 目 表 格 TMBG 文 本 50华 北 工 学 院 计 算 机 科 学 与 技 术 系11表 10: 系 统 操 作 题 (XiTongCZ)字 段 中 文 名 字 段 英 文 名 字 段 类 型 字 段 长 度 主 键题 号 BH 自 动 编 号 是题 型 TypeID 数 字 长
35、 整 型题 目 TM 备 注难 易 度 NY 数 字 长 整 型出 自 章 节 CZ 文 本 50题 目 表 格 TMBG 文 本 50问 1 答 案 W1DA 文 本 255问 1 答 案 表 格 W1DABG 文 本 50问 2 答 案 W2DA 文 本 255问 2 答 案 表 格 W2DABG 文 本 50问 3 答 案 W3DA 文 本 255问 3 答 案 表 格 W3DABG 文 本 50问 4 答 案 W4DA 文 本 255问 4 答 案 表 格 W4DABG 文 本 50问 5 答 案 W5DA 文 本 255问 5 答 案 表 格 W5DABG 文 本 50问 题 数 W
36、TS 数 字 长 整 型华 北 工 学 院 计 算 机 科 学 与 技 术 系123.2 详 细 设 计3.2.1 程 序 流 程 图1 抽 取 现 有 试 卷 的 流 程 图 :华 北 工 学 院 计 算 机 科 学 与 技 术 系132 自 动 生 成 试 卷 的 流 程 图 :华 北 工 学 院 计 算 机 科 学 与 技 术 系143 下 图 是 手 动 生 成 试 卷 的 流 程 图 :3.2.2 窗 体 功 能 简 介下 图 软 件 的 登 陆 界 面在 这 里 输 入 用 户 名 及 密 码 就 可 以 进 行 入 软 件 的 主 界 面 了 ! !华 北 工 学 院 计 算 机
37、 科 学 与 技 术 系15下 图 是 软 件 的 主 界 面 :在 以 上 的 软 件 主 界 面 的 左 边 是 各 个 功 能 模 块 的 调 用 接 口 ! !如 :抽 取 现 有 试 卷 : 点 击 后 进 入 抽 取 现 有 试 卷 的 功 能 界 面 。自 动 生 成 试 卷 : 点 击 后 进 入 自 动 生 成 试 卷 的 功 能 界 面 。手 动 生 成 试 卷 : 点 击 后 进 入 手 动 生 成 试 卷 。题 库 录 入 : 在 这 里 可 以 往 数 据 库 里 添 加 试 题 。题 库 维 护 : 在 这 里 可 以 对 数 据 库 里 已 有 试 题 进 行 维
38、 护 。选 项 设 置 : 在 这 里 可 以 对 软 件 的 其 它 选 项 进 行 设 置 。软 件 的 右 上 角 有 “帮 助 ”和 “关 于 ”按 钮 ! ! 在 这 里 可 以 得 到 软 件 的 使 用 帮 助 ,和 有 关 此 软 件 的 一 些 开 发 信 息 ! !华 北 工 学 院 计 算 机 科 学 与 技 术 系16下 图 是 自 动 生 成 试 卷 的 界 面 :上 图 中 标 为 “第 一 部 分 ”的 树 形 控 件 是 用 来 设 置 要 生 成 的 试 卷 的 试 题 的 抽 取 范 围 。上 图 中 标 为 “第 二 部 分 ”的 是 用 来 设 置 各
39、种 题 型 的 量 及 其 分 数 。上 图 中 标 为 “第 三 部 分 ”的 是 功 能 按 钮 , 其 中 “生 成 试 卷 ”用 来 根 据 “第 二 部 分 ”的设 置 自 动 生 成 一 份 试 卷 。 “预 览 试 卷 ”是 用 来 预 览 刚 生 成 的 试 卷 。 “试 卷 答 案 ”是 用来 查 看 刚 生 成 的 试 卷 的 答 案 。 “保 存 试 卷 ”是 用 来 保 存 刚 生 成 的 试 卷 的 信 息 。华 北 工 学 院 计 算 机 科 学 与 技 术 系17下 图 是 手 动 生 成 试 卷 的 界 面 图 :上 图 中 标 为 “第 一 部 分 ”的 树
40、形 控 件 是 用 来 设 置 要 生 成 的 试 卷 的 试 题 的 抽 取 范 围 。上 图 中 标 为 “第 二 部 分 ”的 是 用 来 设 置 各 种 题 型 的 量 及 其 分 数 。上 图 中 标 为 “第 三 部 分 ”的 是 用 来 设 置 试 卷 的 部 分 。上 图 中 标 为 “第 五 部 分 ”的 是 用 来 选 择 要 加 入 试 卷 的 试 题 。上 图 中 标 为 “第 四 部 分 ”的 是 功 能 按 钮 , 其 中 “加 入 试 卷 ”用 来 把 在 “第 五 部 分 ”的选 择 试 题 加 入 到 要 生 成 的 试 卷 中 。 “保 存 试 卷 ”是 用
41、 来 保 存 刚 生 成 的 试 卷 的 信 息 。华 北 工 学 院 计 算 机 科 学 与 技 术 系18下 图 是 用 户 管 理 的 界 面 :上 图 中 标 为 “第 一 部 分 ”显 示 当 前 系 统 已 有 的 用 户 。上 图 中 标 为 “第 二 部 分 ”选 择 要 进 行 的 操 作 。上 图 中 标 为 “第 三 部 分 ”设 置 相 应 的 信 息 。上 图 中 标 为 “第 四 部 分 ”。 可 以 删 除 用 户 或 是 提 交 对 用 户 信 息 的 修 改 。华 北 工 学 院 计 算 机 科 学 与 技 术 系19下 图 是 数 据 库 功 能 模 块 的
42、 界 面 :上 图 中 标 为 “第 一 部 分 ”可 以 改 变 数 据 库 的 存 放 路 径 。上 图 中 标 为 “第 二 部 分 ”选 择 要 进 行 的 操 作 。上 图 中 标 为 “第 三 部 分 ”选 择 还 原 的 时 间 点 或 是 执 行 备 份 操 作 。华 北 工 学 院 计 算 机 科 学 与 技 术 系204 .软 件 实 现4.1 OOP 简 介每 一 个 软 件 开 发 人 员 都 会 经 常 听 到 , 看 到 “面 向 对 象 ”这 个 词 , 程 序 员 也 时 常把 它 挂 在 嘴 上 。 那 么 什 么 还 是 真 正 的 “面 向 对 象 ”?
43、什 么 是 面 向 对 象 的 编 程 ? 是 不 是写 几 个 类 就 算 面 向 对 象 了 ? 为 什 么 要 面 向 对 象 ? ?“面 向 对 象 是 一 种 思 维 方 式 , 一 种 方 法 论 ! ”“结 构 化 编 程 ”( SP) 是 一 种 编 程 方 法 , 是 从 计 算 机 的 视 角 来 抽 象 问 题 的 方 法 。而 “面 向 对 象 编 程 ”( OOP) 也 是 一 种 编 程 方 法 , 只 不 过 它 是 从 更 接 近 真 实 世 界 的 视角 来 分 析 问 题 , 使 用 更 接 近 人 们 理 解 真 实 世 界 的 方 法 来 抽 象 问 题
44、 , 这 种 方 法 称 为“面向 对 象 ”( OO) ! !“面 向 对 象 ”这 个 词 代 表 的 是 一 种 认 识 世 界 , 分 析 问 题 , 解 决 问 题 的 方 法 , 因此 它 是 一 种 方 法 论 。 而 面 向 对 象 编 程 则 是 将 这 种 方 法 应 用 于 程 序 设 计 的 方 法 。 当 你会使 用 面 向 对 象 的 方 法 去 思 考 , 用 面 向 对 象 的 模 式 支 分 析 和 解 决 问 题 的 时 候 , 才 是真 正的 “面 向 对 象 ”了 ! !“面 向 对 象 ”最 主 要 的 特 性 有 三 个 : 继 承 性 。 Delp
45、hi 提 供 大 量 的 可 被 二 次 开 发 的 类 。 每 个 类 都 可 被 继 承 。 封 装 性 。 Delphi 的 封 装 性 主 要 由 类 的 私 有 域 和 保 护 域 来 实 现 的 。 多 态 性 。 Delphi 的 多 太 性 主 要 是 通 过 虚 拟 方 法 和 动 态 方 法 来 实 现 的 。4.2 开 发 的 关 键 技 术1 VBA 编 程 技 术Visual Basic for Applications(简称VBA)是新一代标准宏语言。在没有VBA 以前,一些应用软件如Excel, Word, Access 等都采用自己的宏语言供用户开发使用,但每一
46、种宏语言都是相互独立的并且它们之间是互不兼容的。这导致了应用软件之间不能在程序上互联。找到一种可被所有的Microsoft 可编程应用软件所共享的通用宏语言是Microsoft 公司长期追求的目标。VBA 作为新一代的标准宏语言具有了跨越多种OFFICE 应用软件并且控制应用软件对象的能力。 Delphi里封装的三个主要交互控件:TWordApplication,TWordDocument,TwordFont.本程序的主要实现技术如下:const华 北 工 学 院 计 算 机 科 学 与 技 术 系21BF_Name:array110 of String=(一、,二、, 三、,四、 ,五、,六
47、、,七、,八、,九、,十、);JG:String= ;varItemIndex:OleVariant;NewDocument:_Document;FZ,TL,BF,STH,i,WTS,YTS:integer;temp,AppPath,BGName:string;procedure SetFont(aBold,aItalic,aShadow,aSize:integer);beginSJ_WF.ConnectTo(SJ_WD.Sentences.Get_Last.Font);SJ_WF.Name:=宋体;SJ_WF.Bold := aBold;SJ_WF.Italic := aItalic;SJ_
48、WF.Shadow := aShadow;SJ_WF.Size := aSize;end;beginAppPath:=ExtractFilePath(Application.ExeName); /取得本程序的路径/显示进度窗口RateProcess_F.Show;RateProcess_F.CZ_P.Caption:=正在链接Microsoft Office Word;RateProcess_F.Rate_Gauge.MaxValue:=SJT_ADOQ.RecordCount+25;RateProcess_F.Repaint; /重绘窗口,否则显示不出新设置的控件属性trySJ_WA.Con
49、nect;exceptMessageBox(handle,无法连接,也许没有安装Word,连接出错, MB_Ok or MB_ICONERROR);RateProcess_F.Close;Abort;end;RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+10;/SJ_WA.Visible := False;/SJ_WA.Caption := 题库系统与试卷生成;华 北 工 学 院 计 算 机 科 学 与 技 术 系22/建立一个新文档NewDocument:=SJ_WA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);RateProcess_F.CZ_P.Caption:=正在新建Microsoft Office Word 文档;RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gau