接上一篇,有了数据库的查询,再把小测试的功能给补足,小程序的结构就出来了。
备注:enable_if 有更优秀的concept C++ 20替代品,C++11 里面提到的any,variant,再C++17 已经被纳入了标准库。这里完全可以抛弃rapidjson ,直接用std::vector<std::vector<std::any>>> 来通吃sql query的任何结果。
言归正传,为了让小程序基本跑起来,先把测试这块功能给整起来。(只为了实现功能,不考虑性能等其他因素,水平不够,多年不写代码了)
首先创建一个question的类,来表现测试题目,有title,有正确的答案,有候选集,也就是4个带答案的选项。
也就是显示title 以及四个选项,do_answer根据用户的输入,判断最终结果是正确还是错误。
question类有了,下面就是怎么从数据库里面构建出question。
流程图如上
按流程堆出来的代码如下
备注:这里为了4个选项的随机性,需要把候选集要随机化一下。这样每次的结果都是随机的。
最终结果如下:
到这里就有了一个亲手DIY的 英文单词记录和测试小程序了。
需要源码的小白,可以从我的资源列表下载。