当前位置:文档之家› 在线考试管理系统

在线考试管理系统

《数据库原理》课程设计--《在线考试管理系统》数据库设计(一)系统需求分析本网站是一个在线考试管理系统,面向用户可分为管理员、学生和老师三类。

一个好的在线考试管理系统,集录入、维护、查询、审核和各种处理为一体,各种操作可以通过菜单进行,操作快捷,方便,性能高效、强大;使用易懂易会,形象增强的数据处理,用户均可根据需要自行使用。

传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。

对于一些课程来说,随着考生数量的增加。

教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。

而在线考试系统将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。

综上所提的功能需求,本系统实现一下基本功能: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 VarcharVarcharCharVarcharVarchar330267学号(主键)姓名(不为空)性别(不为空)密码(不为空)班级(不为空)说明:管理员信息表用来存放管理员的基本信息和其他用户的一些基本信息。

管理员登录时,输入管理员编号与密码进行登陆,通过管理员信息表对管理员编号和密码进行校验。

管理员信息表如表2所示。

表2 管理员信息表t_gly字段名称数据类型长度说明gbh gname gmm VarcharVarcharVarchar3306管理员编号(主键)姓名(不为空)密码(不为空)说明:教师信息表用来存放教师的基本信息和一些登陆信息。

教授登陆时,输入教授编号与密码进行登陆,通过教师信息表对教师编号和密码进行校验。

教师信息表如表3所示。

表3教师信息表t-t字段名称数据类型长度说明tbh tname sjkc tmm VarcharVarcharVarcharVarchar330156教师编号(主键)姓名(不为空)所教课程(不为空)密码(不为空)说明:试卷信息表是用来存放试卷的基本信息的,学号、教师编号为外键。

试卷信息表如表4所示。

表4试卷信息表t-sj字段名称数据类型长度说明sjbh sjnr cj kstime jstime sxh tbh VarcharVarcharIntDatetimeDatetimeVarcharVarchar370033试卷编号(主键)试卷内容(不为空)成绩(不为空)开始时间(不为空)结束时间(不为空)学号(外键)教师编号(外键)说明:题目信息表是存放题目的基本信息,试卷编号、知识点编号为外键。

题库信息表如表5所示。

表5题目信息表t-tm字段名称数据类型长度说明tmbh tg fz xxA xxB xxC VarcharVarcharVarcharVarcharVarcharVarchar53005505050题目编号(主键)题干(不为空)分值(不为空)选项A(不为空)选项B(不为空)选项C(不为空)xxD zqda sjbh zsdbh VarcharVarcharVarcharVarchar50533选项D(不为空)正确答案(不为空)试卷编号(外键)知识点编号(外键)说明:科目信息表是存放科目的基本信息的。

科目信息表如表6所示。

表6科目信息表t-km字段名称数据类型长度说明kmbh km VarcharVarchar330科目编号(主键)科目(不为空)说明:知识点信息表是存放知识点的基本信息的,题目编号是外键。

知识点信息表如表7所示。

表7知识点信息表t-zsd字段名称数据类型长度说明zsdbh zsdnr VarcharVarchar4700知识点编号(主键)知识点内容(不为空)kmbh Varchar3科目编号(外键)说明:组成信息表用来存放题目编号和试卷编号的信息。

组成信息表如表8所示。

表8组成信息表t-zc字段名称数据类型长度说明tmbh sjbh VarcharVarchar53题目编号(主键,外键)试卷编号(主键,外键)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),--选项AxxB varchar(50),--选项BxxC varchar(50),--选项CxxD varchar(50),--选项Dzqda 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 stuvalues('s01','王一','男','123456','B1201');insert into stuvalues('s02','李二','女','234567','B1202');insert into stuvalues('s03','周三','男','345689','B1203');--插入管理员信息insert into glyvalues('g01','宋四','000000');insert into glyvalues('g02','郭五','111111');insert into glyvalues('g03','张六','222222');--插入教师信息insert into tvalues('t01','白七','英语','333333');insert into tvalues('t02','安八','数学','444444');insert into tvalues('t03','毛九','计算机','555555');--插入试卷信息insert into sjvalues('Y01','英语考试,第一题:What is yourname.......',85,'8:00','9:00','s01','t01');insert into sjvalues('S01','数学考试,第一题:+1=.......',85,'8:00','10:00','s02','t02'); insert into sjvalues('J01','计算机考试,第一题:执行下列语句.......',70,'11:00','12:00','s03','t03');--插入科目信息insert into kmvalues('Y01','英语');insert into kmvalues('S02','数学');insert into kmvalues('J03','计算机');--插入知识点信息insert into zsdvalues('001','英语语法','Y01');insert into zsdvalues('002','单词含义','Y01');insert into zsdvalues('003','句式结构','Y01');--插入题目信息insert into tmvalues('(1)','英语考试,第一题:What is your name','2分','my name is...','His name is...','Her name is...','their name is...','A','Y01','001');insert into tmvalues('(2)','英语考试,第二题:one and two is ','2分','one','two','three','four','C','Y01','002');insert into tmvalues('(3)','英语考试,第三题:She did the exercise again. She forgot _____ it. ','2分','to do','doing','do','did','B','Y01','003');--插入组成信息insert into zcvalues('(1)','Y01');insert into zcvalues('(2)','Y01');insert into zcvalues('(3)','Y01');。

相关主题