1、目 录摘要3第一章 需求分析31.1 功能需求31.2 性能需求41.3 可靠性和可用性41.4 系统ER图41.5 工具选择51.6实现环境6第二章 总体设计72.1 系统模块72.1.1 系统模块图72.1.2用例图72.1.3管理员功能模块102.1.4教师功能模块102.1.5学生功能模块102.2 数据库设计11第三章 详细设计113.1 数据表113.2 具体模块设计173.2.1 学生信息管理模块173.2.2 教师信息管理模块213.2.3 试卷信息管理253.2.4 科目信息管理27第四章 系统测试29第五章 结束语31参考文献31致 谢32在线考试系统的设计与实现摘要:随着
2、网络技术的日益成熟,网络已经深入到生活的每一个角落,包括教育、购物、咨询、办公等等许多领域。在网络迅速发展的今天,网页技术的应用也越来越广泛。网页技术的应用对于教育行业来说优势更加的明显。教育行业可以通过网络进行学生和教职工的管理、组织学生在线考试、在网站上发布学校相关信息等活动。这样不仅能增加学校管理的透明度,还提高了学校的管理水平。在线考试还能充分的利用学校的现有资源,大大减轻教师的工作量,把老师从出卷、阅卷等一些繁重中做中解脱出来。本文重点论述了由于网络的存在扩大了学校的服务范围,为学校的管理提供了更多的条件。对此做出了详细的调查,可行性研究和分析。系统采用了B/S结构,在网络上建立学校
3、自己的教育网站。系统开发经历了系统分析、系统设计和系统实施三个阶段。从设计方案的提出,经过详细的调查,分析了方案的可行性和必要性,通过详细的系统设计,力图提高系统的集成性和快捷性;并在系统实施阶段收集了大量的实验数据,以便测试阶段系统的准确性和稳定性。论文整体是基于浏览器/服务器,前台应用Jsp技术,后台采用SQL Server2005作为数据库与前台连接。关键词:网络;教育;在线考试;B/S结构;Jsp技术第一章 需求分析1.1 功能需求 本系统要实现的是在线考试系统,在设计时应该有友好的用户界面,便用户的操作。系统应具基本功能如下: 科目管理 题库管理(选择题,填空题,判断题,问答题) 学
4、生管理 教师管理 管理员信息管理 手动组卷 随机组卷(可以完全随机组卷,也可以按章节比重进行随机组卷) 考试页面 阅卷管理 成绩查询1.2 性能需求由于此系统为在线考试系统,响应速度一定要快,要在10秒以内,安全性要高,服务器的磁盘容量要大,主存容量要大,信息处理速率要高。1.3 可靠性和可用性由此系统的性质决定,它的可靠性一定要高,尽量减少系统运行中错误的出现,要保持在一定量的范围内。系统可用性也一定要高,尽量避免不可用几率的发生。1.4 系统ER图专业学号登录密码登录密码用户名密码N1N11NNN考生老师管理员姓名班级性别所教科目姓名教师编号试卷出卷考试管理管理1.5 工具选择数据库是数据
5、管理的最新技术,是计算机科学的重要分支。十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。由于数据库具有数据的结构化、可控冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。由于用到的数据表格多,另外考虑到实际情况,如学生基本信息的变动,我们选用SQL Server作为数据库开发,而不用Access,主要是因为Access存放的记录,在实际运用中不适合此系统;而SQL Server是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用SQL Server数据库。 本系统采用B/S结构,即Java WBE服
6、务端和服务器结构,用户使用本系统时,需要下载客户端,然后进入系统,即可进行在线考试。本系统分为三大模块:用户模块,管理员模块和试卷模块。不同的模块实现不同的功能,便于维护和管理。预期目标是: (1) 建立完备的试题库,整合现有的考试资源,提高资源的利用率和当前的工作效率; (2) 利用计算机自动生成试卷,减少教师负担,同时也防止考生抄袭作弊; (3) 登陆后可以根据用户类型的不同分别进入不同的界面,身份验证严格,防止网络替考及窃取权限修改成绩; (4) 考生答完卷后答案自动存储,若时间已到而试题未答完则自动保存成绩后强行退出; (5) 设定自动阅卷功能,标准化试题由于答案固定,可以让计算机自动
7、将考生答案和标准 化答案比对,自动生成成绩,确保成绩的公平和公正; (6) 就考试情况进行分析,找出考生分数层次和薄弱知识点,从而利于教学改进只要是用Java语言进行编码,javascript语言为辅助语言。Java 编程语言是Sun Microsystems 公司计划中重要的开发语言,它具有语法简单,功能强大,快速应用,语言自由,强大的Web服务器,支持跨平台,与XML相融合等。因此选择Java编程语言。1.6实现环境本系统是以Windows 7系统为操作平台,在Myeclipse环境下编程实现。第二章 总体设计2.1 系统模块本系统分为用户管理模块、科目管理模块、章节管理模块、题库管理模块
8、、试卷生成管理模块、考试页面管理模块、阅卷管理模块、考试结果管理模块、考试查询模块九个模块2.1.1 系统模块图在线考试系统学生管理教师管理管理员管理科目管理用户管理题库管理试题管理试题查询考试页面试卷生成随机组卷手动组卷阅卷管理成绩查询管理员教师学生试卷管理信息修改只限密码信息修改只限密码图2.1系统模块图2.1.2用例图学生用例图:成绩查询个人信息维护考试只能进行密码修改学生图2.2学生用例图教师用例图:试题查询试题修改试题删除添加试题试题库管理试卷删除修改试卷试卷维护试卷生成阅卷试卷管理教师包括教师信息的添加、修改、删除包括手动阅卷和自动阅卷学生管理教师管理管理员包括学生信息的添加、修改
9、、删除图2.3教师用例图试题查询试题修改试题删除添加试题试题库管理试卷删除修改试卷试卷维护试卷生成阅卷试卷管理教师包括教师信息的添加、修改、删除包括手动阅卷和自动阅卷学生管理教师管理管理员包括学生信息的添加、修改、删除图2.3教师用例图管理员用例图:试卷维护试卷管理学生管理教师管理管理员包括学生信息的添加、修改、删除包括教师信息的添加、修改、删除试卷删除修改试卷图2.4管理员用例图2.1.3管理员功能模块此模块包括用户管理、科目管理、成绩查询、章节管理、试卷管理五个部分。 用户管理:此模块包括学生管理、教师管理、管理员管理1. 学生管理:对学生信息进行添加、修改和删除。2. 教师管理:对教师信
10、息进行添加、修改和删除、查询学生的成绩。3. 管理员管理:修改管理员密码、对教师和学生信息可以查询与修改。 科目管理:对科目信息进行添加、修改和删除。 成绩查询:对学生考试的结果进行查询。 题套管理:对各科的章节进行添加、修改和删除。 试卷管理:对试卷进行增加、删除、修改、添加。2.1.4教师功能模块此模块包括题库管理、试卷生成、阅卷管理、信息修改四个部分 题库管理:此模块包括试题管理和试题查询。1. 试题管理:对试题进行添加、修改、删除。2. 试题查询:对试题进查询。 试卷生成:此模块包括手动组卷和随机组卷。1. 手动组卷:手动选择题型、题数进行组卷。2. 随机组卷:按固定的题型和分值进行组
11、卷。 阅卷管理:对试卷进行批阅,客观题进行自动阅卷,主观题由教师进行阅卷 信息修改:只限教师对自己的密码进行修改。2.1.5学生功能模块 此模块包括考试页面和个人信息修改两个部分。 考试页面:学生进行做题的页面。 个人信息修改:只限修改密码。2.2 数据库设计综合以上分析,要实现上面的所有功能模块,数据库共要设计十四个表,它们分别是:科目表、管理表、组卷表、试卷信息表、考生表、学生考试试卷表、考试结果表、学生答题试卷信息表、教师表、选择题表、填空题、判断题、填空题表、问答题表 第三章 详细设计3.1 数据表(一)考生考生=编号+姓名+密码+性别+注册时间+提示问题+问题答案+专业+身份证号编号
12、设计=类型(1:考试;2:教师;3:管理员)+注册序号tb_Student表的结构(二)教师教师=编号+姓名+密码+性别+注册时间+提示问题+问题答案+专业+身份证号编号设计=类型(0:考生;1:教师;2:管理员)+注册序号tb_Teacher表的结构(三)管理员管理员=编号+姓名+密码+性别+加入时间+身份证号+类别编号设计=类型(0:考生;1:教师;2:管理员)+注册序号tb_Manager表的结构(四)套题套题=编号+名称+所属课程+添加时间tb_Tao表的结构(五)课程表tb_Lesson(六)单选题考试题目tb_danQue stions表的结构(七)填空考试题目tb_tianQue
13、stions表的结构(八)客观题tb_odjQuestions表的结构(九)考试成绩信息表tb_stuResult表的结构(十)考试选课表tb_stuLesson表的结构3.2 具体模块设计系统功能模块介绍时,我们把整个系统分为管理员模块、教师模块、学生模块,其中管理员模块包括:用户管理(学生信息管理、教师信息管理、管理员信息管理)、科目管理、章节管理、班级管理、系别管理、试卷管理、考试信息查询;教师模块包括:个人信息修改、题库管理、试卷生成、阅卷管理;学生模块包括:考试页面、个人信息修改。我所做的模块是:学生信息管理模块、教师信息管理模块、试卷管理模块、科目信息管理、班级管理模块五个模块。3
14、.2.1 学生信息管理模块图3.2 添加学生信息界面设计思路:管理对学生的信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的表格中显示出相应的信息;删除记录时要选择相应的记录,点击删除按钮删除记录;点击添加按钮,弹出添加学生记录窗口(如图3.2)添加学生记录。实现代码(部分):通过设计类的(ProjectClass()中的方法调用数据库中的存储过程对数据进行操作 学号: 姓名: 密码: 手机号: 性别: 男 女 注册时间 : 班级: 软件3班 软件2班 软件1班 市场营销2班 财务1班 专业: 软件技术 财务 市场营销 地址: 湖南长沙 湖南株
15、洲 湖南湘潭 湖南岳阳 湖南益阳 湖南邵阳 湖南衡阳 湖南张家界 广东广州 类型: 学生 % Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:EXAM,sa,123); Statement st=con.createStatement(); String n=request.getParameter(t3); n=new String(n.getBytes(iso-8859
16、-1),utf-8); /out.println(n); String id=request.getParameter(id); id=new String(id.getBytes(iso-8859-1),utf-8); String name=request.getParameter(Sname); name=new String(name.getBytes(iso-8859-1),utf-8); String pwd=request.getParameter(pwd); pwd=new String(pwd.getBytes(iso-8859-1),utf-8); String joint
17、ime=request.getParameter(jointime); jointime=new String(jointime.getBytes(iso-8859-1),utf-8); String phone=request.getParameter(Phone); phone=new String(phone.getBytes(iso-8859-1),utf-8); String sex=request.getParameter(1); sex=new String(sex.getBytes(iso-8859-1),utf-8); String clas=request.getParam
18、eter(clas); clas=new String(clas.getBytes(iso-8859-1),utf-8); String prefession=request.getParameter(Prefession); prefession=new String(prefession.getBytes(iso-8859-1),utf-8); String address=request.getParameter(Address); address=new String(address.getBytes(iso-8859-1),utf-8); String type1=request.g
19、etParameter(type); type1=new String(type1.getBytes(iso-8859-1),utf-8); if(n.equals(学生) ResultSet rs=st.executeQuery(select * from TB_Student where Sname+=+name+,Pwd+=+pwd+,Type+=+type1+); if(rs.next() out.println(+该用户已经存在+); else st.executeUpdate(insert into TB_Student (Id,Type,Sname,Pwd,Clas,Sex,Jo
20、inTime,Prefession,Address,Phone) values+(+id+,+type1+,+name+,+pwd+,+clas+,+sex+,+jointime+,+prefession+,+address+,+phone+); out.println(+注册成功+); % 返回登录页面 3.2.2 教师信息管理模块图3.3教师信息管理界面图3.4添加教师信息界面设计思路:管理对教师的信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的表格中显示出相应的信息;删除记录时要选择相应的记录,点击删除按钮删除记录;点击添加按钮,弹出添
21、加教师记录窗口(如图3.4)添加教师记录。实现代码(部分): base href= My JSP Addtion1.jsp starting page % Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:EXAM,sa,123); Statement st=con.createStatement(); String n=request.getParameter(t3); n=new String(n.getBytes(iso-8859-1),utf
22、-8); String id=request.getParameter(id); id=new String(id.getBytes(iso-8859-1),utf-8); String name=request.getParameter(Sname); name=new String(name.getBytes(iso-8859-1),utf-8); String pwd=request.getParameter(pwd); pwd=new String(pwd.getBytes(iso-8859-1),utf-8); String jointime=request.getParameter
23、(jointime); jointime=new String(jointime.getBytes(iso-8859-1),utf-8); String phone=request.getParameter(Phone); phone=new String(phone.getBytes(iso-8859-1),utf-8); String sex=request.getParameter(1); sex=new String(sex.getBytes(iso-8859-1),utf-8); String clas=request.getParameter(clas); clas=new Str
24、ing(clas.getBytes(iso-8859-1),utf-8); String prefession=request.getParameter(Prefession); prefession=new String(prefession.getBytes(iso-8859-1),utf-8); String address=request.getParameter(Address); address=new String(address.getBytes(iso-8859-1),utf-8); String type1=request.getParameter(type); type1
25、=new String(type1.getBytes(iso-8859-1),utf-8); if(n.equals(学生) ResultSet rs=st.executeQuery(select * from TB_Student where Sname+=+name+,Pwd+=+pwd+,Type+=+type1+); if(rs.next() out.println(+该用户已经存在+); else st.executeUpdate(insert into TB_Student (Id,Type,Sname,Pwd,Clas,Sex,JoinTime,Prefession,Addres
26、s,Phone) values+(+id+,+type1+,+name+,+pwd+,+clas+,+sex+,+jointime+,+prefession+,+address+,+phone+); out.println(+注册成功+); if(n.equals(老师) ResultSet rs=st.executeQuery(select * from TB_Teacher where Sname+=+name+,Pwd+=+pwd+,Type+=+type1+); if(rs.next() out.println(+该用户已经存在+); else st.executeUpdate(ins
27、ert into TB_Teacher (Id,Type,Tname,Pwd,Clas,Sex,JoinTime,Prefession,Address,Phone) values+(+id+,+type1+,+name+,+pwd+,+clas+,+sex+,+jointime+,+prefession+,+address+,+phone+); out.println(+注册成功+); % 返回登录页面 3.2.3 试卷信息管理图3.5试卷信息管理界面设计思路:管理对试卷信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的表格中显示出相应的信息;删除记录时要选择相应的记录,点击删除按钮删除记录。实现代码(部分): 考试信息管理 题型 分数 说明 单选题 5 考生须知 多选题 5 考生在考试之前请阅读考生手册 填空题 5 具体操作如: 1.考生点击试题管理查看你所需考的科目和题目的难度记住你所需考科目的编号 判断题 5 2.再点击进入考试,填写你所需考的科目和学号,并且提交 就可以考试 题套Id 试卷名字 试卷编号 考试时间 删除操作 td align=center valign=mi