zoukankan      html  css  js  c++  java
  • 老爸的工具箱之:心算练习

    想要这么个玩意很久了:

    电脑自动出加减乘除的题目,并通过语音的方式读出

    理由很简单,现在出去买点小菜、水果啥的,找零钱的时候的大脑老是短路,就是算不出来,明显不如以前好用了。弄这么个玩意练练脑子,当然,以后买个啥的算的比谁都快也不错~~~

    电脑出题比较容易,弄些随机数就能搞定;语音很重要,如果题目是显示出来的,那就容易多了,不能达到练习心算的效果。但是对于语音这块觉得有点麻烦,本来想自己录下来一个数字,加减乘除的发音然后在程序里播放,但因为嫌麻烦也就一直没搞。

    这两天写了些VB的代码,突然想起以前有个用vbs直接说"I Love you"的脚本,查了下发现这个发音引擎正好解决了这个问题,不过,是英文的。但对于我这种善于安慰自己的人,很快把这个缺点变成了优点:

    不但练习了对英语数字的听力水平,也锻炼了快速的心算能力,一举两得!

    自己无聊的时候玩玩还是不错的,东西虽然简单,但要真想快速反应并计算,还是有些挑战的。这东西给我女儿用还早了点,但是感觉将来还是可能用到的,不如就先归在这个系列里,占一下女儿的光~~~

    附代码,拷到一个文本文件并重命名为xxx.vbs,双击运行即可: 

    ' 
    ' This is a simple and funny vb script to practise your:
    ' 1. English listening of numbers
    ' 2. Swift calculation of 2 numbers
    ' You can adjust parameters to change difficulty, as default it only includes + and - operators
    ' for numbers between 0 - 100
    '
    ' Author: Baiyan Huang
    ' Date: 10/20/2010
    '
    '==============================Main==============================
    Dim bContinue 
    bContinue = True
    While bContinue
        
    ' Generate expression and read aloud!
        Dim op1, op2, op
        op1 = GetOperand()
        op2 = GetOperand()
        op = GetOperator()

        
    Dim strExp
        strExp = op1 & op & op2 & "="
        
    CreateObject("SAPI.SpVoice").Speak strExp
        
        
    ' Calculate the final result
        Dim result
        
    If op = "plus" then
            result = op1 + op2
        
    Elseif op = "minus" then
            result = op1 - op2
        
    Elseif op = "multiply" then
            result = op1 * op2
        
    Elseif op = "divided by" then
            result = op1 / op2
        
    End If
        
        
    ' Print the expression and result in a clearer manner
        strExp = Replace(strExp, "plus""+")
        strExp = Replace(strExp, "minus""-")
        strExp = Replace(strExp, "multiply""*")
        strExp = Replace(strExp, "divided by""/")
        bContinue = MsgBox(strExp & result & vbCrLf & "Click Ok to continue!", vbOKCancel) <> vbCancel
    WEnd

    '================Utility Functions=======================
    Function GetRandomNum(lowerbound, upperbound)
        
    call Randomize()
        GetRandomNum = Int((upperbound - lowerbound + 1* Rnd + lowerbound)
    End Function

    Function GetOperand()
        GetOperand = GetRandomNum(1100' 0 - 100
    End Function

    Function GetOperator()
        
    Dim operators(3)
        operators(0= "plus"
        operators(1= "minus"
        operators(2= "multiply"
        operators(3= "divided by"

        
    Dim Index
        Index = GetRandomNum(01' Only include + and - for now
        GetOperator = operators(Index)
    End Function
  • 相关阅读:
    WP8日历(含农历)APP
    NHibernate3剖析:Mapping篇之集合映射基础(2):Bag映射
    初探springmvc
    树的子结构
    Java内存分析
    java8_api_misc
    iOS开发多线程篇 09 —NSOperation简单介绍
    CALayer1-简介
    NSCharacterSet
    iOS 音频开发
  • 原文地址:https://www.cnblogs.com/baiyanhuang/p/1857051.html
Copyright © 2011-2022 走看看