打字系统的设计与实现 本工程以一个比较实用的例子,主要用来实现对打字速度、打字准确率进行评测,并给 出适当的成绩,是一个用于测试打字的应用程序。通过本系统,可以了解如何使用Ⅴ isual Basic来开发一个比较完整的应用程序。但限于篇幅,有一些功能没有实现,如用户管理, 系统配置以及登录、启动屏幕( Splash Screen)等。本工程将使用ⅤB的多种控件,如文件 对话框控件、时间控件、 SSTab控件、状态栏以及通用控件等。本系统可以完成以下任务: ●以随机抽取文本方式或指定具体文本文件的方式,来获得打字测试的内容。但文件 不能超过4096字节(而且,最多是前300个字有效) 用户可以设置各种系统参数。如考试时间设定、字数设置 打字速度、准确率、成绩的测试。 图1-1、1-2显示的是程序运行后的外观 时间限制o 成绩标准设定 速度 准确率「 要求字数00 测试内容选择方式 C指定文 c随机袖取测试内容 件使用说明 时暖普定和基劲论套撰子的分值,然后体时间和正确的字数来评定量后的分数 指定文件 退出 系统设置 2003-4-1610:50;03 图1-2运行时的“系统设置”界面
- 1 - 打字系统的设计与实现 本工程以一个比较实用的例子,主要用来实现对打字速度、打字准确率进行评测,并给 出适当的成绩,是一个用于测试打字的应用程序。通过本系统,可以了解如何使用 Visual Basic 来开发一个比较完整的应用程序。但限于篇幅,有一些功能没有实现,如用户管理, 系统配置以及登录、启动屏幕(Splash Screen)等。本工程将使用 VB 的多种控件,如文件 对话框控件、时间控件、SSTab 控件、状态栏以及通用控件等。本系统可以完成以下任务: ⚫ 以随机抽取文本方式或指定具体文本文件的方式,来获得打字测试的内容。但文件 不能超过 4096 字节(而且,最多是前 300 个字有效)。 ⚫ 用户可以设置各种系统参数。如考试时间设定、字数设置。 ⚫ 打字速度、准确率、成绩的测试。 图 1-1、1-2 显示的是程序运行后的外观 图 1-2 运行时的“系统设置”界面
目标文字 剩余时间724 进食者对即将被吃 了:81字出错率;15%成:6 退出 打字测试 2003-4-1610:49:09 图1-2运行时的“打字测试”界面 首先,现在窗体上添加各种控件,如图1-3、1-4设计屏幕,然后添加程序代码。在图 1-3的“打字测试”设计界面窗体中,其控件、主要属性、控件说明(一些次要属性如 Height Width除非特别,否则将不特别说明,读者可以根据具体情况来设定)如下: 控件名称 主要控件属性名称 属性值 功能说明 Forml Caption 打字测试系统 Borderstyle 3-Fixed Dialog StartUp Position 2-屏幕中心 名称 dbFile Timer 名称 Timer 用于时间限定和倒计 时显示 名称 Timer 2 用于在状态栏中显示 Interval 500 时间和日期 SSTab 打字测试 & HOOFF0(蓝色 TabOrientation 1-ssTabOrientation Bottom Label 名称 IblTime 显示倒计时计时器 Back color 浅蓝 Borderstyle Fixed Single Caption 10:00 名称 Iblget text 存放测试内容,顺序 Border Style 1-Fixed Single 置后
- 2 - 图 1-2 运行时的“打字测试”界面 首先,现在窗体上添加各种控件,如图 1-3、1-4 设计屏幕,然后添加程序代码。在图 1-3 的“打字测试”设计界面窗体中,其控件、主要属性、控件说明(一些次要属性如 Height、 Width 除非特别,否则将不特别说明,读者可以根据具体情况来设定)如下: 控件名称 主要控件属性名称 属性值 功能说明 Form1 Caption 打字测试系统 BorderStyle 3 – Fixed Dialog StartUpPosition 2-屏幕中心 CommonDialog 名称 dbFile Timer 名称 Timer1 用于时间限定和倒计 Interval 1000 时显示 名称 Timer2 用于在状态栏中显示 Interval 500 时间和日期 SSTab Caption 打字测试 ForeColor &H00FF0000&(蓝色) TabOrientation 1 - ssTabOrientationBottom Label 名称 lblTime 显示倒计时计时器 BackColor 浅蓝 BorderStyle 1 – Fixed Single Caption 10:00 名称 lblGetText 存放测试内容,顺序 BorderStyle 1 – Fixed Single 置后
True Ibl Write 指示打入字符的进 0- Transpare(透明) 度,顺序在 IblGet Text Border style 1-Fixed Single 的前面 ForeColor &H00FF00008(蓝色 名称 IblError 指示出打错的文本 Back Style 0- Transpare(透明) 打对的用空格填充 1-Fixed Single ForeColor &H00000F&(红色) 名称 IblInfo 用来显示打字速度以 Border Style 1- Fixed Single 及准确率等 TextBox 名称 txtGet text 「用来输入字符(汉字) Enabled False Multiline True Command Button名称 redStart 「开始测试按钮 Caption 开始 名称 Command1 以打开文件方式选取 Caption 指定文件 测试内容 名称 CmdExit 退出系统 退出 atusBar StatusBar 状态栏,显示时间 注:其中, IblGet Text、 Ibl Write、 IblError在设计时应该在风格、位置和大小上一致,运 行时也须一致(见相关代码)。这里相互错开,主要是要大家清楚界面的设计
- 3 - WordWrap True 名称 lblWrite 指 示 打入 字符 的 进 度,顺序在 lblGetText 的前面。 BackStyle 0 – Transpare(透明) BorderStyle 1 – Fixed Single ForeColor &H00FF0000&(蓝色) 名称 lblError 指示出打错的文本, BadkStyle 0 – Transpare(透明) 打对的用空格填充 BorderStyle 1 – Fixed Single ForeColor &H000000FF&(红色) 名称 lblInfo 用来显示打字速度以 BorderStyle 1 – Fixed Single 及准确率等 TextBox 名称 txtGetText 用来输入字符(汉字) Enabled False MultiLine True CommandButton 名称 cmdStart 开始测试按钮 Caption 开始 名称 Command1 以打开文件方式选取 Caption 指定文件 测试内容 名称 CmdExit 退出系统 Caption 退出 StatusBar 名称 StatusBar1 状态栏,显示时间 注:其中,lblGetText、lblWrite、lblError 在设计时应该在风格、位置和大小上一致,运 行时也须一致(见相关代码)。这里相互错开,主要是要大家清楚界面的设计
打字系统 目标文字 剩余时间000 指定文件 打字测 系统设置 图1-3“打字测试”设计界面 在图1-4的“系统设置”设计界面窗体中,其控件、主要属性、控件说明如下 控件名称 主要控件属性名称 属性值 功能说明 SSTab Caption 系统设置 ForeColor &H0OFF00(蓝色) ComboBox 名称 cmbSet'Time 设定测试时间,其值 Text 10 见代码 称 Caption 测试时间设置 Option Button 名称 这是控件数组,用于 指定测试内容选择 Label 名称 IblTip 在“设置说明”框架 内,进行各项说明
- 4 - 图 1-3“打字测试”设计界面 在图 1-4 的“系统设置”设计界面窗体中,其控件、主要属性、控件说明如下: 控件名称 主要控件属性名称 属性值 功能说明 SSTab Caption 系统设置 ForeColor &H00FF0000&(蓝色) ComboBox 名称 cmbSetTime 设定测试时间,其值 Text 10 见代码 Frame 名称 Frame1 Caption 测试时间设置 OptionButton 名称 Option1 这是控件数组,用于 指定测试内容选择 Label 名称 lblTip 在“设置说明”框架 内,进行各项说明
测试时间设置 设置说明 时间限制o 成绩标准设定 要求字数p 测试内容选择方式 G指定文件 C随机抽取调试内容 测试软件使用说明 计季楼蠢的定和劲能的柔覆字的分值,然后据的吗和正确的字数评定最后的分数 开始 指定文件 系统设置 图1-4“系统设置”设置界面 本系统采用的主要原理 系统初始化:完成系统的各项初始化 Private Sub Form Load 使得目标文字的各项标签的位置、大小一直 Ibl Error Left= lblGet Text. Left IblError. Top=lblGet Text Top Ibl Error Height= lblGet Text Height IblError Width= lblGet Text width IblWrite. Left= lblGet Text Left IblWrite Height lblGet Text Height Ibl Write Width= lblGet Text. Width Ibl Write Font Size= lblGet Text Font Size 初始化倒计时电子钟
- 5 - 图 1-4 “系统设置”设置界面 本系统采用的主要原理: ⚫ 系统初始化:完成系统的各项初始化。 Private Sub Form_Load() ‘使得目标文字的各项标签的位置、大小一直 lblError.Left = lblGetText.Left lblError.Top = lblGetText.Top lblError.Height = lblGetText.Height lblError.Width = lblGetText.Width lblWrite.Left = lblGetText.Left lblWrite.Top = lblGetText.Top lblWrite.Height = lblGetText.Height lblWrite.Width = lblGetText.Width lblWrite.Font.Size = lblGetText.Font.Size ‘初始化倒计时电子钟 nSecond = 60 nTime = 10 * 60