第 8 章 小型试题库系统设计案例

28
8 8 第第第第第第 第第第第 第第第第第第 第第第第 第第第第第第第第第第第第第 第第第第第第第 第第第第8.1 第第第第第第第第 8.2 第第第第第第第第第第 8.3 第第第第第第第第第第第第 8.4 第第第第第第第第第第

description

第 8 章 小型试题库系统设计案例. 学习目标: 了解应用项目的设计、分析及开发过程 教学内容: 8.1 系统的组成及功能简述 8.2 试题库管理程序的设计 8.3 试题答题及评分程序的设计 8.4 有待完善的问题与思考. 返回目录. 8.1 系统组成及功能简述 - 系统组成. 小型试题库系统的组成模块: 教师模块:实现题库管理功能 学生模块:实现答题及自动评分功能. 返回目录. 8.1 系统组成及功能简述 - 系统组成. 小型试题库系统的组成模块: 教师模块:实现题库管理功能 - PowerPoint PPT Presentation

Transcript of 第 8 章 小型试题库系统设计案例

Page 1: 第 8 章  小型试题库系统设计案例

第第 88 章 章 小型试题库系统设计案例小型试题库系统设计案例学习目标: 了解应用项目的设计、分析及开发过程教学内容: 8.1 系统的组成及功能简述 8.2 试题库管理程序的设计 8.3 试题答题及评分程序的设计 8.4 有待完善的问题与思考

Page 2: 第 8 章  小型试题库系统设计案例

8.1 8.1 系统组成及功能简述系统组成及功能简述--系统组成系统组成小型试题库系统的组成模块:

教师模块:实现题库管理功能 学生模块:实现答题及自动评分功能

返回目录

Page 3: 第 8 章  小型试题库系统设计案例

8.1 8.1 系统组成及功能简述系统组成及功能简述--系统组成系统组成小型试题库系统的组成模块:

教师模块:实现题库管理功能 学生模块:实现答题及自动评分功能

返回目录

Page 4: 第 8 章  小型试题库系统设计案例

8.1 8.1 系统组成及功能简述系统组成及功能简述--教师模块的功能教师模块的功能试题库管理程序 ( 教师模块 ) 的功能:

登录 ( 验证用户的合法性 ) 题库的管理与维护:记录的新建、修改、删除和定位 选题:从题库中自动选择一定数量的选择题和填空题,作为本次学生考试的考试库。 生成学生考盘

返回目录

Page 5: 第 8 章  小型试题库系统设计案例

8.1 8.1 系统组成及功能简述系统组成及功能简述--学生模块的功能学生模块的功能 试题答题及评分程序( 学生模块 ) 的功能:

随机产生题号,使各考生的题目顺序不一样 登录 ( 验证考生的合法性 ) 答题。中途退出,可再次进入答题环境。 答题结束退出时,系统可自动进行评分。评分后,不能再进入答题界面。

窗体切换流程

返回目录

Page 6: 第 8 章  小型试题库系统设计案例

8.1 8.1 系统组成及功能简述系统组成及功能简述--数据库设计 数据库设计 以第 7 章 [ 例 7.11] 中建立的试题库 TestDb.MDB 和

学生考试库 Test.MDB 为基础 为验证学生身份的合法性以及记录学生的成绩,需在

考试库 Test.MDB 中增加一个考生表 UserDb ,结构:

返回目录

Page 7: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 试题库管理程序 ( 教师模块 ) 由四个窗体和一个模块文件 (xt.bas) 组成

返回目录

Page 8: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 1. 用户登录窗体 FrmDl (1) 窗体设计:

新建一个 VB 工程,保存为 ctk.vbp 将窗体 Form1 保存为 FrmDl.frm 部分控件的属性见教材表 8.2

返回目录

Page 9: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 (2) 编写代码 :

