我在用QT编程上逻辑遇到点困难,恳求熟悉算法的给点提示!
发布网友
发布时间:2022-04-25 05:25
我来回答
共2个回答
热心网友
时间:2023-07-14 03:19
假设这里总共有10道题(编号0~9),每一题都有4个选项(编号0~3),每个选项对应下一题。
定义一个二维数组来保存题目号的索引。
const int index[10][4] =
{
{1,3,4,6}, //总共10组数据,每组数据分别记录不同选项对应的题号。
{.....}, //则左边的第一组数据就表示0号题的跳转表
{.....} //也就是0号选项对应1号题,1号选项对应3号题,3号选项对应4号题,4号选项对应6号题
}; //以此类推,建立10道题的索引表。可以用特殊数字表示答题的最终结果。
这样的好处是:你只需要通过指定题号以及对应的选项号,便可找到下一题的题号。
比如用户选择了第0号题的第1号选项,则 index[0][1] 的值代表下一道题的编号。
如果你的问题有所改变,你也只需要修改这个二维数组就行了。
建立好索引表之后,就需要把具体的题目信息给呈现出来。这个时候方法就很多了。
不过最方便的方法就是通过读取文件,把题目信息录入到程序的结构体中,录入的顺序应与题号的先后顺序保持一致。便于通过上面的索引表的值来获取相应的题目,一般可以用
QStringList或者你自定义类型列表来保存所有题目的描述信息。这个随意,接下来的工作就是判断用户的输入并读取索引表进行题目跳转显示了。基本上就是这个样子,周末愉快。
热心网友
时间:2023-07-14 03:20
用哈希表
QHash<questionid,answerid>myhash;
用myhash建立问题和答案的哈希表。
然后你用问题的id来找到答案的id。
再把人家回答的答案和你id指向的答案库比较