新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论高级C/C++编程、代码重构(Refactoring)、极限编程(XP)、泛型编程等话题
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 C/C++编程思想 』 → 数字小键盘指法练习 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5322 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 数字小键盘指法练习 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 C/C++编程思想 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 数字小键盘指法练习

    数字小键盘指法练习是用来练习指法的一个小软件,当初我之所以编写这个软件是因为我要参加今年夏天四川省的高考通分工作,我的指法太烂,速度太慢了,而且还因为不满学校给我们提供的用来练习指法的软件,是这样的,在高考的通分中,大部分分数就不带小数点,带小数点也是只有.5小数点,而学校给我们的那个软件在产生数据的时候全部带有小数点如:52.1、68.3、69.4等,这个还可以忍受,更让人感觉不好的居然那个软件有时间限制,我们在打开它的时候它就自动关闭了,而老师给我们的提示是叫我们改变系统时间来进行指法练习,我当然不满这种做法了,于是自己写了这个软件,好了下面我就来介绍一下我是如何实现的,先还是来介绍一下它的功能吧,然后在介绍是如何进行编码的:

    该软件具有如下功能:

    1、具有数字键指法练习的一般功能即能够进行指法练习

    2、具有“选项”参数设置功能,选项参数如下:

    A: 输入数据:数据是否带有小数点,是否部分数据带有.5小数点等

    B: 测试速度:击键速度和单词速度

    C: 其它属性:测试时间、显示输入错误的信息的延迟时间、是否屏蔽非数字键

    3、具有“选项”参数记忆功能,它能够记住用户上一次的选项设置,它会按照用户上一次的设置来初始化程序

    数据的产生:

           既然是数字键指法练习,那练习时的数据来源肯定是重中之重了,我是通过一个函数来实现的,它根据接受的整型参数来产生满足要求的数据,其中用到了random()这个函数来产生随机数,通过该函数代码如下:

    AnsiString __fastcall TfrmMain::RandNum(int Flag)

    {

        //TODO: Add your source code here

        double RandNum;

        switch (Flag)

        {

          case 1:   //全部数字不带有小数点

                RandNum=random (100);

                break;

          case 2:   //部分数字带有小数点

                RandNum=random (100);

                if (rand()%2)

                {

                    RandNum=RandNum+(rand()%10)/double(10);

                }

                break;

          case 3:

                RandNum=random (100);

                RandNum=RandNum+(rand()%10)/double(10);

                break;

          case 4:

                RandNum=random (100);

                RandNum=RandNum+0.5;

                break;

          case 5:

                RandNum=random (100);

                if(rand()%2)

                {

                    RandNum=RandNum+0.5;

                }

                break;

          default:  //全部数字不带有小数点

                RandNum=random (100);

        }

        return AnsiString(RandNum);

    }

    测试速度:

           该软件的速度测试分两种:击键速度和单词速度,击键速度表示用户每分钟用户的击键书,而单词速度则表示用户每分钟用户所输入的数字个数,测试速度的取得我也是通过一个函数来实现的,该函数代码如下:

    void __fastcall TfrmMain::Stat(int flagSpeed)

    {

        //TODO: Add your source code here

        dwTimeElapse=timeGetTime()-dwTimeStart;

        

        stTime->Caption="剩余时间:"+AnsiString(tmTest-dwTimeElapse/1000)+" 秒";

        switch (flagSpeed)

        {

          case 1: //击键速度

            if (dwTimeElapse>0)

            {

            long int temp1=(60*1000*(NumCount)/dwTimeElapse);

            stSpeed->Caption="击键速度:"+AnsiString(temp1)+"/分";

                //纪录速度

            recSpeed=temp1;

            }

            stWordNum->Caption="击键数:"+AnsiString(NumCount);

           break;

          case 2: //单词速度

            if (dwTimeElapse>0)

            {

            long int temp2=(60*1000*(NumCount)/dwTimeElapse);

            stSpeed->Caption="单词速度:"+AnsiString(temp2)+"/分";

                //纪录速度

            recSpeed=temp2;

            }

            stWordNum->Caption="单词数:"+AnsiString(wordNum);

            //ShowMessage(flagSpeed);

            break;

        }  

        if (wordNum>0)


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/10/24 8:44:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 C/C++编程思想 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客2
    发贴心情 
    {

            long int temp=100*(wordNum-WrongNum)/wordNum;

            stCorrRate->Caption="正确率:"+AnsiString(temp)+"%";

                //纪录正确率

            recCorrRate=temp;

        }

        else

        {

            stCorrRate->Caption="正确率:"+AnsiString(0)+"%";

                //纪录正确率

            recCorrRate=0;

        }

    }

    上面的代码种用到了一个Win32 API函数timeGetTime(),它的作用是取得系统自启动到现在所经历的时间,以毫秒为单位,它的声明如下:

    DWORD timeGetTime(VOID);

    “选项”参数记忆功能:

           该软件具体参数属性的记忆功能,能够实现的方式非常多,如可以通过ini文件,一般文件来达到记忆的功能,还可以通过注册表来完成该功能,我在实现的时候选择了通过通过注册表来实现,我主要用到了getKeyValue()和setKeyValue()两个函数来完成该功能,getKeyValue()的功能是取得注册表中某个键的值,而setKeyValue()的功能则是设置注册表中某项的值代码如下:

    getKeyValue()函数:

    AnsiString getKeyValue(AnsiString RegPath,AnsiString Key)

    {

        //TODO: Add your source code here

        TRegistry *Registry = new TRegistry;

        AnsiString Result="";

        try

        {

            Registry->OpenKey(RegPath,false);

            Result=Registry->ReadString(Key);

        }

        __finally

        {

            delete  Registry;

        }

        return Result;

    }

    setKeyValue()函数:

    bool setKeyValue(AnsiString RegPath,AnsiString Key,AnsiString Value)

    {

        //TODO: Add your source code here

        TRegistry *Registry = new TRegistry;

        try

        {

            Registry->OpenKey(RegPath,true);

            Registry->WriteString(Key,Value);

        }

         __finally

        {

            delete Registry;

        }

        return true;

    }

    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/10/24 8:45:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 C/C++编程思想 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 1:29:40

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    7,625.000ms