转自本文原创作者为本坛的GANZIXIE2514大神:http://www.51hei.com/bbs/dpj-161699-1.html
打字测速软件:实现测试用户打字速度。有开始,退出,清零
2 设计方案
2.1 主要思路
要想完成一个好的打字软件,应该满足以下功能性能要求:
实时识别字符串的正确与否。
计算出实时的打字速度和所用时间
按下开始开始计时
良好的用户交互界面
扩展提高部分:
打字过程,能够形象的展示用户是否输入正确,方便用户自我纠错
可以自定义文本,不固定。可以给用户自定义自己想打的文本
目录
1 设计
2 设计方案
2.1 主要思路
2.2 算法设计
2.3 流程图
3 源程序
3.1 主VI
3.2 文件选择子VI
3.3 输入判断子VI
4 运行结果与调试过程
4.1 运行结果
4.2 调试过程
5 参考文献
6 心得体会
2.2 算法设计
初始化:清空输入区,打字速度,所用时间,字符串显示区。并设定显示区字符默认颜色。
打字主程序:确认按下开始键后,弹出文件选择窗口,选择想要输入的文本文件,然后开始计时。所用时间保持刷新,用户打字速度=目前输入正确的字数/当前所用时间。在字符显示区并将输入正确的字变红,直到用户正确输入所有文字,跳出循环。打字过程中,如果按下清零键,则初始化,跳出循环,重新判断开始键是否按下。如果按下退出,则结束程序。
文件选择子VI:进入循环,跳出文件选择框,判断是否选择了正确文件。无错误则读取文本,输出字符串结束循环。错误则结束循环。
字符校对子VI:输入:题目文本,用户输入字符串;输出:题目文本,当前输入正确的字符串长度,用户时输入的字符串是否正确的布尔值,是否用户已经全部输入完成的布尔值。子VI开始先读取用户输入字符串的字符串长度,然后截取题目文本同样的字符串长度,对比两段是否相等。读取题目文本字符串长度,对比当前字符串长度判断是否已经到题目的终点。
2.3 流程图(2)初始化
(3)文件选择子VI流程图 (4)用户输入判别正确子VI
(5)打字测速主循环
3 源程序3.1 主VI1.第一个条件语句真分支 2.第一个条件语句假分支
3.2 文件选择子VI3.3 输入判断子VI4 运行结果与调试过程4.1 运行结果1.运行初始界面 2.点击开始,进入选择文本文件作为题目(这里选择短文.txt)
3. 开始计时 4.部分输入
5.错误输入 6.输入完成 7.清零
4.2 调试过程- 刚开始第一步,我做的输入与题目配对的子VI时,我就发现我输入的时候要输入完再用鼠标点一下输入框外,程序才能读取到输入框内的内容,这样导致程序使用不便利。正常的打字测速软件也不需要这么操作,经过研究我发现在输入框内属性设置,修改成键入时刷新。就可以解决掉我需要鼠标才刷新的问题。
2.当我整个软件大致完成时,我的打字软件可以进行了准确的计时和测试,当用户输入错误也能文本提示输入错误,但是不够形象。我以前有用过打字测速软件,当用户正确输入打的文字后,正确的字会在题目里变色。而我当时的没有这个功能,所以我去想办法优化了一下。通过网上的查询。看到了一个例子(运用属性节点)。我就把他结合自己程序修改了一下。最后实现了正确输入后能在题目显示区域变红正确的字。(如下图)
3.一开始我选取文本文件时候,是直接选取的。没有考虑到如果文件选错时,或者取消没选时候发生的错误。我把我的问题百度了一下。学着弄了一个当文件选择时出错时,直接对文本题目输出一个空字符串。
|