注: c# exe程序 winform 程序, 实现 单选 多选 判断 一个空的填空
业务环节 相对 较多 请查看 视频讲解
|
单选 多选 判断 一个空的填空
答卷 只可以 答卷 一次
练习 可以多次 即使答卷 完成也可以练习
数据表结构
老师 账号 密码
专业表 专业
班级 班级编号 年级 专业
学生 学号 密码 班级编号 姓名
题目 ID 科目ID 题型 内容 答案
科目 科目ID 科目名称 年级 所属专业
试题类别 类别ID 类别名
组卷 的时候 选择题型 和题目数量
不需要 手动组卷
试卷 试卷名称 考试时间 专业 年级
组卷计划 试卷ID 科目 题型 题目数 分值
练习 的 只是根据 规则 抽题 答题 对 过去 错误 显示 答案 答题界面上有个 答案的按钮
考试 指定试卷 都答完后 交卷
学生考试记录表 试卷ID 题目ID 正确答案 答案 题目排序 是否练习
每次 练习的 时候 把上一次 的练习 记录 删除
交卷的时候 可以判断 有多少题目 未达 出分值
答题 界面 就是上一题 下一题 的模式
分数导出 考试名称 成绩 学号
考试 学号 密码 姓名 考试模式 考试科目 试题内容 题目类别 答案 成绩 考试时间 剩余时间
考试模式 练习 考试
____________________________________________________________________________
平时练习
生成试卷
查看答案
显示分数
每道题都可以点按钮显示本题的答案,点击下一题开始回答下一题。
正式考试
学生登录
生成试题
显示成绩
分数导出
考试不需要专业、年级、科目这些来确定考试的学生和成绩,以学号来确定。如1220110101(表示为12级 计算机院 软件工程专业 1班的 1号学生),即两位代表一个信息。即使两个班级同时考试,也可以通过搜索学号来确定考试成绩。也可以是每个考场有一台服务器,所以成绩不会混淆,就不用和专业、年级那些关联了。那样太麻烦了。
登录系统后,开始考试。界面会显示剩余的考试时间。学生答题后交卷,成绩将在教师方显示,教师方在考试结束后会看到所有考生的成绩。
需要的表
老师 账号 密码
学生 学号 密码
试题 试题ID 所属科目ID 试题类别 试题内容 答案
科目 科目ID 科目名称
试题类别 类别ID 类别名
考试 学号 密码 考试科目 试题内容 题目类别 答案 成绩 考试时间 剩余时间?(这个需要么)
考试模式 考试
试卷生成
设置科目
设置题目类型
组题
老师在考试前对试题组成进行设置,即设置考试科目、设置试卷组成
试题 试题ID 所属科目ID 试题类别 试题内容 答案
科目 科目ID 科目名称
试题类别 类别ID 类别名
题库
试题管理(增删改查)
试题 试题ID 所属科目ID 试题类别 试题内容 答案
科目 科目ID 科目名称
表数量17
班级 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
班级编号 |
nvarchar(50) |
|
|
|
年级 |
nvarchar(50) |
|
|
|
专业 |
nvarchar(50) |
|
|
|
表:1
管理员 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
账号 |
nvarchar(50) |
|
|
|
密码 |
nvarchar(50) |
|
|
|
表:2
考试记录 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
试卷计划ID |
integer |
|
|
|
题目ID |
integer |
|
|
|
试卷题目分值 |
integer |
|
|
|
正确答案 |
nvarchar(50) |
|
是 |
|
提交答案 |
nvarchar(50) |
|
是 |
|
是否练习 |
integer |
|
是 |
|
学号 |
nvarchar(50) |
|
是 |
|
题号 |
integer |
|
是 |
|
得分 |
integer |
|
是 |
|
表:3
科目 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
科目 |
nvarchar(50) |
|
|
|
年级 |
nvarchar(50) |
|
|
|
专业 |
nvarchar(50) |
|
|
|
表:4
年级 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
年级 |
nvarchar(50) |
|
|
|
表:5
试卷计划 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
试卷名称 |
nvarchar(50) |
|
|
|
专业 |
nvarchar(50) |
|
|
|
年级 |
nvarchar(50) |
|
是 |
|
考试时间 |
integer |
|
是 |
|
表:6
题目 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
题目 |
nvarchar(200) |
|
|
|
内容 |
nvarchar(4000) |
|
是 |
|
答案 |
nvarchar(4000) |
|
是 |
|
题型 |
nvarchar(50) |
|
|
|
科目ID |
integer |
|
是 |
|
表:7
题型 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
题型 |
nvarchar(50) |
|
|
|
试卷排序 |
integer |
|
是 |
0 |
表:8
学生 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
学号 |
nvarchar(50) |
|
|
|
密码 |
nvarchar(50) |
|
|
|
班级编号 |
nvarchar(50) |
|
|
|
姓名 |
nvarchar(50) |
|
|
|
表:9
专业 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
专业 |
nvarchar(50) |
|
|
|
表:10
组卷规则 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
试卷计划ID |
integer |
|
|
|
科目 |
nvarchar(50) |
|
|
|
题型 |
nvarchar(50) |
|
|
|
题目数 |
integer |
|
|
|
分值 |
integer |
|
是 |
|
表:11
v成绩分析 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
学号 |
nvarchar(50) |
|
|
|
姓名 |
nvarchar(50) |
|
|
|
班级编号 |
nvarchar(50) |
|
|
|
总分 |
integer |
|
是 |
|
试卷计划ID |
integer |
|
是 |
|
表:12
v成绩汇总 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
总分 |
integer |
|
是 |
|
学号 |
nvarchar(50) |
|
是 |
|
试卷计划ID |
integer |
|
|
|
表:13
v科目 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
信息 |
nvarchar(183) |
|
是 |
|
ID |
integer |
是 |
|
|
表:14
v题目 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
题目 |
nvarchar(200) |
|
|
|
内容 |
nvarchar(4000) |
|
是 |
|
答案 |
nvarchar(4000) |
|
是 |
|
题型 |
nvarchar(50) |
|
|
|
科目ID |
integer |
|
是 |
|
科目 |
nvarchar(50) |
|
|
|
年级 |
nvarchar(50) |
|
|
|
专业 |
nvarchar(50) |
|
|
|
表:15
v题型 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
题型 |
nvarchar(50) |
|
|
|
试卷排序 |
integer |
|
|
|
表:16
v组卷规则排序 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
试卷计划ID |
integer |
|
|
|
科目 |
nvarchar(50) |
|
|
|
题型 |
nvarchar(50) |
|
|
|
题目数 |
integer |
|
|
|
分值 |
integer |
|
是 |
|
试卷排序 |
integer |
|
是 |
|
表:17