有一个题库。包含单选题、多选题、判断题和问答题等等。
现在要做一个功能。在一个页面输入数字。比如。单选题:10.这就生成10个单选题。从题库随机抽选。
当然这个页面是这样的。单选题:
多选题:
判断题:
问答题:
逻辑题:现在我想从题库随机生成一张试卷出来。怎么做?生成出来的试卷是word文档的格式哦。。求各位大神给个例子谢谢了
现在要做一个功能。在一个页面输入数字。比如。单选题:10.这就生成10个单选题。从题库随机抽选。
当然这个页面是这样的。单选题:
多选题:
判断题:
问答题:
逻辑题:现在我想从题库随机生成一张试卷出来。怎么做?生成出来的试卷是word文档的格式哦。。求各位大神给个例子谢谢了
如果一样,你从每个题型里随机出固定数据的题目,
如果不一样,你需要计算总分在随机,
然后输出到TextArea控件或第三方富文本控件就可以了
所以建议LZ去查查.net生成word的资料,一般都是靠模板下导出的
随机选题时,首先要确定选题范围,比如某个学科、某个章节、某个难度、某种题型
我的方法是把符合条件的试题编号查询出来:
select 试题ID from 试题表
where 学科ID='某学科ID'
and 章ID in (id1,id2,id3)
and 难度>难度下限 and 难度<难度上限
and 题型ID=某题型ID
将查询结果放在DataTable中
DataTable dtFind = new DataTable()
然后通过随机数来选题,C#中有个随机数产生类:Random
假设选题总数为SelectCount
选到的试题放到一个链表selList中
Random rdm = new Random(DateTime.Now.Millisecond);
for(int i = 0; i < selectCount && dtFind.Rows.Count > 0; i++)
{
int rdVal = rdm.Next(0, dtFind.Rows.Count);//产生一个随机数对应dtFind行索引
selList.Add(dtFind.Rows[rdVal]);//选中该行
dtFind.RemoveAt(rdVal);//移除已经被选中的行,避免重复选择
}
这里只说了个思路,至于你如何去实现就看如何方便了,本人qq 16250366,同样也做题库