文档详情

在线考试系统的数据库设计Word版

仙***
实名认证
店铺
DOC
318.50KB
约20页
文档ID:150302048
在线考试系统的数据库设计Word版_第1页
1/20

传播优秀Word版文档 ,希望对您有帮助,可双击去除!山东建筑大学计算机科学与技术学院课程设计说明书题 目: 考试系统的设计---------系统及试题管理课 程: 数据库原理及应用课程设计院 (部): 计算机科学与技术学院专 业: 班 级: 学生姓名: 学 号: 指导教师: 完成日期: 2016年1月5日山东建筑大学计算机科学与技术学院课程设计任务书设计题目考试系统设计与实现-------系统、试题管理已知技术参数和设计要求为了方便计算机判卷,考试系统中的试题采用客观题形式,包括选择题、填空题和判断题三种题型系统主要实现以下模块:(1)系统管理(2)试题管理设计内容与步骤1、 需求分析2、 数据库设计3、 用SQL语句、触发器与存储过程等实现功能4、 课程设计说明书设计工作计划与进度安排1、 设计工作6学时2、 实现4学时3、 课程设计说明书2学时设计考核要求1、 考勤20%2、 课程设计说明书50%3、 答辩30%指导教师(签字): 教研室主任(签字):目录1. 系统概述 41.1系统管理 41.2试题管理 42.需求分析 42.1 数据流图 4 52.2数据字典 53. 数据库概念结构设计 73.1 实体分析 73.2 数据库概念结构设计 74.数据库逻辑结构设计 94.1 关系模型 94.2表与视图的设计 95 数据库物理设计及实施 115.1 创建数据库 115.2 创建表 117 总结 17参考文献 18考试信息管理系统-----系统、试题管理1. 系统概述为了提高考试的可靠性,降低考试成本,提高工作效率,需要实现考试系统,帮助教师合理管理试题,辅助出题,为学生提供考试功能,进行自动阅卷,提供成绩查询和汇总统计的功能。

为了方便计算机判卷,考试系统中的试题采用客观题形式,包括选择题、填空题和判断题三种题型1.1系统管理系统管理:系统的用户包括系统管理员、学生和教师三类用户系统管理员维护学生基本信息、教师基本信息其功能包括验证登录用户的身份,根据用户身份进入不同的页面;教师用户和学生用户密码默认为“123456”,当用户忘记密码时系统管理员可以将密码重置为“123456”设计相应存储过程实现1.2试题管理试题管理:供教师用户管理,用于维护题库试题包括选择题和填空题,选择题包括试题内容、各选项、参考答案、试题类型、分值、所属科目、录入时间等,填空题包括试题内容、参考答案、试题类型、分值、所属科目、录入时间等;判断题包括试题内容、参考答案,试题类型、所属科目、分值、录入时间等;教师可以对试题进行维护,包括插入、删除、修改操作,也可以查询题库,可以按照科目、题型、录入时间等进行查询设计相应存储过程实现2.需求分析2.1 数据流图 图2.1 第0层数据流图 图2.2 第1层数据流图2.2数据字典1.数据项定义 表2.1 数据项定义表数据项名称别名含义说明类型长度取值范围取值含义管理员编号管理员号管理员身份识别Int20-99管理员身份编号管理员密码管理员密码管理员登录验证Varchar11管理员登录验证教师编号教师号教师身份验证Int2教师身份编号教师密码教师密码教师登录验证Varchar11教师登录验证学生学号学号学生身份验证Varchar12学生身份验证学生密码密码学生登录验证Varchar12学生登录验证科目编号编号科目号Int11科目编号科目名称名称科目的名称Varchar11科目名称试卷编号试卷的编号Int11试卷编号试卷名称试卷的名称Varchar10试卷名称题目内容题目题目的详细信息Text100题目的详细内容题目答案答案题目的答案,包括多选单选和判断Varchar7对应题目的答案题目选项选项题目的选项,判断有两个,选择有四个Int10、1对应题目的对应选项题目得分得分对应试卷的对应题型的得分Int20-100对应题目的得分2.数据结构l 系统管理员(编号,姓名,账号,密码)l 学生(学号,姓名,密码)l 教师(学工号,姓名,密码)l 科目(科目编号,科目名称)l 选择题(试题内容、各选项、参考答案、试题类型、分值、所属科目、录入时间)l 填空题(试题内容、参考答案、试题类型、分值、所属科目、录入时间)l 判断题(试题内容、参考答案,试题类型、所属科目、分值、录入时间)3.数据流 {教师新增试题, 教师向数据库中新增试题,新增试题时选择试题类型,并根据类型填写相应的内容, 来源为前台输入,去向是后台数据库,组成:{选择题或填空题或判断题},无,无}4.数据存储 试题分为三个表存储,每个表各存储一种试题,便于合理组成一套试卷 系统管理员=编号+姓名+账号+密码学生=学号+姓名+密码教师=学工号+姓名+密码科目=科目编号+科目名称选择题=试题内容+各选项+参考答案+试题类型+分值+所属科目+录入时间填空题=试题内容+参考答案+试题类型+分值+所属科目+录入时间判断题=试题内容+参考答案+试题类型+所属科目+分值+录入时间5.数据处理:l 试题输入:教师输入试题是按试题类型进行分类的。

