轉自本文原創作者為本壇的GANZIXIE2514大神:http://www.zg4o1577.cn/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.一開始我選取文本文件時候,是直接選取的。沒有考慮到如果文件選錯時,或者取消沒選時候發生的錯誤。我把我的問題百度了一下。學著弄了一個當文件選擇時出錯時,直接對文本題目輸出一個空字符串。
|