将倒数计时器添加到数学程序测验中

时间:2016-12-23 21:22:30

标签: c++

我正在尝试为此程序添加倒数计时器。我希望计时器在第一个数学事实问题被提出时开始,到期时我希望程序给出评分。如果可能的话,在c ++中执行此操作的代码是什么?

#homethumbs {
    width: 100%;
    text-align: center;

    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-flow: wrap;
    -webkit-flex-flow: wrap;
    flex-flow: wrap;
}

.homethumb {
      flex: 0 0 50%;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;  
}

@media (min-width: 1000px){

  .homethumb {
       flex: 0 0 25%;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;  
  }

}

1 个答案:

答案 0 :(得分:1)

任务很艰巨,但如果你敢尝试,我建议分两步完成:

实施不准确的解决方案:在对用户的查询之间检查计时器到期。

如果还有剩余时间,则会询问下一个问题,否则会显示统计信息。因此,尽管计时器已经用完,程序总是在最后一个问题上等待用户输入。不是确切的测验是什么样的,而是开始的好动作。

方法:在开始测验之前保存当前时间,在每个问题之前取保存时间和当前时间之间的增量并与时间限制进行​​比较。示例chrono(从C ++ 11开始),示例包含oldschool clock

添加中间问题中断

此部分需要功能,它将等待用户输入不超过指定的时间量。因此,不需要使用std :: cin(),而是需要计算剩余时间(时间限制减去cur时间和开始时间之间的差值),并调用某种cin_with_timeout(time_left)。

最难的是实现cin_with_timeout(),这需要扎实的多线程和线程同步知识。可以找到很好的灵感here,但这是开始思考而不是完全解决的方向。