




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山西大学论文 编号:2008241063论文题目 基于Java的在线考试系统的设计与实现姓 名 院系、专业 计算机科学与技术、计算机科学与技术 学习年限 年 月至 年 月指导教师 学位级别 2013年4月4日基于Java的在线考试系统的设计与实现学生姓名: 指导老师:内容提要 当今世界网络信息技术迅速发展,网络在人们生活中的应用越来越广泛,在线考试已经成为人才选拔的重要途径。本系统基于B/S模式,使用Java语言及JSP/servlet技术,采用DIV+CSS布局方法,使用SQLServer2005数据库技术和TomCat服务器实现了B/S模式下的在线考试系统。本系统由学生、教师和系统管理员三
2、种用户组成。学生登陆系统可以进行在线考试、成绩查询和修改部分个人信息;教师登陆后可以进行判卷和修改部分个人信息;管理员登陆后可以对用户和试题进行维护并且实现了用户信息和试题的批量导入。本系统可用性很强,能用来进行多种计算机语言课程的考试。关键词 在线考试;java;SQLServer;JSP/servlet 1 引言1.1问题的提出目前,各行各业都需要大量的人才,而人才选拔的最重要的途径则是考试。现阶段,学校的考试模式大都是传统的考试模式:由老师出纸面上的卷子,学生在在卷子上答题,交卷后有老师人工判卷。这样的考试模式一是不利于老师提高工作效率;二是传统的考试模式工作量大容易出错。随着考试类型的
3、不断增加和考试要求的不断提高,传统的考试模式已经不能满足现在选拔人才的要求。随着计算机各方面技术的迅猛发展和应用在各行各业的不断深入,人们迫切要求利用这些先进的科学技术来实现在线考试,不仅可以减轻教师的工作负担而且还能提高老师的工作效率和考试的质量。从而使考试变得更加客观、公正,也可以在一定程度上提高学生的学习兴趣。在线考试系统可以实现对学生考试和老师判卷的合理化管理,不仅能节省人工大量的时间,而且在一定程度上可以消除人的主观因素造成的影响,使考试变得更规范,更加客观、真实、全面的反应考生的水平和教学的实际效果,有助于促进教学质量的提高,有助于真正实现考、教的分离。1.2系统开发目标本系统计划
4、实现一个基于Java的在线考试系统。系统主要分为三大模块,学生、老师和管理员。学生登陆进行考试,考试完成后系统自动为客观题评分。教师登陆系统,系统还原学生考试试卷,教师对主观题评完分后系统可以计算出学生总分,并生成各分数段分布信息,供给老师参考,以便能够了解学生的学习情况。管理员可以实现对用户信息的增、删、改、查,也可以实现对考题的增、删、改、查。1.3开发工具的选择本系统开发语言为JAVA,开发环境是MyEclipse,前台页面主要用DreamWeaver来设计。由于本系统数据量和负载量都比较大,从经济和效率上考虑本系统选用SQLServer2005数据库。本系统的数据库不限制题量。 Web
5、服务器选Apache开源组织提供的TomCat,因为TomCat是一个免费的开源软件是被SUN公司推荐的Web服务器。1.4开发本系统的意义从电子文档、多媒体的应用,到利用Internet做尝试,网络已经渗入到教育体系的各个环节网上考试系统作为这场变革中必不可少的环节之一,受到越来越多的关注网上考试系统不仅和传统考试方式一样要权衡公平性,而且还具有一些新特点:1. 从管理的角度看,在线考试系统可以帮助教师完成一个考试从题的设计,考试的实施,考卷的批改到分数的统计和总结的所有工作,系统实现了考试的无纸化管理,提高了管理效率,也很好地实现了教考的分离。2. 在不改变传统考试基本步骤的条件下,只要考
6、试客户端可以连接到考试应用服务器,考生进行身份确认,都能完成考试。3. 考试结果反馈及时准确。考试的结果在教师修改考完之后就可以知道,同时提供一个反馈信息让考生知道自己哪些题做错了,考生的考试结果可以被保存下来,供教师进行分析统计和察看。2 系统分析2.1技术可行性分析本系统的开发将要用到JSP/Servlet、SQLServer数据库技术。硬件只需要一台pc机,装上软件MyEclipse,DreamWeaver等开发工具 ,利用SQLserver2005作为后台的数据库,利用Tomcat作为Web服务器,所以在这方面来说是可行的。已经掌握了开发考试系统方法和开发工具,并且已经了解和熟悉了在线
7、考试系统的业务流程。综上所述本系统开发从技术上是可行的。2.2经济可行性从经济效益来分析,本系统的开发成本不大。由于系统运行的基础环境均已具备,无需重新开发搭建,所以系统的开发、运行所需费用是比较低的。而系统的效益很高可以提高管理效率实现计算机化、系统化、规范化操作,效率大于投入,可行性很高。2.3方案可行性根据系统的分析,本系统充分从适用性出发,全面为不同的使用用户考虑。使系统的许多功能与规则都可根据用户的习惯进行定制,包括软件界面、操作方式、录入方式等。本系统的设计充分从使用用户和教务教学任务考虑。3 需求分析3.1系统用户本考试系统用户主要分为三类:学生、教师、管理员。1.学生需求学生登
8、陆系统主要进行两类操作:在线考试,成绩查询与个人信息管理。(1)在线考试学生登陆时自己选择考试科目。学生在考试过程中页面将提供考试时间倒计时功能,让考生随时可以知道剩余时间,在考试剩余五分钟时系统会提醒考生考试快结束了。在考试时间到时,系统自动地将试卷提交,提醒考生离开考场。当试卷提交后,系统自动为选择题、判断题等客观题评分,主观题由教师评分。(2)成绩查询与个人信息维护学生可以登陆系统查询各科成绩,其中成绩信息包括每种题型的得分,如单选题,简答题等。另外学生还可以查询自己的考卷,了解自己的考试情况。除此之外,学生登陆系统可以查看和修改个人的部分信息。2.教师需求教师登陆系统主要有三类操作:查
9、看和修改学生试卷,查看各分数段统计,个人信息的修改与维护(1)查看/修改学生试卷系统会将学生试卷从数据库中读出供给老师查看和修改,系统已经对客观题进行了评分,所以这些信息对于教师是只读的。而对于主观题,系统将参考答案读出供给老师参考,再将考生答案读出供给教师评分。(2)查看分数段统计教师批好试卷之后,系统会自动将成绩汇总,生成各分数段统计信息,供给老师查看,以便教师能了解学生的考试情况,并对其进行分析以便及时修改教学计划。(3)个人信息维护教师登陆系统之后可以对个人的部分信息进行查看和修改。3.管理员系统管理员登陆系统后主要进行四类操作:考题维护,考试信息维护,用户信息维护和个人信息维护。(1
10、)考题的维护管理员可以往题库中添加考题,修改错误试题和删除无用试题。为了方便试题的维护,管理员也可以用excel表对试题进行批量导入。(2)考试信息的维护考试信息的维护主要是对于考试设置信息进行维护,这些信息主要是考试总时间,各个类型试题的数量,各试题分值的分布等。(3)用户维护系统管理员可以对用户的全部信息(包括学生信息,教师信息等)进行增、删、改、查操作。管理员也可以批量导入用户的信息,方便有大量的用户。(4)个人信息维护管理员也可以对自己的基本信息进行维护。3.2实体关系图据分析系统实体关系图如图3.1所示:图3.1 系统E-R图系统各实体关系如下:用户:用户标记 1:N考试设置:用户标
11、记 1:N考题:考试设置 N:1考题:试卷 1:N用户:试卷 1:N试卷:成绩 N:1用户:成绩 1:N4总体设计4.1系统功能模块图根据3.1所述需求,设计出系统功能模块如图4.1所示图4.1 系统的功能模块图4.2系统功能模块1在线考试在线考试的流程如下:首先系统按照一定的算法为登陆的考生随机选取一定的试题生成考试试卷,考生在系统生成好试卷后进行答题操作。答题必须在规定的时间内进行,此时间是由管理员事先设置好的,如在规定的时间内没有完成答题,系统将强制提交学生考试试卷。考生在试卷提交后系统自动地为客观题进行评分,本系统的客观题主要是单选题,多选题和判断题。主观题有老师登陆进行判卷得分,主观
12、题主要是简答题和编程题。2. 成绩查询 考生根据用户编号查询考试成绩信息。成绩信息包括单选题得分,多选题得分等详细信息。页面提供对相应科目试卷的链接,使得学生还可以查询自己的考卷,了解自己的考试情况。3查看/修改考生试卷 系统首先将考生的试卷读出,再提提醒老师对主观题进评分,等老师对主观题进行评分后系统生成考生的成绩信息。4. 分数段统计 当教师对考卷的主观题评定后,系统能自动生成分数段统计信息供给老师查看。此功能有助于老师了解学生的学生情况,以便更好的教学。5. 试题维护试题维护是后台管理员的重要功能,它包括对试题进行添加,修改,删除操作。为了使界面更友好,管理员在试题维护时系统会先将考试试
13、题读出,再提供给管理员进行操作。6. 考试设置信息维护考试设置信息维护是管理员对考试设置信息维护,它包括对考试设置信息的添加,修改,删除。这些考试信息包括考试时间,各题的数量和分值等。在数据库中录入试题后,可以在此设置相关考试信息生成试卷,本系统可进行多种考试,但是必须是程序语言的相关考试。7用户管理用户管理是管理员对系统用户信息的管理。这些用户包括学生和教师。用户管理操作包括添加用户,更新用户和删除用户。管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。8个人信息维护学生,教师,管理员都可以对个人信息进行维护。维护操作包括对个人基本信息进行修改和修改密码等。系统能提供极为
14、友好的界面方便用户操作。4.3 后台数据库的设计数据库表结构的设计通过对系统功能的分析可知,本系统主要包括如下的数据库信息:1. 用户表,该表保存了系统用户的基本信息,属性有用户编号、用户名称、用户类型、用户性别。其中用户编号为主码,它是用户信息的唯一标识。表结构如表4.1所示。2. 考生标记表,该表用于保存考生是否已经考试的标识信息,属性有用户编号、课程名称、标识信息。其中用户编号和课程名称共同作为主码。3. 考题表,该表用于保存考题的基本信息,属性有考题编号,课程名称,考题类型,题目及参考答案等。其中考题编号为主码。表结构如表4.2所示。4. 试卷设置表,该表用于记录相应课程的考试设置的相
15、关信息,属性有课程名称,单选题、多选题、判断题、简答题、编程题数量和分值,考试时间等。其中课程名称为主码。5. 试卷表,该表用于保存考生的试卷信息,属性有考生编号,课程名称,考题类型,考生答案和得分等。其中考生编号和课程名称共同作为主码。表结构如表4.3所示。6. 成绩表,该表用于保存考生的考试成绩信息,属性有考生编号,课程名称,各考题得分,总得分。其中考生编号和课程名称共同作为主码。系统部分表结构如下:表4.1 用户表(UserInfo)字段类型允许为空说明备注UidVarchar(10)否用户编号pknameVarchar(50)是用户姓名utypeint是用户类型1为学生,2为教师,3为
16、管理员passwordVarchar(10)是密码sexVarchar(2)是性别表4.2 考题表(Question)字段类型允许为空说明备注Qidint否考题编号pk 自增长qtypeint是考题类型1单选题 2多选题 3判断题 4简答题 5编程题courseVarchar(20)是课程名称quesText是题目keyAVarchar(50)是选项AkeyBVarchar(50)是选项BkeyCVarchar(50)是选项CkeyDVarchar(50)是选项Danswertext是参考答案表4.3试卷表(test)字段类型允许为空说明备注UidVarchar(10)否用户编号pkQidin
17、t否考题编号pk 题库中的题号CourseVarchar(20)否课程名称Qtypeint否考题类型1单选题 2多选题 3判断题 4简答题 5编程题answerText是考生答案Tnumberint否题目编号试卷中的第几题scorefloat是得分数据库的连接在本系统中我们使用JDBC桥连接,要进行数据库连接首先要配置数据源。按4.3.1和3.2的设计,设计好数据库ExamOnlie,再建一个名为ExamOnline的数据源。系统连接数据库的流程图如图4.2所示:图4.2 系统连接数据库流程图5.详细设计5.1公共类的设计1Domain类设计由于数据库使用的类系统模型,而java数据为对象模型
18、,使得其模型不匹配。为了方便关系模型和对象模型间的转换,建立对应的Domain类,即数据库中每个表对应一个类,表中类属性对应表的各属性。表和类的对应关系如下:用户表(UserInfo)用户类(User)用户标记表(userflag)用户标记类(UserFlag)考题表(Question)考题类(Question)试卷表(test)试卷类(Test)试卷设置表(test_set)试卷设置类(Test)成绩表(record)成绩类(Record)试卷考题类(TestQuestion)试卷表和考题表联合查询视图2.工具类的设计根据系统设计需求,设计如下工具类及部分代码:(1)数据库连接工具类,主要提
19、供连接数据操作等相关方法。(2)用户操作相关类,主要提供对用户表操作的相关类。(3)用户标记工具类,主要提供对用户标记表的相关操作方法(4)考题工具类,主要提供对考题表的相关操作方法(5)试卷工具类,主要提供对试卷表的相关操作方法(6)考试设置工具类,主要提供对考试设置表的相关操作方法(7)试卷考题工具类,主要提供对试卷表考题表联合查询视图的相关操作方法(8)成绩工具类,主要提供对成绩表的相关操作方法。 5.2在线考试模块在线考试流程为:首先系统将考试信息和考生个人信息提供给考生,并要求考生核对个人信息。在考试开始时系统为登陆的考生选取试题生成考卷,考生在系统生成试卷后进行答题。答题必须在规定
20、的时间内进行,如在规定的时间内未完成答题,系统将强制提交学生的考卷。试卷提交后系统自动地为客观题进行评分,并将试卷保存,供给老师查看和修改。在线考试流程图如图5.1所示。图5.1 在线考试流程图学生考试打开试卷,试卷的形成用到了抽题算法,抽提算法如下:产生一个随机整数,这个数在0和相应题型总考题数之间。从这个随机数开始抽取试题,抽取数量为试卷设置中相应题型的个数(此数小于总题数),其抽题流程如图5.2如示。图5.2 选题流程图随机选题操作方法主要代码及说明:此方法输入参数为课程名称course,需要题数count,试题类型type;抽题过程使用了一个for循环;输出为一个包含抽取的试题信息的集
21、合ArrayList。抽题的部分代码如下:int temp = (int)(Math.random()*totalCount); /随机产生一个0-总题数之间的随机整数 try conn = new DBAccess.getConnection(); /取题 for(int i = 0;i<count;i+) int tempCount = (temp+i)%totalCount; /sql的查询语句 String sql = "select top 1 * from Question where qtype="+type+" and course='
22、;"+course+"' and Qid not in(select top "+tempCount+" Qid from Question where qtype="+type+" and course='"+course+"')" ps = conn.prepareStatement(sql); rs = ps.executeQuery(); Question ques = new Question(); if(rs.next() /保存试题 ques.setId(rs.get
23、Int(1); ques.setType(1); ques.setQues(rs.getString(4); ques.setKeyA(rs.getString(5); ques.setKeyB(rs.getString(6); ques.setKeyC(rs.getString(7); ques.setKeyD(rs.getString(8); ques.setAnswer(rs.getString(9); al.add(ques); catch(Exception e)e.printStackTrace();/打印出异常信息finallydb.CloseDB(conn, ps, rs);/
24、关闭数据库连接return al;5.2成绩查询模块设计考生根据用户编号查询考试成绩信息,查询到的成绩是考生的所有课程的成绩。成绩信息包括单选题得分,多选题得分等详细信息。5.3查看/修改考生试卷模块设计教师登陆后,可以对考生试卷进行查看和修改。系统首先将考生的试卷读出,教师可能看到系统对试卷主观题的评定。系统会提提醒老师对主观题进评分,等老师对主观题进行评分,系统会将保存对学生试卷的评定,而后生成考生的成绩信息。查看/修改考生试卷的流程图如图5.3所示。图5.3查看/修改学生试卷流程图5.4分数段统计模块设计当教师对考卷的主观题评定后,系统能自动生成分数段统计信息供给老师查看。统计分数段包括
25、及格率、60-69分、70-79、80-89和90分以上,在统计各分数段总人数的同时计算出各分数段占考生总数的比例。5.5试题维护模块设计试题维护是后台管理员的重要功能,它包括对试题的添加、修改和删除操作。在进行这些操作时系统会先将考试试题读出,再提供给管理中员操作。试题维护流程图如图5.4所示。 图5.4 考题维护流程图56考试设置信息维护模块设计考试设置信息维护是管理员对考试设置信息维护,它包括对考试设置信息的添加,修改,删除。这些考试信息包括考试时间,各题的数量和分值等。设置时,系统先读取已存在的考试设置信息供给管理员查询,再提供给管理员操作。考试设置信护流程图如图5.5所示。图5.5
26、考试设置信息维护流程图5.7用户管理模块设计用户管理是管理员对系统用户信息的管理。这些用户包括学生和教师。用户管理操作包括添加用户,更新用户和删除用户。添加用户时,删除管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。用户密码不用设置,系统默认为“123456”;修改用户时用户编号和用户密码不能被修改其它均能被修改;用户时,系统会先提醒管理员是否删除,若果确认删除才能删除用户。用户管理流程图如图5.6所示。图5.6 用户管理流程图本系统的用户信息实现了批量(excel表)导入,用户信息的批量导入程序实现流程如图5.7图5.7 用户信息批量导入程序流程图用户信息批量导入关键代
27、码及说明: /取出excel表中的数据InputStream is = DateStu.class.getClassLoader().getResourceAsStream("student.xls");try Workbook wb = Workbook.getWorkbook(is); / 创建工作簿 jxl.Sheet sheet = wb.getSheet(0); / 创建工作表 String content = null; for (int i = 1; i < sheet.getRows(); i+) / i代表行 从1开始 Student stu = n
28、ew Student(); for (int j = 0; j < sheet.getColumns(); j+) / j代表列 从0开始 content = sheet.getCell(j, i).getContents();/此处实现判断导入的各属性信息,部分代码省略 if (stu.getId() = null) stu.setId(sheet.getCell(j, i).getContents(); continue;getStudentInfo(stu); catch (BiffException e) e.printStackTrace(); catch (IOExcepti
29、on e) e.printStackTrace(); /将取出的值插入数据库String sql = "insert into UserInfo(Uid,utype,name,password,sex) values('"+ stu.getId()+ "'," + stu.getType()+ ",'"+ stu.getName()+ "','" + stu.getPassword() + "','" + stu.getSex() + &q
30、uot;')"DBAccess db = new DBAccess();Connection con = db.getConnection();try Statement state = con.createStatement();int i = state.executeUpdate(sql); catch (SQLException e) e.printStackTrace();5.8个人信息维护模块设计系统用户包括学生,教师,管理员都可以对个人信息进行维护。维护操作包括对个人基本信息进行修改,修改密码等。系统能提供极为友好的界面方便用户操作。对其本信息进行时,用户不能修
31、改自己的编号。对密码进行修改时按昭一般系统的要求先确认旧密码,再输入新密码和确认新密码。6.前台部分界面6.1系统主界面将工程导入Tomcat的项目文件夹中即webapps文件夹中, 再启动TomCat服务器。在浏览器中输入工程的URL,如“www.localhost:8080/ExamOnline”可进入系统操作界面,用户可以选择操作。如图6.1所示。图6.1 系统主界面6.2在线考试界面图6.2 在线考试界面7.致谢时光荏苒,毕业设计也接近了尾声,由于时间紧迫任务繁重,同时自己经验知识的匮乏,在本次设计中难免会遇到一些困难,但多亏了老师和同学的帮助才有幸完成了本次毕业设计。在此我
32、要多谢我的指导老师。老师工作繁重,但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。同时我还要感谢我的同学,感谢他们在我需要帮助的时候都默默的帮着我,无论是技术方面的还是生活方面的,他们都给了我很大的帮助,其次在此次毕业设计时发现了网络上极大的资源可以供我们利用,虽然有好多不会的,但是可以在网上查到很多资料,现在利用的一部分东西还不是很懂,但是培养了自己的学习和查找资源的能力。希望以后自己更加努力进步。参考文献1 郝玉龙JavaEE 编程技术北京:清华大学出版社,2008.8:20-352 王珊数据库系统概论北京:高
33、等教育出版社,2006.5:12-2343 严蔚敏.数据结构.北京:清华大学出版社,2003:214-3054 Core Java第1卷.思软科技内部教材.2011:115-1735 Core Java第2卷.思软科技内部教材.2011: 46-936JSP/Servlet.思软科技内部教材.2011:8-937 赵文靖.Java程序设计基础与上机指导.北京:清华大学出版社,2006:23-1088 王路群.Java高级程序设计.北京:中国水利水电出版社,200635-999 雍俊海.Java程序设计习题集.北京:清华大学出版社,2006:1-1210 朱福喜.Java语言习题与解析.北京:清华大学出版社,2006:12-3311 吴其庆.Java程序设计实例教程.北京:冶金工业出版社,2006:3-10Design and implementation of the online examination system based on JavaStudent Name:Quan Zhimin Tutor:Sang YanliA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025建筑公司借款合同
- 2025酒店管理承包合同协议书
- 2025水电安装工程施工合同模板
- 2025美容美发店员工股权激励合同
- 2025商业店铺租赁合同
- 2025关于个人信用担保合同
- 2025年杭州市劳动合同范本
- 2025建设工程设计合同建设工程合同范本DD
- 2025租赁合同租赁协议
- 2025土地使用权转让合同样本
- 2023年医疗机构消毒技术规范医疗机构消毒技术规范
- 2024年四川省自然资源投资集团有限责任公司招聘笔试参考题库附带答案详解
- 日式介护培训课件
- 面向多类型数据源的数据仓库构建及ETL关键技术的研究
- 景墙的施工技术方案
- 施工标准化九牌一图
- 单角子宫疾病演示课件
- 义务教育物理课程标准(2022年版)测试题文本版(附答案)
- FSSC22000V6.0体系文件清单
- 贾玲春晚搞笑公司年会小品《真假老师》台词剧本完整版
- 23S519 小型排水构筑物(带书签)
评论
0/150
提交评论