您现在的位置: 漯河教育网 >> 教育 >> 课件 >> 文章正文

计时器的制作

作者:佚名 点击数: 2007-2-2 来源:天骥课件网

    曾经有一个用户提出过这样一个效果:要求对完成答题的时间不同有一个奖励分,总页数有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。然后再作判断。

haiq
更多新闻内容,更多精彩在首页,
我也评两句
我的灌水记录
匿名发表

 

教案|课件|论文推荐


课堂实录

名师导学|家庭教育

教师美文|家庭教育|班主任

主编信箱  热线:0395-3163123给我们提意见