在程序的“通用”声明段定义模块级变量 Dim cs As Integer ' 记录用户登录时出错的次数 编写窗体的 Load 事件响应代码:调用 xt.bas 中的通用

过程 CenterOnSetupForm( 功能:将窗口居中安放 ) 编写 Cmgqd 按钮 (“ 确定” ) 的 Click 事件响应代码:

检查用户名和密码是否正确。如果连错 3 次,只能退出 编写 Cmdml 按钮 ( 控件数组按钮 ) 的 Click 事件响应代

码:根据选择打开 " 题库管理 " 、 " 选题 " 或 " 制作考盘 " 窗体

返回目录

Page 10: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 2. 添加自动选题窗体 FrmXt

将 [ 例 7.11] 中的 FrmSele.frm 窗体添加到本工程中,并进行重命名另存:

添加 FrmSele 窗体: 执行“工程→添加文件”命令,选择 [ 例 7.11]

建立的 FrmSele.frm 文件 将 FrmSele.frm 另存为 FrmXt.frm

返回目录

Page 11: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 3. 添加题库管理窗体 FrmSele

将 [ 例 7.12] 中的 FrmManage.frm 窗体添加到本工程中,并进行重命名另存:

添加 FrmManage.frm 窗体: 执行“工程→添加文件”命令,选择 [ 例 7.12]

建立的 FrmManage.frm 文件 将 FrmManage.frm 另存为 FrmSele.frm

返回目录

Page 12: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 4. 设计制作考盘窗体 FrmCopy (1) 添加窗体:

执行“工程→添加窗体”命令,添加一个新窗体,并保存为 FrmCopy.frm 在窗体上添加两个命令按钮和一个标签。标签的属性设置: Caption 为空, ForeColor 为红色。

返回目录

Page 13: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 (2) 编写代码 :

编写窗体的 Load 事件响应代码,功能:出现“请插入学生考盘!”的提示

编写通用过程 CopyDB ,功能:复制试题文件 编写 Cmdqd 按钮 (“ 确定” ) 的 Click 事件响应代

码:调用 CopyDB 过程,将当前目录中的 test.mdb复制到 A 盘的根目录中

编写 Cmdexit 按钮 (“ 返回” ) 的 Click 事件响应代码:卸载制作考盘窗体

返回目录

Page 14: 第 8 章  小型试题库系统设计案例

8.2 8.2 试题库管理程序的设计试题库管理程序的设计 5. 添加模块文件 xt.bas

执行“工程→添加模块”命令,添加一个模块,并保存为 xt.bas 在模块代码窗口中定义通用过程,功能:将窗口居中安放

返回目录

Page 15: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 试题答题及评分程序 ( 学生模块 ) 也是由四个窗体和一个模块文件组成 (xt.ba

s) 组成。

返回目录

Page 16: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 1. 考生登录窗体 FrmDl

(1) 窗体设计: 新建一个 VB 工程,保

存为 xz.vbp

将窗体 Form1 保存为FrmDl.frm

按右图进行窗体设计

返回目录

Page 17: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计试题答题及评分程序的设计 (2) 编写代码 :

编写窗体的 Load 事件响应代码: 通过 DAO 工作区对象的 OpenDatabase 方法打开学生考

试库 Test.MDB 调用 xt.bas 中的过程 ( 将窗口居中安放 )

编写 Txtcode 文本框 (“ 考核证号” ) 的 LostFocus 事件响应代码:失去焦点时检查准考证号输入是否正确

编写 Txtname 文本框 (“ 姓名” ) 的 LostFocus 事件响应代码:失去焦点时检查姓名是否输入

返回目录

Page 18: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计试题答题及评分程序的设计 编写 Txtzwh 文本框 (“ 座位号” ) 的 LostFocus 事件响应

代码:失去焦点时检查座位号是否正确输入 编写 cmdml 按钮 (“ 正确无误” ) 的 Click 事件响应代码:

检查准考证号、考生姓名和座位号是否按要求输入。如果正确,则:

