**大学毕业设计(论文)
4.2 各功能模块设计
4.2.1 考生注册
考生在考试前需先注册,此模块的作用是实现考生信息的输入,包括考生姓名、密码、性别、班级、学号等内容。
4.2.2 考生登陆模块
考生登陆模块主要有两种功能:一、当有考生登陆时,判断用户名和口令是否合法,如果不合法,则不允许进入考试,并给出提示“请先注册!” 二、如果合法,再次判断是否第一次登陆,判断方法如下:学生管理表(表格完整结构见第四章数据库设计)中设“试卷编号”字段,类型为整形,默认值为0,用它来表示系统将试卷管理表中的第几套试卷分配给考生。如果”试卷编号”为0,说明是第一次登陆,系统还没有为其分配试卷。则考试系统随机分配一套试卷给考生,并将此试卷的编号写入学生管理表此考生对应的“试卷编号”字段中,然后转入考试模块;随机分配试卷的算法如下:从试卷管理表中取出最大的试卷编号,假定为Max;取一个随机数R,此随机数可由随机函数自动生成,然后强制转换成整数。还可以采用另一种简单有效的办法,就是取出此刻系统时间的秒,其值必为0-59中的一个自然数,且是随机的; 试卷编号I=[R%Max]+1。则I必为1到Max之间的一个随机的自然数。如果判断试卷编号不为0,说明已经分配过试卷了,直接转入考试管理模块当中。考生登陆模块的工作流程如图8:
考生登录 用户名 密码 N 合法用户 Y 结束 图8 考生登录流程 第15页 (共30页)
退出
**大学毕业设计(论文)
4.2.3 考试模块
考试模块有以下两种功能:
根据考生的用户名和口令(登陆时由用户输入,然后通过登陆页面将参数传递到考试模块,也可将用户名和密码存放到session变量中供考试模块调用),从学生管理表中找出对应的试卷编号,再从试卷管理表中找出此试卷编号对应的所有题目发送到客户端。这样由登陆模块和考试模块相互配合,便可实现以下功能:考生第一次登陆,随机分配一套试卷给考生,一旦分配,以后再次登陆,考试系统仍将第一次分配的试卷给考生。
自动提交试卷功能,和一般的考试系统相同,本系统也有计时和自动提交试卷的功能,但于别的考试系统不同的是:一般的考试系统的计时功能完全由代码实现,只要重新执行这段代码就会重新计时。但是本考试系统允许考生重新登陆,这就相当于又执行一次代码,所以重新登陆后又重新开始计时,那么这个计时系统就没有任何意义了。考虑到这样一种情况:假如考试时间为120分钟,考生在99分钟的时候刷新页面或者退出重新登陆,相当于又执行了一次计时代码,那么系统分配的试卷仍然是原来的试卷,而考试时间却变为120分钟,所以本考试系统的计时功能时借助于数据库来设计的,设计方法如下:在考生管理表中设“剩余时间”字段,默认值为考试规定时间(单位为分钟),然后再另外设一个程序,用于更新数据库中的剩余时间字段的值,此程序先判断学生管理表中的“试卷编号”字段,如果不为0,说明已经分配又试卷,再判断“成绩”字段,如果为-1,说明未提交试卷。以上两点同时成立,便可确定此考生正在参加考试,然后执行如下操作:凡是学生管理表中同时符合以上两个条件的考生,每隔60秒剩余时间减1,同时判断剩余时间是否等于0,等于0则自动提交。
第16页 (共30页)
**大学毕业设计(论文)
进入考试 N 合法用户 Y 取题 题库 读取题目内容 读取题目 试卷题目编号库 退出 生成试卷 考生答题 统计成绩 结束考试 图9 考试流程
4.2.4 评分系统模块
评分系统主要有以下两大功能:
(1)自动评分并将考试成绩写入学生管理表当中的“成绩”字段。
评分系统的实现过程如下:从分数统计表中读取如下数据:单选题每题分值(此处假定为a),多选题每题分值(此处假定为b),判断题每题分值(此处假定为c),填空题每题分值(此处假定为d); 因为试卷是按排列顺序输出的,在本程序中用的是升序排列。为了说明问题,不妨做以下假设:考生所做试题在试卷管理表中的编号为1到N。先接受ID号为1的试卷考生提交的答案,赋值给字符串变量sel,然后从数据库中读取ID号为1的试题的标准答案,赋值给字符串变量anl.然后比较sel 是否等于anl.如果等于说明正确,则将分值加入到总分中。然后进入下一次循环,判断ID号为2的试题,直到为N。
第17页 (共30页)
**大学毕业设计(论文)
(2)防止考生重复提交试卷
这是评分系统的另外一个重要功能,本考试系统虽然允许多次登陆考试,但一旦考生按“交卷”按扭之后就不能再次交卷。考生按“交卷”按扭之后程序运行到下一个模块,评分模块,此模块在评分之前先做一个判断,如果学生管理表中此考生对应的成绩为-1,则进入评分程序,如果不为-1,说明已经交卷了,系统给出提示“您已经考过了!”的同时,又返回上一个页面。这个程序其实是介于考试模块和评分模块之间的一个判断程序。在这里将其归入到评分模块当中。
4.2.5 单选题管理
单选题管理模块主要实现以下功能:添加单选试题到题库中,编辑和删除题库中以有的单选试题。
4.2.6 多选题管理
多选题管理模块主要实现以下功能:添加多选试题到题库中,编辑和删除题库中以有的多选试题。
4.2.7 填空题管理
填空题管理模块主要实现以下功能:添加填空题到题库中,编辑和删除题库中以有的填空题。
4.2.8 判断题管理
判断题管理模块主要实现以下功能:添加判断题到题库中,编辑和删除题库中以有的判断题。
4.2.9 试卷管理模块
试卷管理模块的功能是从题库中随机选取试题组成多套试卷,由管理员通过“试卷管理”页面指定要生成的试卷数,每套试卷单项选择题,多项选择题,填空题和判断题各自的题数和分数,以及考试规定时间,然后把试题信息存放到一个临时的数据库表“试卷管理表”当中,其中记录试卷编号和试题信息。
4.2.10 成绩管理
成绩管理模块的主要功能是让管理员查看所有考生的考试成绩。 第18页 (共30页)
**大学毕业设计(论文)
4.2.11 学生管理
学生管理模块的功能如下:管理员可以通过它查看所有考生的注册信息,包括姓名、性别、班级、学号、试卷编号等等,还提供删除考生的权限。
4.2.12 公告栏管理
公告栏管理模块用于管理员向考生公布信息,并且可以编辑,删除以有的公告信息。公告信息在考试系统首页显示。
4.2.13 留言薄管理
留言薄管理模块主要用于考生的信息反馈,考生之间交流心得体会,管理员可以通过“留言薄管理”页面删除考生留言。
4.2.14 系统管理
系统管理模块用于管理员修改用户名和口令。不定时的更改用户名和口令有利于系统安全。
4. 3系统数据库设计
网上考试系统是一个应用系统,所有的考生信息和试题信息都是保存在数据库中,在应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。我们这里所说的数据库设计是指数据库中各个表结构的设计,包括信息保存在哪些表格中,各个表格的结构如何及各个表之间的关系。
数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一直性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。但这些设计方法和设计者的工作经验有很大关系。因此要从基本上解决所有数据库结构设计的问题,就需要多进行实践,在实践中积累经验和教训。
4.3.1实体联系图(E-R)
此系统主要包括以下几个主要实体:管理员(姓名、性别、密码),用户(姓名、性别、密码、班号、学号),题库(单选题量、多选题量、填空题量、判断题量),试卷(试卷编号、题干、选项)。
第19页 (共30页)