2024年4月17日发(作者:)
题 目:
课 程:
院 (部):
专 业:
班 级:
学生姓名:
学 号:
指导教师:
完成日期:
山东建筑大学计算机科学与技术学院
课程设计说明书
在线考试系统的设计---------系统及试题管理
数据库原理及应用课程设计
计算机科学与技术学院
2016年1月5日
山东建筑大学计算机科学与技术学院
课程设计任务书
指导教师(签字): 教研室主任(签字):
与进度安排
设计工作计划
设计题目
在线考试系统设计与实现-------系统、试题管理
为了方便计算机判卷,在线考试系统中的试题采用客观题形式,
已知技术参数
包括选择题、填空题和判断题三种题型。系统主要实现以下模块:
和设计要求
(1)系统管理
(2)试题管理
1、需求分析
设计内容
2、数据库设计
与步骤
3、用SQL语句、触发器与存储过程等实现功能
4、课程设计说明书
1、设计工作6学时
2、实现4学时
3、课程设计说明书2学时
1、 考勤20%
设计考核要求
2、 课程设计说明书50%
3、 答辩30%
目录
1. 系统概述 ......................................................................................................... 4
1.1系统管理 ........................................................................................................ 4
1.2试题管理 ........................................................................................................ 4
2.需求分析 ........................................................................................................ 5
2.1 数据流图 .................................................................................................................................................... 5
............................................................................................................................................ 错误!未定义书签。
2.2数据字典 ..................................................................................................................................................... 6
3. 数据库概念结构设计 ..................................................................................... 7
3.1 实体分析 .................................................................................................................................................... 7
3.2 数据库概念结构设计 ................................................................................................................................ 8
4.数据库逻辑结构设计 .................................................................................................................................... 8
4.1 关系模型 .................................................................................................................................................. 8
4.2表与视图的设计 ......................................................................................................................................... 9
5 数据库物理设计及实施 ................................................................................ 10
5.1 创建数据库 .............................................................................................................................................. 10
5.2 创建表 ...................................................................................................................................................... 10
7 总结 ................................................................................................................ 17
参考文献 ............................................................................................................ 18
在线考试信息管理系统-----系统、试题管理
1. 系统概述
为了提高考试的可靠性,降低考试成本,提高工作效率,需要实现在线考试系统,帮助
教师合理管理试题,辅助出题,为学生提供在线考试功能,进行自动阅卷,提供成绩查询和
汇总统计的功能。为了方便计算机判卷,在线考试系统中的试题采用客观题形式,包括选择
题、填空题和判断题三种题型。
1.1系统管理
系统管理:系统的用户包括系统管理员、学生和教师三类用户。系统管理员维护学生基
本信息、教师基本信息。其功能包括验证登录用户的身份,根据用户身份进入不同的页面;
教师用户和学生用户密码默认为“123456”,当用户忘记密码时系统管理员可以将密码重置为
“123456”。设计相应存储过程实现。
1.2试题管理
试题管理:供教师用户管理,用于维护题库。试题包括选择题和填空题,选择题包括试
题内容、各选项、参考答案、试题类型、分值、所属科目、录入时间等,填空题包括试题内
容、参考答案、试题类型、分值、所属科目、录入时间等;判断题包括试题内容、参考答案,
试题类型、所属科目、分值、录入时间等;教师可以对试题进行维护,包括插入、删除、修
改操作,也可以查询题库,可以按照科目、题型、录入时间等进行查询。设计相应存储过程
实现。
2.需求分析
2.1 数据流图
登录、修改
密码
登录、修改
密码
教师增加试题
用户信息数
据库
考试学生成绩查询
试题数据库试卷数据库
成绩数据库
组卷
图2.1 第0层数据流图
修改试题查询试题确认修改
教师新增试题
查询试题
试题数据库
图2.2 第1层数据流图
2.2数据字典
1.数据项定义
别名
管理员号
表2.1 数据项定义表
数据项名称
管理员编号
管理员密码
教师编号
教师密码
学生学号
学生密码
科目编号
科目名称
试卷编号
试卷名称
题目内容
题目答案
题目选项
题目得分
2.数据结构
含义说明
管理员身份识别
类型
Int
长度
2
取值范围 取值含义
0-99
0、1
0-100
管理员身份
编号
管理员登录
验证
教师身份编
号
教师登录验
证
学生身份验
证
学生登录验
证
科目编号
科目名称
试卷编号
试卷名称
题目的详细
内容
对应题目的
答案
对应题目的
对应选项
对应题目的
得分
管理员密管理员登录验证
码
教师号
教师密码
学号
密码
编号
名称
题目
答案
选项
得分
教师身份验证
教师登录验证
学生身份验证
学生登录验证
科目号
科目的名称
试卷的编号
试卷的名称
题目的详细信息
Varchar 11
Int 2
Varchar 11
Varchar 12
Varchar 12
Int
Int
Text
11
11
100
Varchar 11
Varchar 10
题目的答案,包括多Varchar 7
选单选和判断
题目的选项,判断有Int
两个,选择有四个
对应试卷的对应题Int
型的得分
2
1
系统管理员(编号,姓名,账号,密码)
学生(学号,姓名,密码)
教师(学工号,姓名,密码)
3.数据流
科目(科目编号,科目名称)
选择题(试题内容、各选项、参考答案、试题类型、分值、所属科目、录入
填空题(试题内容、参考答案、试题类型、分值、所属科目、录入时间)
判断题(试题内容、参考答案,试题类型、所属科目、分值、录入时间)
时间)
{教师新增试题,
教师向数据库中新增试题,新增试题时选择试题类型,并根据类型填写相应的内容,
来源为前台输入,去向是后台数据库,组成:{选择题或填空题或判断题},无,无}
4.数据存储
试题分为三个表存储,每个表各存储一种试题,便于合理组成一套试卷
系统管理员=编号+姓名+账号+密码
学生=学号+姓名+密码
教师=学工号+姓名+密码
科目=科目编号+科目名称
选择题=试题内容+各选项+参考答案+试题类型+分值+所属科目+录入时间
填空题=试题内容+参考答案+试题类型+分值+所属科目+录入时间
判断题=试题内容+参考答案+试题类型+所属科目+分值+录入时间
5.数据处理:
试题输入:教师输入试题是按试题类型进行分类的。根据不同的试题类型进
查询:3个题库的试题分别按时间排序,并且可以根据多个检索条件进行检
修改:可以对单个试题进行修改,包括正确答案,题目内容,题目分值等等
行不同的输入。
索。
3. 数据库概念结构设计
3.1 实体分析
学生信息:学号,姓名,密码
教师信息:学工号,姓名,密码
管理员:账号、密码
科目信息:编号,科目名称
选择题信息:试题内容、各选项、参考答案、试题类型、分值、所属科目、录入时间
填空题信息:试题内容、参考答案、试题类型、分值、所属科目、录入时间
判断题信息:试题内容、参考答案,试题类型、所属科目、分值、录入时间
这些实体间的语义描述如下:
由于本系统是考试系统,考虑到考试系统的特殊性,本系统中的学生和老师无关系,一套试卷有
多个试题,每个试题都属于一种科目,试题由选择题、判断题、填空题三种题型,一套试题有多个选择题,
有多个判断题,有多个填空题,一个学生对应一套试卷,并且该试卷是根据学号随机分配的。
3.2 数据库概念结构设计
加
入
时
间
题目
选
项
所
属
科
目
答案
编号
加入时间
编
号
题
目
所属科目
答
案
判断题
多
选
题
答
案
单
选
题
n
n
题
目
所
属
科
目
加
入
时
间
编
号
组卷
选
项
编号
总分
名称
名称
试卷
1
1
属于
n
课程
做卷
编号
编号
密码
编号
姓名
成绩
1
密码
编号
密码
教师
姓名
姓名
学生
管理员
学号
图3.1 实体图
4.数据库逻辑结构设计
4.1 关系模型
表4.1 关系模型表
属性及码 其他约束条件 关系名
科目 科目编号,科目名称 1、 科目编号为主键
2、 科目编号不能为空
选择题 选择题编号、试题内容、各选项、参考答案、试
题类型、分值、所属科目、录入时间
填空题编号、试题内容、参考答案、试题类型、
分值、所属科目、录入时间
判断题编号、试题内容、参考答案,试题类型、
所属科目、分值、录入时间
1. 编号不能为空
2. 所属科目引用科目主键
1编号不能为空
2所属科目引用科目主键
1编号不能为空
2所属科目引用科目主键
填空题
判断题
4.2表与视图的设计
字段名
StuId
StuName
Password
表4.2 Student表
数据类型 含义说明
int
String
String
学生编号
学生姓名
密码
空值情况
主关键字
非空
非空
字段名
TeaId
TeaName
Password
表4.3 Teacher表
数据类型 含义说明
int
String
String
教师编号
教师姓名
密码
空值情况
主关键字
非空
非空
表4.4 选择题表表
字段名 数据类型 含义说明
Id
Body
xxA
xxB
xxC
xxD
Answer
Type
Value
Project
Time
int
String
String
String
String
String
String
Type
Int
Project
Date
选择题编号
试题内容
各选项
各选项
各选项
各选项
参考答案
试题类型
分值
所属科目
录入时间
空值情况
主关键字
非空
非空
非空
非空
非空
非空
非空
非空
Project
非空
字段名
表4.5 判断题表
数据类型 含义说明 空值情况
Id
Body
Type
Value
Project
Time
int
String
Type
Int
Project
Date
选择题编号
试题内容
试题类型
分值
所属科目
录入时间
主关键字
非空
非空
非空
Project
非空
5 数据库物理设计及实施
5.1 创建数据库
Create database Exam;
5.2 创建表
CREATE TABLE `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(5) NOT NULL,
`password` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
)
图5.1 教师表
CREATE TABLE `t_exam` (
`studentId` int(11) NOT NULL,
`paperId` int(11) NOT NULL,
`judgScore` int(10) unsigned zerofill NOT NULL COMMENT '判断题得分',
`singScore` int(10) unsigned zerofill NOT NULL COMMENT '单选得分',
`multipleScore` int(10) unsigned zerofill NOT NULL COMMENT '多选得分',
PRIMARY KEY (`studentId`,`paperId`),
CONSTRAINT `t_exam_ibfk_2` FOREIGN KEY (`paperId`) REFERENCES `t_paper` (`id`) ON DELETE
NO ACTION,
CONSTRAINT `t_exam_ibfk_3` FOREIGN KEY (`studentId`) REFERENCES `t_student` (`id`)
)
图5.2 考试表
CREATE TABLE `t_judgement` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` text NOT NULL COMMENT '题目',
`answer` smallint(1) NOT NULL COMMENT '答案,只能为1(正确)0(错误)',
`jointime` datetime NOT NULL,
`subject` int(11) NOT NULL COMMENT '外键-课程名',
`paperId` int(11) NOT NULL COMMENT '所属试卷',
PRIMARY KEY (`id`),
KEY `subject` (`subject`),
KEY `paperId` (`paperId`),
CONSTRAINT `t_judgement_ibfk_1` FOREIGN KEY (`subject`) REFERENCES `t_subject` (`id`),
CONSTRAINT `t_judgement_ibfk_2` FOREIGN KEY (`paperId`) REFERENCES `t_paper` (`id`)
ON DELETE NO ACTION
)
图5.3判断题表
CREATE TABLE `t_manager` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`password` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
)
图5.4 管理员表
CREATE TABLE `t_multiple` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` text NOT NULL,
`answer` varchar(7) NOT NULL,
`optionA` varchar(50) NOT NULL,
`optionB` varchar(50) NOT NULL,
`optionC` varchar(50) NOT NULL,
`optionD` varchar(50) NOT NULL,
`jointime` datetime NOT NULL,
`subject` int(11) NOT NULL,
`paperId` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `subject` (`subject`),
KEY `paperId` (`paperId`),
CONSTRAINT `t_multiple_ibfk_1` FOREIGN KEY (`subject`) REFERENCES `t_subject` (`id`),
CONSTRAINT `t_multiple_ibfk_2` FOREIGN KEY (`paperId`) REFERENCES `t_paper` (`id`)
)
表5.5 多选题表
CREATE TABLE `t_paper` (
`id` int(11) NOT NULL,
`name` varchar(10) DEFAULT NULL COMMENT '试卷名称',
PRIMARY KEY (`id`)
)
表5.6 试卷表
CREATE TABLE `t_single` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` text NOT NULL COMMENT '题目',
`answer` smallint(6) NOT NULL COMMENT '单选答案,1.2.3.4',
`optionA` varchar(50) NOT NULL,
`optionB` varchar(50) NOT NULL,
`optionC` varchar(50) NOT NULL,
`optionD` varchar(50) NOT NULL,
`jiontime` datetime NOT NULL COMMENT '加入时间',
`subject` int(11) NOT NULL,
`paperId` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `subject` (`subject`),
KEY `paperId` (`paperId`),
CONSTRAINT `t_single_ibfk_1` FOREIGN KEY (`subject`) REFERENCES `t_subject` (`id`),
CONSTRAINT `t_single_ibfk_2` FOREIGN KEY (`paperId`) REFERENCES `t_paper` (`id`)
)
表5.7单选题表
CREATE TABLE `t_student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` varchar(12) NOT NULL,
`password` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
)
图5.8 学生表
CREATE TABLE `t_subject` (
`id` int(11) NOT NULL,
`name` varchar(10) DEFAULT NULL COMMENT '课程名称',
PRIMARY KEY (`id`)
)
图5.9 科目表
6 功能实现
6.1 系统管理功能模块
1. 登录
select * from t_student where id='JS2';
图6.1 登录
CREATE PROCEDURE `NewProc`(IN `userId` int)
BEGIN
select * from t_question where id=userId;
END;
2. 密码重置
update t_student set password='123456' where id='JS2';
图6.2 密码重置
CREATE PROCEDURE `NewProc`(IN userId varchar)
BEGIN
UPDATE t_student set `password`='123456' where id=userId
END;;
6.2 试题管理功能模块
1.新建试题
新建判断题
INSERT INTO `t_judgement` VALUES ('6', '判断题', '0', '2017-01-03 20:25:18',
'2', '1');
创建答案范围验证触发器
create trriger judge
BEFORE
INSERT UPDATE
on t_
for each ROW
BEGIN
if !=0 AND !=1 THEN
SET =0;
END IF;
END
新建单选题
INSERT INTO `t_single` VALUES ('10', '单选题', '1', '答案A', '答案B', '答案C', '
答案D', '2017-01-03 20:27:53', '1', '3');
新建多选题
INSERT INTO `t_multiple` VALUES ('12', '多选题', '1', '答案A', '答案B', '答案C', '
答案D', '2017-01-03 20:27:53', '2', '3');
3. 修改试题
update t_question set subject='下列不可作为java语言修饰符的是?' where id=19;
图6.3 修改试题
4. 删除试题
delete from t_question where id=19;
图6.4 删除试题
5. 查询试题
根据题目类型查询
CREATE PROCEDURE `NewProc`(IN type int)
BEGIN
IF type=1 || type=2 || type=3 THEN
SELECT * FROM t_question where type= type ;
ELSE
SELECT * FROM t_question;
END IF;
END;;
根据题目的创建时间查询
CREATE PROCEDURE `NewProc`(IN time date)
BEGIN
Select * from t_question where joinTime=date;
END;;
根据题目的内容进行模糊查询
CREATE PROCEDURE `NewProc`(IN value varchar)
BEGIN
Select * from t_question where subject like concat(‘%’,value,’%’)
END;;
7 总结
通过本次实验,我学到了很多,数据库的设计决定了程序的设计,数据库是程
序设计的基石,是软件设计的起点,它起着决定性的质变作用,设计优秀的数
据库不仅可以节约资源节省查询时间,而且利于程序的设计,因此我们必须对
数据库设计高度重视起来,培养设计良好数据库的习惯,是一个优秀的软件设
计师所必须具备的基本素质条件!在本次实验中,不仅仅学到了数据库方面的
知识,而且加强了合作交流能力,往往自己一个人埋头苦想不如和他人交流一
下,单打独斗永远不如合作交流。随着程序的越来越大,单单靠一个人永远不
能完成所有的任务,所以要加强和他人交流能力。在本次试验中也暴露了不少
问题,对于数据库的SQL语句只掌握了最基础的内容,稍微加深一点就不会了,
以后要加强学习。
参考文献
[1] 萨师煊, 王珊. 数据库系统概论[M].北京:高等教育出版社,2006.
[2] 甘仞初. .管理信息系统[M]. 北京:机械工业出版社,2002.
[3] 崔洋 MySQL数据库应用从入门到精通 中国铁道出版社
[4] Baron Schwartz 高性能MYSQL 电子工业出版社
[5] 西尔伯沙茨 数据库系统概论 机械工业出版社
发布者:admin,转转请注明出处:http://www.yc00.com/news/1713333518a2228174.html
评论列表(0条)