一:题目表
字段为:题目id,题目标题,题目类型(填空,多选,单选,问答等)
二:答案表
字段为: 表自增id, 题目ID,答案文字 (如选择题,一个题目id会对应多个答案)
三: 试卷表
字段为:表自增id, 试卷名称,题目ID,分数 (该题在该试卷的分数)
--类型表,用来存储题目的类型
create table Types
(
[ID] int primary key identity,
[QuestionType] nvarchar(20) not null
)
--选项表,用来存储各种选项
create table Options
(
[ID] int primary key identity,
[OptionContent] nvarchar(200) not null
)
--题目表,用来存储各种问题
create table Questions
(
[ID] int primary key identity,
[QuestionContent] nvarchar(200) not null,--题目
[OptionAID] int references Options(ID) not null,--选项A,引用选项表
[OptionBID] int references Options(ID) not null,--选项B,引用选项表
[OptionCID] int references Options(ID) not null,--选项C,引用选项表
[OptionDID] int references Options(ID) not null,--选项D,引用选项表
[AnswerID] int references Options(ID) not null,--正确答案,,引用选项表,用于评分
[TypeID] int references Types(ID) not null--题目种类,引用类型表,用于确定题目类型
)
这样三张表的话,可扩展性比较强,比如以后增加了试题类型,只要在Types表中新增一条记录就可以了,同理Options表也是很好扩展的
希望可以帮到你
考生(学号、姓名、性别、年龄、座位编号)——座位编号外键
监考老师(监考老师编号、考场编号、科目编号、备注)—前三个字段组合键、考场科目编号外键
考场(考场编号、所在位置)
座位(座位编号、座位序号、考场编号)——考场编号外键
考试科目(科目编号、科目名称、开考时间)
——不好意思,我能想到的暂时就这些了,你参考一下,补充补充
可以参考下这些:>
稳定智能的在线考试系统, 多种组卷方式,试卷和考生信息严格保密,防作弊设置、自动阅卷判分,成绩排名和错题分析,经第三方机构鉴定,可支持3万人同时在线考试;
提供包括以下内容考试题库:安规题库, 国网电力, 事业编公务员考试, 中学生作业, 中考数学, 医师考核, 建筑消防, 审计师, 资格证考试, 事业单位招聘, 公共基础知识, 国家电网, 建造师,监理工程师, 造价师, 中级经济师, 经济师题库, 期货从业资格, 会计初级职称考试, 教师zgz考试题库, 注册税务师, 考研, 四六级, 教师资格考试, 消防工程师, 辅警考试题库, 幼儿教师资格证, 证券从业资格考试, 二级建筑师, 一级造价师, 护士资格, 初级中药师, 人力资源四级, 人力资源二级, 成人自考, 专升本题库, 成人高考, 基金从业资格, 刷题软件, 上传题库, 考试资料, 考证必备, 电工证题库, 铁路司机培训, 列车驾驶员题库, 上传导入题库, 纪检业务题库, 二级消防工程师,搜题,找答案,出题系统,组卷,试卷生成系统,智能组卷,在线考试,模拟考试系统等功能;
用产生随机数[Random]的方式来抽题。假设题库中有1000道题,每次抽100道。
首先利用random不停地循环 产生1~1000之间的整数,并将该数据放到集合[Set]中,因集合元素唯一,所以相同的数字仅取一次,当集合的大小为100时,跳出循环。然后以集合中的这些数字作为题号向数据库中查询取题。
--------------------------------------------------
/
产生 1~1000 之间的随机整数
@return 随机数
/
public Integer numFactory() {
return new Random()nextInt(1000) + 1;
}
/
随机产生 100 个题号[放入集合、互异性]
@return 集合
/
public Set<Integer> initNO() {
Set<Integer> set = new HashSet<Integer>();
while (true) {
setadd(numFactory());
// 当集合元素个数为100时跳出循环
if (setsize() > 100) {
break;
}
}
return set;
}
/
将集合转换为数组
@param set
需要转换的集合
@return 目标数组
/
public Integer[] convert(Set<Integer> set) {
Object obj[] = settoArray();
int len = objlength;
Integer integer[] = new Integer[len];
for (int i = 0; i < objlength; i++) {
integer[i] = (Integer) obj[i];
}
return integer;
}
以上就是关于php在线考试系统,可以自定义试卷的题数,数据库该怎么设计全部的内容,包括:php在线考试系统,可以自定义试卷的题数,数据库该怎么设计、我在做一个在线考试系统,用的C#,Winform,题目都是单选题,怎么设计考题数据库表比较好SQL数据库、开发一个大学的考试安排系统,其中数据库需要用到哪些表,以及各种表的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)