向 UserDb 表中添加一条用户记录。若该记录已存在,则给出相应的提示

显示 Frmxz( 考生答题 ) 窗体,卸载 Frmdl( 考生登录 ) 窗体

返回目录

Page 19: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 2. 考生答题窗体 FrmXz (1) 添加窗体:

执行“工程→添加窗体”命令,添加一个新窗体,并保存为 FrmXz.frm

在窗体上添加一个 SSTab 控件:执行“工程→部件”命令,“控件” 选 Microsoft Tabbed Dialog Control 6.0

设置 SSTab 控件: 属性窗口中设置 Tabs 为 2 ,设置 TabsPerRow 为 2

返回目录

Page 20: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 设置 SSTab 控件:

右击 SSTab 控件,选“属性”命令, 设置如下:

返回目录

Page 21: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 设置 SSTab 控件:

“单选题”选项卡界面设置 ( 部分控件的属性见教材表 8.3) :

返回目录

Page 22: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 设置 SSTab 控件:

“ 填空题”选项卡界面设置 ( 部分控件的属性见教材表 8.4) :

返回目录

Page 23: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计试题答题及评分程序的设计 (2) 编写代码 :

在 “通用”声明段定义模块级变量及通用过程 xianshi 编写窗体的 Load 事件响应代码 编写单击Option1 按钮 ( 选择答案 ) 的事件响应代码 编写滚动 Hscroll( 选择题目 ) 的事件响应代码 编写单击滚动条上的 Optti 按钮 ( 选题 ) 的事件响应代码 编写窗体的 Activate(激活 ) 事件响应代码 编写单击 Cmdjj 按钮 (“交卷评分” ) 的事件响应代码 编写单击 Cmdjs 按钮 (“ 结束” ) 的事件响应代码

返回目录

Page 24: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 3. 考生答题未答完提示窗体 FrmTs (1) 添加窗体:

执行“工程→添加窗体”命令, 添加一个新窗体,并保存为 FrmTs.frm 设计窗体(2) 编写代码 : 编写窗体的 Load 事件响应代码 编写单击命令按钮数组的事件 响应代码

返回目录

Page 25: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计 试题答题及评分程序的设计 4. 阅卷评分窗体 FrmTj

(1) 添加窗体: 执行“工程→添加窗体” 命令,添加一个新窗体, 并保存为 FrmTj.frm

设计窗体

返回目录

Page 26: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计试题答题及评分程序的设计 (2) 编写代码 :

在 “通用”声明段定义模块级变量 Dim senum As Integer ' 记录答对的选择题数 Dim finum As Integer ' 记录答对的填空题数 编写窗体的 Load 事件响应代码:判别选择题和填空题

的答题是否正确,并给出考生得分 编写单击 cmdml 按钮 (“ 结束考试” ) 的事件响应代码 :

将考生成绩记录在考生表中,并释放记录集对象。

返回目录

Page 27: 第 8 章  小型试题库系统设计案例

8.3 8.3 试题答题及评分程序的设计试题答题及评分程序的设计5. 添加模块文件 xt.bas

“ 工程→添加模块” ,添加一个模块,保存为 xt.bas 在模块代码窗口中定义全局变量及通用过程

返回目录

Page 28: 第 8 章  小型试题库系统设计案例

8.4 8.4 有待完善的问题与思考 有待完善的问题与思考 在学生考试库中,由于“ se_ksda”( 学生答案 ) 和

“ se_da”( 标准答案 ) 在同一个数据表中,考生可以直接打开 Access 数据库得到标准答案。因而在实际应用中,必须避免发生这种情况。

在“自动选题”程序代码中,每一条记录被选中的几率是相同的。而在实际应用中,可以给每道题赋予一个权值,用于表示题目的难易程度,从题库中选择考题时可以选择不同难度的题目,以增加选题的多样性。

返回目录