湘教在线

当前位置:首页>课件制作>方正奥思>正文

计时器的制作

√湘教在线   来源:  时间:[2007-7-4 11:51:53] 进入论坛

    曾经有一个用户提出过这样一个效果:要求对完成答题的时间不同有一个奖励分,总页数有20页,每页一题,15分钟完成答题奖5分,20分钟答完奖3分,25分钟答完奖2分。
    这个效果在奥思3.0/3.01以及之前的版本还做不了,现在的3.1版可以做。在奥思3.1版中增加了一个函数:GetFormatedTime()----取系统时间。

    实现的思路是:开始做第一题时取出系统时间,做完最后

路是:开始做第一题时取出系统时间,做完最后一题取出系统时间,把这两个时间相减得出一数值m,判断若m<=15,则总分加5;若15<m<=20,则总分加3;若20<m<=25,则总分加2。后面这个判断用条件分支可实现,这里不再赘述,我们主要讲一下取系统时间的用法。

    首先创建三个整数变量,且必须是全程变量:
    num1----取出开始做第一题时的系统时间;
    num2----取出做完最后一题的系统时间;
    num----num2-num1。

    函数GetFormatedTime("格式串")中,格式串有多种,你可以查看用户手册或联机帮助。我们现在只用到取时间的参数,如下:
    %H----以24-小时的方式表示小时;
    %M----以十进制表示分;
    %S----以十进制表示秒。

    结果我们取出的时间应该是:小时*3600+分*60+秒。最后得出的数值的单位是秒(注意:应相应修改条件分支中数值的单位,都应变成秒,例如15分钟*60=900秒)。但是,函数GetFormatedTime的返回值是字符串,字符串无法作“乘”运算,我们还需要用函数AtoINT把字符串转换成整数。这样表达式就写成:

    num1=AtoINT(GetFormatedTime("%S"))+AtoINT(GetFormatedTime("%M"))*60+AtoINT(GetFormatedTime("%H"))*3600

    我们要在第一题所在页的“页进入前”事件中加入上列表达式,即一进入到第一题就开始计时;然后在最后一题所在页的“页退出后”事件中给num2赋值如下:

    num2=AtoINT(GetFormatedTime("%S"))+AtoINT(GetFormatedTime("%M"))*60+AtoINT(GetFormatedTime("%H"))*3600

    即在做完最后一题以及退出这页时停止计时。之后跳转到列出总分的一页,在这页的“页进入前”事件中作运算:num = num2-num1。然后再作判断。

下一篇: 累计加分的实现
分类信息
湘教在线
湘教在线,更多精彩在首页,
湘ICP备08101769号 - 给湘教在线提意见
网站介绍 - 广告服务 - 联系我们 - 网站导航 - 黄金会员 - 服务承诺 - 诚聘高手 -
湘教在线版权所有
©2003-2008