
设计说明书
| 考试系统的设计与开发 |
| 学生姓名 | |
| 学 号 | |
| 班 级 | |
| 成 绩 | |
| 指导教师 |
2012年12月26日
软件工程课程设计评阅书
| 题 目 | 考试系统的设计与开发 | ||
| 学生姓名 | 学号 | ||
| 指导教师评语及成绩 | |||
| 成绩: 教师签名: 年 月 日 | |||
| 答辩教师评语及成绩 | |||
| 成绩: 教师签名: 年 月 日 | |||
| 教研室意见 | |||
| 总成绩: 室主任签名: 年 月 日 | |||
2012 —2013 学年第 一学期
专业: 学号: 姓名:
课程设计名称: 软件工程课程设计
设计题目: 考试系统的设计与开发
完成期限:自 2012 年 12 月 17 日至 2012 年 12 月 28 日共 2 周
设计依据、要求及主要内容(可另加附页):
考试是教师检查教学效质量的手段之一,也是教学工作的重要组成部分。随着网络技术的发展,在线考试受到越来越多人的青睐,同时也减少了因考试而消耗的不必要的人力和物力,结合本校考试管理工作情况及存在的问题,按软件工程开发软件的思想开发考试系统,实现对学生考试全过程的管理,基本功能要求如下:
1.用户管理模块:教师,学生,管理员;
2. 题库管理模块:对试题进行添加、删除、更新及相关操作;
3.试卷管理模块:抽试卷,答试卷,试卷备份,提交试卷等相关操作;
6.成绩管理模块:查看成绩、统计成绩等;
5.设计思想阐述清晰,界面友好,软件测试方案合理、有效,软件能正常运行。
指导教师(签字): 教研室主任(签字):
批准日期: 年 月 日
摘 要
在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统—JAVA在线考试管理子系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试的设置、试卷审批等功能。本论文主要介绍了对JAVA在线考试管理子系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线管理子系统的设计过程进行详细的说明。
关键词:在线考试 ;j2EE
1 课题描述
开发背景
在二十一世纪的新时代,随着计算机技术的发展及计算机的日益普及,基于在线考试与无纸化办公一样已成为大势所趋。在线考试系统也越来越成为学校的好帮手,它的优势不但体现在人力上也体现在物力上,在线考试系统的采用自动评阅、计分、成绩存档功能将有效地避免资源的浪费,有利于环保,减少人员,提高效率[。
系统开发目标
该系统是一个基于B/S模式的Web在线考试系统,根据科目出相应的考卷。 学生可以进行考试,查看考试情况等操作。当考试完成后系统能自动地考试题评分。教师登陆时系统可以还原学生考试试卷,可以查看学生总分,并生成各分数段情况信息,供给老师参考,以便能够了解学生的学习情况。
开发工具的选择
本系统开发语言为JAVA,从各IDE的性能和价格考虑所使用的开发工具主要是MyEclipse。由于本系统数据量和负载量都比较大,从经济和效率上考虑本系统选用mysql数据库。 Web服务器选Apache开源组织提供的TomCat,TomCat是一个免费的开源软件是SUN公司推荐的web服务器。
2 需求分析
背景分析
网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。随着Internet/Intranet的迅速发展和广泛普及,建立在其上的远程教育成为现代教育技术未来发展方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。现代远程教育作为一种新的教学手段已经开始进入我们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。
相比传统的考试方式,在线考试系统的主要好处是一方面可以动态地管理各种考试信息,教师可以网上出题,之后学生便可以网上进行答题,从而使得考教分离。
可行性分析
技术可行性分析
系统开发将要用到JSP、ssh2、JavaBean、mysql数据库技术。另外,硬件只需要一台pc机,装上软件MyEclipse,DreamWeaver等开发工具 ,利用mysql作为后台的数据库,利用Tomcat作为Web服务器,所以在这方面来说是可行的。已经掌握了开发考试系统方法和开发工具,并且在调查过程中,已经了解和熟悉了在线考试系统的业务流程。综上所述本系统开发从技术上是可行的。
经济可行性
从经济效益来分析,软件的开发成本不大,而其它的投入也只是电脑。电脑的普及也带来了低成本投入。由于系统运行的基础环境均已具备,无需重新开发建设,所以系统开发、运行所需的费用是比较低的。而系统的效益很高可以提高管理效率实现计算机化、系统化、规范化操作,效率大于投入,可行性很高。
方案可行性
根据系统的分析,本系统充分从适用性出发,全面为不同的使用用户考虑。使系统的许多功能与规则都可根据用户的习惯进行定制,包括软件界面、操作方式、录入方式等。本系统的设计充分从使用用户和教务教学任务考虑。
概要设计
本考试系统用户主要分为三类:学生,教师,管理员。
1.学生需求
学生登陆系统主要进行两类操作:在线考试,成绩查询。
(1)在线考试
学生登录后,学生选择考试科目,之后从备选试卷中选择要参考的试卷。学生在考试过程中页面将提供考试时间倒计时功能,使考生随时了解考试剩余时间。在考试时间到时,系统将自动地将学生考试试卷提交。当考试试卷提交时,系统自动评分,并且即使反馈给考生。
(2)成绩查询
学生可以登陆系统查询各科成绩,其中成绩查询是查询自己的考卷,了解自己的考试情况。
2.教师需求
教师登陆系统主要有三类操作:添加科目,添加试卷,添加学生和查看学生试卷,查看相应试卷各分数段统计。
(1)添加科目
教师可以登录系统,添加自己所教科目。
(2)添加试卷
教师选择所要添加的科目后,便可以添加新的试卷,试卷包括试卷考试时间,题目以及每道题目的分值及选项,答案等。
(3)添加学生
教师登陆系统之后可以添加新的学生。
(6)查看学生试卷
教师登陆系统之后可以查看到参加该门考试的学生的考试情况。
(5)查看相应试卷各分数段统计
教师登陆系统之后可以查看到考试的分数段情况。
3.管理员
系统管理员登陆系统后主要进行一类操作:添加教师信息以及具有老师的一切权限
(1)添加教师信息
管理员可以添加教师信息。
(2)具有老师的一切权限
管理员可以查看所有老师出的试卷,并进行删除操作,并且自己可以进行添加科目,添加试卷,添加学生等操作。
总体设计
系统的功能模块图
根据所述需求,设计出系统功能模块如图2-1所示:
图2-1系统的功能模块图
系统功能模块
1、 在线考试
在线考试的流程如下:
首先考生进入系统后选择科目,之后进行试卷的选择进行答题操作。答题必须在规定的时间内进行,此时间是由教师在出试卷时设置好的,如在规定的时间内没有完成答题,系统将强制提交学生考试试卷进。考生在试卷提交后系统自动地为试题进行评分,本系统的试题主要有单选题,双选题,多选题。其数据流图如所示。
图2-2第2层在线考试数据流图
2、成绩查询
考生根据用户编号查询考试成绩信息。成绩信息包括单选题得分,多选题得分等详细信息。页面提供对相应科目试卷的链接,使得学生还可以查询自己的考卷,了解自己的考试情况。
3、试题维护
试题维护是后台教师的重要功能,它包括对试题的添加,修改,删除操作。为了使界面更友好,管理员在试题维护时系统会先将考试试题读出,再提供给管理员操作。其数据流图如图2-3所示
图2-3 第2层考题维护数据流图
4、用户管理
用户管理是管理员对系统用户信息的管理。这些用户包括学生和教师。用户管理操作包括添加用户和删除用户。管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。其数据流图如图2-4所示。
图2-4 第2层用户管理数据流图
3 数据库设计
数据字典
通过对系统功能的分析可知,本系统主要包括如下的数据库信息:
(1)管理员表,该表保存了系统管理员的基本信息,属性有管理员编号、管理员名称、管理员密码。其中管理员编号为主码,它是用户信息的唯一标识。表结构如表3-1所示。
(2)学生表,该表保存了学生的基本信息,属性有学生编号、学生名称、学生密码。其中学生编号为主码,它是用户信息的唯一标识。表结构如表3-2所示。
(3)考题表,该表用于保存考题的基本信息,属性有考题编号,考题类型,本题分数等。其中考题编号为主码。表结构如表3-3所示。
(6)科目表,该表用于保存考试科目的基本信息,属性有科目编号,科目名称。其中科目编号为主码。表结构如表3-6所示。
(5)试卷表,该表用于保存考生的试卷信息,属性有试卷编号,试卷名称,试卷状态,考试时间等。其中试卷编号作为主码。表结构如表3-5所示。
(6)成绩表,该表用于保存考生的考试成绩信息,属性有成绩编号,考生编号,课程编号,总得分。其中成绩编号作为主码。表结构如表3-6所示。
(7)答案表,该表用于保存试题的答案信息,属性有答案编号,所属题目编号,答案内容等。其中答案编号作为主码。表结构如表3-7所示。
(8)学生答案表,该表用于保存考生考试的答案信息,属性有答案编号,所属学生编号,答案内容,试题编号等。其中答案编号作为主码。表结构如表3-8所示。
系统表结构如下:
表3-1教师或管理员表(t_admin)
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| Id | int(11) | 否 | 用户编号 | pk |
| username | varchar(50) | 否 | 教师或管理员姓名 | 管理员只有一个,教师可以有多个 |
| password | varchar(50) | 否 | 密码 |
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| id | int(11) | 否 | 用户编号 | pk |
| username | varchar(50) | 否 | 学生名 | |
| password | varchar(50) | 否 | 密码 |
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| id | int(11) | 否 | 考题编号 | pk 自增长 |
| type | varchar(10) | 否 | 考题类型 | 单选 多选 双选 |
| Point | int(11) | 否 | 考题分数 | |
| content | text | 否 | 题目 | |
| paperId | int(11) | 否 | 所属试卷 | 外键 |
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| id | int(11) | 否 | 科目id | pk |
| name | varchar(50) | 否 | 科目名称 |
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| id | int(11) | 否 | 试卷id | pk |
| name | varchar(50) | 否 | 试卷名称 | |
| state | Varchar(20) | 否 | 试卷状态 | 开放和关闭两种状态 |
| time | int(11) | 否 | 考试时间 | 以分钟为单位 |
| adminId | int(11) | 否 | 所属管理员 | fk |
| subjectId | int(11) | 否 | 所属科目 | fk |
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| id | Varchar(10) | 否 | 成绩编号 | pk |
| mark | Varchar(20) | 否 | 成绩值 | |
| student_Id | float | 否 | 考生ID | fk |
| paper_Id | float | 否 | 科目ID | fk |
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| id | int(10) | 否 | 答案编号 | pk |
| aitem | varchar(50) | 否 | A选项内容 | |
| bitem | varchar(50) | 否 | B选项内容 | |
| citem | varchar(50) | 否 | C选项内容 | |
| ditem | varchar(50) | 否 | D选项内容 | |
| content | varchar(50) | 否 | 正确答案 | |
| questionId | int(11) | 否 | 所属问题ID | fk |
| 字段 | 类型 | 允许为空 | 说明 | 备注 |
| id | int(10) | 否 | 学生答案编号 | pk |
| questionIdList | varchar(255) | 否 | 学生答题题目ID序列 | 学生所答试卷题目的有序序列 |
| answerList | varchar(255) | 否 | 学生答题答案序列 | 学生答卷的答案序列 |
| studentId | int(11) | 否 | 学生ID | fk |
在本系统中我们使用JDBC-ODBC桥连接,要进行数据库连接首先要配置数据源。按设计,设计好数据库exam_online,再建一个名为exam_online的数据源。系统连接数据库的流程图如图3-1所示:
图3-1系统连接数据库流程图
4 详细设计
公共类设计
1.Domain类设计
由于数据库使用的类系统模型,而java数据为对象模型,使得其模型不匹配。为了方便关系模型和对象模型间的转换,建应的Domain类,即数据库中每个表对应一个类,表中类属性对应表的各属性,再为各个属性设计一个读方法(get)和一个写方法(set)如学生类:
package class Student {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
= id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
= username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
= password;
}
}
表和类的对应关系如下:
教师(管理员)表(t_admin)——教师(管理员)类(Admin)
答案表(t_answer)——答案类(Answer)
试卷表(t_paper)——试卷类(Paper)
题目表(t_question)——题目类(Question)
成绩表(t_score)——成绩类(Score)
学生表(t_student)——成绩类(Student)
学生考卷答案表(t_studentanswer)——学生考卷答案类(StudentAnswer)
科目表(t_subject)——科目类(Subject)
2.公具类设计
根据系统设计需求,设计如下工具类:
数据库连接工具类,主要提供连接数据操作等相关方法。
字符加密类,主要对密码进行加密处理。
在线考试模块设计
在线考试流程为:首先系统将考试信息和考生个人信息提供给考生,并要求考生核对个人信息。考生在选好试卷后进行答题操作。答题必须在规定的时间内进行,此时间是由管理员事先设置好的,如在规定的时间内没有完成答题,系统将强制提交学生考试试卷进。考生在试卷提交后系统自动地为试卷进行评分,并将试卷保存,供给老师查看或修改。在线考试 流程图如图3-2所示。
图3-2 在线考试流程
查看考生试卷模块设计
教师登陆后,可以对考生试卷进行查看和修改。系统首先将考生的试卷读出,教师可能看到学生的大体情况。
主要思路:教师点击查看,可以通过数据库成绩表查到考生考试信息,通过考试信息生成jsp页面,显示出考生的考卷情况,从而对学生的考试情况有个了解。
考试设置信息维护模块设计
考试设置信息维护是管理员对考试设置信息维护,它包括对考试设置信息的添加,修改,删除。这些考试信息包括考试时间,各题的数量和分值等。设置时,系统先读取已存在的考试设置信息供给管理员查询,再提供给管理员操作。考试设置信护流程图如图3-3所示。
图3-3考试设置信息维护流程
用户管理模块设计
用户管理是管理员对系统用户信息的管理。这些用户包括学生和教师。用户管理操作包括添加用户和删除用户。添加用户时,删除管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。修改用户时用户编号和用户密码不能被修改其它均能被修改;用户时,系统会先提醒管理员是否删除,若果确认删除才能删除用户。用户管理流程图如图3-4所示。
图3-4用户管理流程
5 程序调试与测试
系统运行环境
数据库:mysql
Web服务器:及以上版本
操作系统:能运行java虚拟机的操作系统均可
测试目的
系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。
测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。系统测试应包括软件测试、硬件测试和网络测试。硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查。
各功能模块测试
将工程导入Tomcat的项目文件夹生即webapps文件夹中, 再启动TomCat服务器。在浏览器中输入工程的URL,可进入系统操作界面,用户可以选择操作。
在线考试模块测试
在主界面点击学生考试,可以进入学生登陆界面。此界面在提交数据时有简单验证功能,如学号不能为空等,用户名是否正确等,如图5-2所示。
图5-2学生登陆界面
成功登录后进入考卷选择界面,如图5-3所示。系统通过学生所选科目,产生相应科目考试列表,供给考生选择。
图5-3试卷选择页面
点击开始考试,将进入到考试页面,考生开始答题,如图5-4所示。在答题时系统提供剩余时间倒计时功能,以方便了角答题时间。当考试剩余时间为0时系统将自动提交试卷。
图5-4学生考试页面
查看试卷测试
考生答完题后,试卷即可给出相应答案,如图5-5所示。
图5-5 成绩显示
管理员模块
在浏览器中输入“进入管理员登录页面。当提交登陆信息时,系统会进行简单的数据验证,如验证码输入的正确性,如图5-6所示。
图5-6管理员登陆界面
输入正确的登陆信息后,进入试题管理界面,如图5-7所示。
图5-7管理员管理界面
在试题管理界面上,点击创建题库,即可进行添加科目的操作,如图5-8所示。
图5-8添加科目
点击添加题目,即可进行题目的添加操作,如图5-9所示。
图4-11添加题目
现点击右侧导航栏的试卷管理中的添加试卷,即可进行添加试卷的操作,如图图
图5-9 添加题目
试题整理完成,即可发布试卷,如图5-10所示。
图5-10试卷发布
用户管理模块测试
进入用户管理界面,然后创建用户,如图5-11所示。
图5-11添加用户
创建好的用户及其相应权限显示,如图5-12所示。
图5-12查看所有用户信息
总 结
从电子文档、多媒体的应用,到利用Internet做尝试,网络已经渗入到教育体系的各个环节.网上考试系统作为这场变革中必不可少的环节之一,受到越来越多的关注.网上考试系统不仅和传统考试方式一样要权衡公平性,而且还具有一些新特点[13].
1)从管理的角度看,在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作,系统实现了无纸化管理,提高了管理的效率;所有的考试数据和其他数据库需要一种主流的方式进行存储和管理,例如使用数据库技术,题库对于每个出题者都只是显示了部分视图,很好地实现了教考分离.
2)在不改变传统考试基本步骤的条件下,只要有考试客户端可以连接到考试应用服务器,指定考生可以在任何地方进行身份确认,都能完成考试.
3)考试结果反馈及时准确.考试的结果在提交试卷后就可以知道,同时提供一个机会让考生知道自己哪里做错了.考生的考试结果可以被保存下来,供教师进行分析统计和察看。
参考文献
[1] 软件工程导论.北京:清华大学出版社.张海藩
[2] 软件工程(第二版).北京:人民邮电出版社.张海藩 2006
[3] 高级软件开发过程.北京:清华大学出版社.金敏,周翔 2005
[4] 数据库系统原理及应用教程.北京:机械工业出版社.苗雪兰