根据不同的试题类型进行不同的输入l 查询:3个题库的试题分别按时间排序,并且可以根据多个检索条件进行检索l 修改:可以对单个试题进行修改,包括正确答案,题目内容,题目分值等等3. 数据库概念结构设计3.1 实体分析 学生信息:学号,姓名,密码教师信息:学工号,姓名,密码管理员:账号、密码科目信息:编号,科目名称选择题信息:试题内容、各选项、参考答案、试题类型、分值、所属科目、录入时间填空题信息:试题内容、参考答案、试题类型、分值、所属科目、录入时间判断题信息:试题内容、参考答案,试题类型、所属科目、分值、录入时间 这些实体间的语义描述如下: 由于本系统是考试系统,考虑到考试系统的特殊性,本系统中的学生和老师无关系,一套试卷有多个试题,每个试题都属于一种科目,试题由选择题、判断题、填空题三种题型,一套试题有多个选择题,有多个判断题,有多个填空题,一个学生对应一套试卷,并且该试卷是根据学号随机分配的3.2 数据库概念结构设计 图3.1 实体图4.数据库逻辑结构设计4.1 关系模型 表4.1 关系模型表关系名属性及码其他约束条件科目科目编号,科目名称1、 科目编号为主键2、 科目编号不能为空选择题选择题编号、试题内容、各选项、参考答案、试题类型、分值、所属科目、录入时间1. 编号不能为空2. 所属科目引用科目主键填空题填空题编号、试题内容、参考答案、试题类型、分值、所属科目、录入时间1编号不能为空2所属科目引用科目主键判断题判断题编号、试题内容、参考答案,试题类型、所属科目、分值、录入时间1编号不能为空2所属科目引用科目主键4.2表与视图的设计表4.2 Student表字段名数据类型含义说明空值情况StuIdint学生编号主关键字StuNameString学生姓名非空PasswordString密码非空表4.3 Teacher表字段名数据类型含义说明空值情况TeaIdint教师编号主关键字TeaNameString教师姓名非空PasswordString密码非空 表4.4 选择题表表字段名数据类型含义说明空值情况Idint选择题编号主关键字BodyString试题内容非空xxAString各选项非空xxBString各选项非空xxCString各选项非空xxDString各选项非空AnswerString参考答案非空TypeType试题类型非空ValueInt分值非空ProjectProject所属科目ProjectTimeDate录入时间非空表4.5 判断题表字段名数据类型含义说明空值情况Idint选择题编号主关键字BodyString试题内容非空TypeType试题类型非空ValueInt分值非空ProjectProject所属科目ProjectTimeDate录入时间非空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='JS20141114023'; 图6.1 登录CREATE PROCEDURE `NewProc`(IN `userId` int)BEGINselect * from t_question where id=userId;END;2. 密码重置update t_student set password='123456' where id='JS20141114023'; 图6.2 密码重置CREATE PROCEDURE `NewProc`(IN userId varchar)BEGIN UPDATE t_student set `password`='123456' where id=userIdEND;;6.2 试题管理功能模块1.新建试题 新建判断题 INSERT INTO `t_judgement` VALUES ('6', '判断题', '0', '2017-01-03 20:25:18', '2', '1');创建答案范围验证触发器create trriger judgeBEFORE INSERT UPDATEon t_for each ROWBEGIN if new.answer!=0 AND new.answer!=1 THEN SET new.answer=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 THENSELECT * FROM t_question where type= type ; ELSESELECT * 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] 西尔伯沙茨 数据库系统概论 机械工业出版社 。

下载提示
相关文档
正为您匹配相似的精品文档