在线考试管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理》课程设计
--《在线考试管理系统》数据库设计
(一)系统需求分析
本网站是一个在线考试管理系统,面向用户可分为管理员、学生和老师三类。
一个好的在线考试管理系统,集录入、维护、查询、审核和各种处理为一体,各种操作可以通过菜单进行,操作快捷,方便,性能高效、强大;使用易懂易会,形象增强的数据处理,用户均可根据需要自行使用。
传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。
对于一些课程来说,随着考生数量的增加。
教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。
而在线考试系统将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。
综上所提的功能需求,本系统实现一下基本功能:
1.管理员功能
可以对管理员、学生、老师进行查询、修改。
可以实现对科目、试卷的添加、修改、删除。
可以实现对成绩的管理。
维护本网站系统。
2.学生功能
注册、修改个人信息,并可以登录网站。
参与在线考试、并进行成绩的查询。
3.教师功能
注册,修改个人信息,并可以登录,浏览网站。
可以对试卷进行批阅,对成绩进行管理。
根据前面分析的结果,对系统功能整理如下:
1.系统功能结构
系统功能主要为学生、教师和管理员提供服务,其功能结构图如图1所示。
图1在线考试系统功能
(1)管理员管理功能:主要针对对整个系统的管理,包括对用户(管理员、学生和老师)信息的管理,如个人信息的添加、修改和删除;对考试科目进行管理,如考试科目的添加删除;对试卷进行管理,如题目、知识点的管理。
维护网站的正常运行。
(2)学生管理功能:可以完成学生信息的维护,包括对学生的个人信息和成绩的查询功能,对个人密码的修改,在会员密码遗失的情况下,管理员还可以针对会员的密码进行修改;可以参加相应科目的考试;可以浏览考试成绩和以往相关成绩信息。
(3)教师管理功能:可以完成对教师信息的维护,包括密码的修改;对试卷进行浏览、批阅,客观题进行自动阅卷,主观题由教师进行阅卷;对试卷成绩进行添加、修改和删除等。
(二)数据库设计
1.概念结构设计
对系统处理的数据进行分析,可以得出本系统一共有7个实体,它们分别是:学生、管理员、教师、试卷、科目、知识点、题目。
进一步分析个实体之间的关系,得出系统ER图,如图2、图3所示
图2整体ER图
图3管理员ER图
2.逻辑结构设计
逻辑结构设计是概念结构设计的下一阶段,设计根据概念阶段的E-R图转化成系统支持的数据模型,本选课系统采用关系模型。
系统中的E-R图转换为关系模型如下:
●学生(学号,姓名,性别,密码,班级)
●试卷(试卷编号,试卷内容,成绩,开始时间,结束时间,学号,教师编号)
●管理员(管理员编号,姓名,密码)
●教师(教师编号,姓名,所教课程,密码)
●题目(题目编号,题干,分值,选项A,选项B,选项C,选项D,正确答案,试卷编号,知识点编号)
●科目(科目编号,科目)
●知识点(知识点编号,知识点内容,科目编号)
●组成(题目编号,试卷编号)
3.数据表设计
说明:学生信息表用来存放学生的基本信息和一些登陆信息。
学生的注册信息存储在这个学生信息表中,学生登陆时,输入学号与密码进行登陆,通过学生信息表对学号和密码进行校验。
学生信息表如表1所示。
表1学生信息表t-stu
字段名称数据类型长度说明
sxh sname ssex smm bj Varchar
Varchar
Char
Varchar
Varchar
3
30
2
6
7
学号(主键)
姓名(不为空)
性别(不为空)
密码(不为空)
班级(不为空)
说明:管理员信息表用来存放管理员的基本信息和其他用户的一些基本信息。
管理员登录时,输入管理员编号与密码进行登陆,通过管理员信息表对管理员编号和密码进行校验。
管理员信息表如表2所示。
表2管理员信息表t_gly
字段名称数据类型长度说明
gbh gname gmm Varchar
Varchar
Varchar
3
30
6
管理员编号(主键)
姓名(不为空)
密码(不为空)
说明:教师信息表用来存放教师的基本信息和一些登陆信息。
教授登陆时,输入教授编号与密码进行登陆,通过教师信息表对教师编号和密码进行校验。
教师信息表如表3所示。
表3教师信息表t-t
字段名称数据类型长度说明
tbh tname sjkc tmm Varchar
Varchar
Varchar
Varchar
3
30
15
6
教师编号(主键)
姓名(不为空)
所教课程(不为空)
密码(不为空)
说明:试卷信息表是用来存放试卷的基本信息的,学号、教师编号为外键。
试卷信息表如表4所示。
表4试卷信息表t-sj
字段名称数据类型长度说明
sjbh sjnr
cj kstime jstime sxh tbh Varchar
Varchar
Int
Datetime
Datetime
Varchar
Varchar
3
700
3
3
试卷编号(主键)
试卷内容(不为空)
成绩(不为空)
开始时间(不为空)
结束时间(不为空)
学号(外键)
教师编号(外键)
说明:题目信息表是存放题目的基本信息,试卷编号、知识点编号为外键。
题库信息表如表5所示。
表5题目信息表t-tm
字段名称数据类型长度说明
tmbh tg
fz xxA xxB xxC xxD zqda sjbh zsdbh Varchar
Varchar
Varchar
Varchar
Varchar
Varchar
Varchar
Varchar
Varchar
Varchar
5
300
5
50
50
50
50
5
3
3
题目编号(主键)
题干(不为空)
分值(不为空)
选项A(不为空)
选项B(不为空)
选项C(不为空)
选项D(不为空)
正确答案(不为空)
试卷编号(外键)
知识点编号(外键)
说明:科目信息表是存放科目的基本信息的。
科目信息表如表6所示。
表6科目信息表t-km
字段名称数据类型长度说明
kmbh km Varchar
Varchar
3
30
科目编号(主键)
科目(不为空)
说明:知识点信息表是存放知识点的基本信息的,题目编号是外键。
知识点信息表如表7所示。
表7知识点信息表t-zsd
字段名称数据类型长度说明
zsdbh zsdnr kmbh Varchar
Varchar
Varchar
4
700
3
知识点编号(主键)
知识点内容(不为空)
科目编号(外键)
说明:组成信息表用来存放题目编号和试卷编号的信息。
组成信息表如表8所示。
表8组成信息表t-zc
字段名称数据类型长度说明
tmbh sjbh Varchar
Varchar
5
3
题目编号(主键,外键)
试卷编号(主键,外键)
4.程序:
create database kaoshi;
use kaoshi;
--创建学生信息
create table stu(
sxh varchar(3)primary key,--学号
sname varchar(30),--姓名
ssex char(2),--性别
smm varchar(6),--密码
bj varchar(7),--班级
);
--创建管理员信息
create table gly(
gbh varchar(3)primary key,--管理员编号gname varchar(30),--姓名
gmm varchar(6)--密码
);
--创建教师信息
create table t(
tbh varchar(3)primary key,--教师编号tname varchar(30),--姓名
sjke varchar(15),--所教课程
tmm varchar(6)--密码
);
--创建试卷信息
create table sj(
sjbh varchar(3)primary key,--试卷编号
sjnr varchar(800),--试卷内容
cj int,--成绩
kstime datetime,--开始时间
jstime datetime,--结束时间
sxh varchar(3),--学号(外键)
tbh varchar(3),--教师编号(外键) foreign key(sxh)references stu(sxh),
foreign key(tbh)references t(tbh)
);
--创建科目信息
create table km(
kmbh varchar(3)primary key,--科目编号
km varchar(30),--科目
);
--创建知识点信息表
create table zsd(
zsdbh varchar(4)primary key,--知识点编号zshnr varchar(700),--知识点内容
kmbh varchar(3),--科目编号(外键) foreign key(kmbh)references km(kmbh)
);
--创建题目信息
create table tm(
tmbh varchar(5)primary key,--题目编号
tg varchar(300),--题干
fz varchar(5),--分值
xxA varchar(50),--选项A
xxB varchar(50),--选项B
xxC varchar(50),--选项C
xxD varchar(50),--选项D
zqda varchar(5),--正确答案
sjbh varchar(3),--试卷编号(外键)zsdbh varchar(4),--知识点编号(外键)foreign key(sjbh)references sj(sjbh),
foreign key(zsdbh)references zsd(zsdbh)
);
--创建组成信息
create table zc(
tmbh varchar(5),--题目编号
sjbh varchar(3),--试卷编号
primary key(tmbh,sjbh),
foreign key(tmbh)references tm(tmbh),
foreign key(sjbh)references sj(sjbh)
);
--插入学生信息
insert into stu
values('s01','王一','男','123456','B1201'); insert into stu
values('s02','李二','女','234567','B1202'); insert into stu
values('s03','周三','男','345689','B1203');
--插入管理员信息
insert into gly
values('g01','宋四','000000');
insert into gly
values('g02','郭五','111111');
insert into gly
values('g03','张六','222222');
--插入教师信息
insert into t
values('t01','白七','英语','333333');
insert into t
values('t02','安八','数学','444444');
insert into t
values('t03','毛九','计算机','555555');
--插入试卷信息
insert into sj
values('Y01','英语考试,第一题:What is your name?.......',85,'8:00','9:00','s01','t01'); insert into sj
values('S01','数学考试,第一题:
+1=?.......',85,'8:00','10:00','s02','t02'); insert into sj
values('J01','计算机考试,第一题:执行下列语句.......',70,'11:00','12:00','s03','t03');
--插入科目信息
insert into km
values('Y01','英语');
insert into km
values('S02','数学');
insert into km
values('J03','计算机');
--插入知识点信息
insert into zsd
values('001','英语语法','Y01');
insert into zsd
values('002','单词含义','Y01');
insert into zsd
values('003','句式结构','Y01');
--插入题目信息
insert into tm
values('(1)','英语考试,第一题:What is your name?','2分','my name is...','His name is...','Her name is...','their name
is...','A','Y01','001');
insert into tm
values('(2)','英语考试,第二题:one and two is ?','2分
','one','two','three','four','C','Y01','002');
insert into tm
values('(3)','英语考试,第三题:She did the exercise again. She forgot _____ it. ','2分','to do','doing','do','did','B','Y01','003');
--插入组成信息
insert into zc
values('(1)','Y01');
insert into zc
values('(2)','Y01');
insert into zc
values('(3)','Y01');。