首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在线考试设计

在线考试设计
EN

Software Engineering用户
提问于 2013-12-27 16:44:08
回答 1查看 1.1K关注 0票数 0

我需要为GRE这样的考试设计一个在线考试服务器。在GRE考试中,如果你的答案正确,那么问题的难度就会增加,如果你答错了,就会减少。

试题是选择题,难度大小是1-10,1是最简单的,10是最难的。如果两个连续的问题回答错了,那么将难度降低1,如果两个问题回答正确,则增加1。测试以难度级别为4的问题开始。问题的标记与难度相等。

我的问题是:我应该使用哪种数据结构来存储这些问题?根据问题的难度等,哪一种算法是提取问题的最佳算法?

我目前正在考虑一份双重链接的清单:

代码语言:javascript
运行
复制
struct node {

    int data;
    node *prev;
    node *next;
    int n
    int MAX;
};

这里,我们需要储存。一个是MAX (实际大小),n是随机大小,可以从n- MAX中选择我们已经为每个双链接列表选择的问题,您可以为每个双链接列表添加额外的int数据,您可以在其中存储prev链接、下一个链接、指向数组的指针、int Maxdata(最大值)、int n(当前大小)。

每个节点都是指向每个级别的问题数组的指针。如果答案是正确的,它将移动下一个节点并从该列表中选择随机问题,否则它将移动到前一个节点并选择一个问题。

例如,假设一个数组有10个问题1-10。

  1. 现在您选择了一个随机问题rand() % 10 =6
  2. 现在交换问题6和10,使n-并返回第6个问题。
  3. 现在n=9,所以下一次不考虑第10次
  4. 随机只返回1-9

有什么更好的方法吗?

EN

回答 1

Software Engineering用户

发布于 2013-12-27 17:16:31

用于您的问题的数据库表可能如下所示:

代码语言:javascript
运行
复制
QuestionID          PK
Question            Text
Difficulty          Int

在另一个表格中记录已经问过和回答过的问题:

代码语言:javascript
运行
复制
StudentID           FK
TestID              FK
QuestionID          FK
AnswerID            FK  (assumes multiple choice)

问题的可能答案(多项选择):

代码语言:javascript
运行
复制
AnswerID            PK
QuestionID          FK
Answer              Text
IsTheCorrectAnswer  boolean
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/222465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档