java课程设计 基于JSP的网上考试系统的设计与实现.docx
- 文档编号:3852001
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:43
- 大小:656.33KB
java课程设计 基于JSP的网上考试系统的设计与实现.docx
《java课程设计 基于JSP的网上考试系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《java课程设计 基于JSP的网上考试系统的设计与实现.docx(43页珍藏版)》请在冰豆网上搜索。
java课程设计基于JSP的网上考试系统的设计与实现
计算机与信息工程学院课程设计
题目基于JSP的网上考试系统的设计与实现
院(系)计算机与信息工程学院
专业计算机科学与技术
学生姓名赵庭
学号08010086
指导教师许荣泉职称讲师
论文字数
完成日期:
年月日
第1章开发背景及相关技术
1.1系统开发背景
每个人从进入学校的那天开始就与考试结下了不解之缘,每个地区每个学校的教学模式不同,考试的形式也会略有差异,有的学校考试频繁,有的学校定期组织,但是都有一个共同点,每每进行考试的时候学生就会看到这样熟悉的场景:
老师抱着一大堆试卷匆忙走向班级,以至于有些学生看到这样的场景都觉得害怕。
现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一场考试要花费教师大量的时间和精力去策划试卷,并且还要考虑到试卷的难易和知识点覆盖程度,试卷出好后还要经过打印,又要花费不少金钱。
另外,对于学生来讲,也不能得到随时能进行自我测评的锻炼,综合各方面,可以明显看出传统的考试模式已经不能适应现代考试的需要。
并且随着计算机应用的不断发展,网络应用不断扩大,人们迫切要求利用这些技术来减轻目前繁琐而又沉重的考试负担。
值得关注的是,网上考试不仅减轻了教师的工作负担而且提高了工作效率,同时更提高了考试的质量,从而也让学生感到了前所未有的公平感,更加激发了学生的学习兴趣和积极性。
本系统是基于B/S模式的网上考试系统,它能够从试题库中随机抽取试题组成试卷,有效避免了考试作弊、相互抄袭的弊端。
既然是考试系统,人们当然希望它能实现考试的基本功能和一些管理功能,所以开发网上考试系统,至少要实现以下几项任务:
(1)考生登录功能:
为考生提供登陆系统服务。
先将每个考生的各自学号和初始密码等信息放入数据库,这些将是学生的登录验证信息;
(2)考生考试和个人管理功能:
为考生提供网上考生的服务。
学生登录进去以后可以自己选择考试科目,并维护个人信息和查询考试成绩;
(3)管理员功能:
为管理员提供管理考试信息的服务。
管理员负责用户、试题和考试设置的管理工作,也能够对个人信息进行维护;
(4)教师管理功能:
为教师提供管理考试的服务。
教师可以进行试卷的查看和评阅,网上考试系统的最大特点就是能够自动阅卷,现场给出客观题得分,让学生感到了很大的公平感。
1.2系统开发的目的和意义
网上考试系统是通过计算机方式集中进行考试的系统,其主要的目的就是能够最大限度地利用现有的考试资源,建立完备的试题库,提高资源的利用率和当前的工作效率,利用计算机来组织考试,既提高了考试的科学性又减轻了教师的负担,同时也可以防止考生作弊,考试结束后系统将自动评阅试题,经过处理后自动给出分数,方便学生查询[1]。
而且,考生只能通过访问web服务器进入考试系统,答完考卷后答案自动存储,若到达考试规定时间,系统会给出相应交卷提示。
设定自动阅卷功能,标准化试题由于答案固定,可以让计算机自动将考生答案和标准化答案比对,自动生成成绩,确保成绩的公平和公正,从而利于教学改进。
传统的教学考试中,进行一场考试,老师要经过多个步骤:
策划试卷、整理试卷、考虑试卷知识点覆盖程度、安排考试、评阅试卷和分析试卷,这是一个繁重的过程,需要投入大量的人力、物力与时间,已经越来越不能满足学校信息化建设与现代教学的需要。
而网上考试系统,正是趋于信息化的标志,它是传统考场的拓展和延伸,它可以利用学校的局域网技术很方便地在任何合理时间内对学生进行考试,加上数据库技术的运用,大大简化了传统考试复杂的过程,因此网上考试系统是电子化教学不可缺少的辅助工具。
将计算机与数据库技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。
1.3开发技术简介
1.3.1开发语言——Java简介
Java是一门优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。
Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发[2]。
1995年6月SUN公司将Java这种革命性的编程语言引进到这个世界,且在同一年,被美国的著名杂志《PCMagazine》评为十大优秀科技作品之一。
之所以称Java编程语言具有革命性,是因为传统的软件往往依赖于具体的实现环境,环境一旦有所变化就要对软件进行相应改动,耗时费力,而Java编写的软件能在执行码上实现兼容。
Java的具体特点有以下几项:
(1)简单:
指这门编程语言既易学又好用,不要将简单误解成这门编程语言很干瘪。
如果从语言的简单性方面看,Java要比C++简单,C++中有很多容易混淆的概念,或者被Java弃之不用了,或者以一种更清楚更容易理解的方式实现。
这样对于初学者来说不至于那么难入门,也增加了人们学习的积极性。
(2)面向对象:
出于人的思维模式的考虑,面向对象的编程思想,使人们更容易编写程序。
(3)与平台无关:
Java最大的优势就是与平台无关。
其他编程语言程序普遍遇到的一个重要问题就是:
CPU升级、核心系统资源变化和操作系统的变化,都可能会产生程序错误或无法运行的结果,但是这个问题却被Java虚拟机成功解决。
(4)解释型:
我们知道C,C++等语言的编译对象是CPU芯片,在此基础上生成机器码,其运行就依赖于特定的CPU。
而Java的编译并不针对CPU芯片,它是把源代码编译成一种“中间代码”——字节码文件。
该文件与机器码很接近,可以在提供了Java虚拟机(JVM)的任何系统上被解释执行。
(5)多线程:
内置对多线程的支持又是Java的一大特点,多线程可以同时进行多项任务。
多线程之所以使人产生能够并发执行多个任务的错觉,是因为处理器可以快速切换于不同线程之间,实际上,计算机处理器在同一时刻仍旧只能处理一个线程[3]。
而C++没有内置的多线程机制,因此它如果想要进行多线程程序的设计就必须调用操作系统的多线程功能。
(6)安全:
Java的安全性被认为是字节码和虚拟机的安全性,在语言级上提供了很好的安全措施。
在支持Java的浏览器上可以放心的运行Java的小应用程序(JavaApplet),另外Java提供了诸如jca之类的安全框架,能够给应用程序提供很好的安全保障。
(7)动态:
类是Java的基本组成单位,类的种类很多,有些可以直接从类库中引入,有些要自己编写。
Java可以在分布式环境中动态地维护程序及类库,无需修改程序,因为它的类在运行时是动态装载的。
而C++类库升级之后,如果想让程序具有新类库提供的功能,就需要对程序进行修改和重新编译[4]。
1.3.2SQLServer2005简介
SQLServer是一种关系数据库管理系统,一个完整的商务智能平台,提供各种特性、工具和功能,可用于构建典型和创新的分析应用程序。
SQLServer2005通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好地确立了微软在BI领域的领导地位。
SQLServer2005能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。
从CEO到信息工作者,员工可以快速地、容易地处理数据,以更快更好地做出决策。
SQLServer2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。
SQLServer数据库系统采用最常见的数据库管理语言---结构化查询语言(SQL)进行数据库管理。
SQL即StructuredQueryLanguage全称是结构化查询语言,SQLServer2005是微软公司开发的一个大型的关系数据库系统,它为用户提供了一个安全、可靠、易管理和高端的客户/服务器平台,而且SQL语言有统一的操作规范、操作方式集合化、简单智能化、功能强大、语句简洁和简单易学等特点,便于使用者掌握和使用[5]。
SQL是一个通用的、功能极强的关系数据库语言,包含4个部分:
(1)数据查询语言DQL-DataQueryLanguageSELECT;
(2)数据操纵语言DQL-DataManipulationLanguageINSERT,UPDATE,DELETE;
(3)数据定义语言DQL-DataDefinitionLanguageCREATE,ALTER,DROP;
(4)数据控制语言DQL-DataControlLanguageCOMMITWORK,ROLLBACKWORK.
SQL能受到广泛关注并成为国际标准,是因为它是一种功能强大、综合性强同时又简捷易学的语言。
无论是数据库管理员还是应用程序员或者是终端用户都感觉受益匪浅。
SQL具有如下的优点:
(1)SQL是一种非过程化的语言,它采用一次一记录的方式,对数据提供自动导航。
SQL允许用户将工作提升到高层的数据结构上,可以对记录集进行操作,并非单个记录。
SQL的集合特性允许SQL语句采用嵌套查询的方式,在一条SQL语句中插入另一条语句。
SQL不限定数据的存放方法,这种特性使用户更易集中精力于要得到的结果。
(2)统一的语言
所有用户的DB活动模型都可以采用SQL,比如:
数据库管理员、系统管理员、系统决策支持人员、应用程序员以及其它类型的终端用户。
基本的SQL命令简单易学,就连最高级的命令也只要几天时间便可掌握。
SQL为许多任务提供了命令,包括:
①查询数据
②在表中插入、修改和删除记录
③建立、修改和删除数据对象
④控制对数据和数据对象的存取
⑤保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
(3)所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个[6]。
所有用SQL编写的程序都是可以移植的。
1.3.3TomCat简介
本系统的Web服务器选用Apache开元组织提供的TomCat,因为TomCat是一个免费的开元软件是SUN公司推荐的web服务器。
它因为技术先进、性能稳定而深受Java开发者的喜爱和部分软件开发商的认可,更重要的是它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发系统常用的功能。
另外,TomCat是一个轻量级服务器,在中小型系统和并发用户不是很多的情况下被普遍使用,是开发和调试JSP程序的首选[7]。
1.3.4开发方案简介
本系统的开发工具是Eclipse和MyEclipse,Eclipse是一个开放源代码的,基于Java的可扩展开发平台。
就其本身而言,他只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,其中就包括Java开发工具(JavaDevelopmentTools,JDT)。
MyEclipse是Eclipse的插件,集成了对Spring,Struts,Hibernate等主流JavaEE组件开发插件的支持,大大简化了JavaEE应用的开发[8]。
对于开发框架,本系统采用JSP+Struts的整合,其实任何一种框架都可以完成我们的项目,但我们选择两种框架的组合是因为两种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用Java技术在web上的应用。
1.JSP
JSP的全称是JavaServerPages,它是SUN推出的一种动态网页技术标准。
它在传统的静态页面文件(*.html,*.htm)中加入Java程序片段和JSP标记,就构成了JSP页面[9]。
JSP具有以下的优点:
(1)将业务层与表示层分离:
使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者Java程序片段来生成网页上的动态内容;
(2)能够跨平台:
JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;
组件的开发和使用很方便:
如ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用;
(3)一次编写,处处运行:
作为Java开发平台的一部分,JSP具有Java的所有优点,包括Writeonce,Runeverywhere。
2.Struts
Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)模式的应用架构的开源框架,实现了MVC框架,是利用Servlet,JSP和CustomTaglibrary构建web应用的一项非常有用的技术。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。
它使用服务层框架可以将JavaBeans从JSP/Servlet中分离出来,而使用表现层框架则可以将JSP中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglibrary)实现,不同框架有自己不同的标签库,Struts是应用比较广泛的一种表现层框架[10]。
1.3.5B/S开发模式
B/S(Browser/Server,浏览器/服务器)模式又称为B/S结构,是一种软件系统体系结构,随着Internet的兴起而逐渐发展起来,是对C/S结构的扩展。
运行维护简便是B/S结构的最大好处,它能够满足不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Internet模式下数据库应用,相对易于把握、成本也是较低的。
系统性能方面,B/S具有异地浏览和灵活采集信息的优势,客户端除了浏览器,一般无需任何用户程序,只需从web服务器上下载程序到本地来执行。
在下载过程中若遇到与数据库有关的指令,则由web服务器交给数据库服务器来解释执行,并返回给web服务器,再传输给用户。
这种结构中,可以将许许多多的网连接到一起,形成一个巨大的网,即全球网。
并且各个企业可以在此结构的基础上建立属于自己的Internet。
而我所开发的这个系统正是针对于学校而言,用户主体是学生,事件场合是考试,基于以上的阐述,再结合本文考试系统的用户特点,采用B/S模式最适合不过。
第2章系统分析
2.1可行性分析
可行性分析是对系统存在的问题是否值得去解决这一问题进行解答,必须分析几种可能的解法的利弊,从而判断原定系统的规模和目标是否现实,系统开发后所能带来的效益,决定是否值得去投资开发这个系统。
可行性研究的目的不是解决问题,而是能够话费最小的代价在最短的时间内确定问题是否值得去解决。
本系统从以下几个方面内容进行可行性研究。
1.技术可行性:
本系统采用了比较实用的Java语言、JSP开发框架和SQLServer2005数据库作为进行开发。
2.经济可行性:
本系统主要是针对学校开发,开发经费对于一个院校来说在经济上是可以接受的。
3.操作可行性:
主要是管理人员和学生是否支持,严格区分服务端和客户端,有严格规章制度和管理要求,操作简单方便。
明确的规章制度和管理方法为系统的建设提供了制度保障。
综合上述,本系统的开发目的已明确,在经济和技术操作等方面都可行,并且开发成本低,成效明显,因此开发本系统是完全可行的[11]。
2.2系统的总体需求分析
2.2.1网上考试系统的使用范围
网上考试系统主要针对学校的考试管理与使用而开发的,所以其主要适用于学校教师对学生考试各方面信息的管理。
2.2.2系统功能描述
网上考试系统实现的是方便学校对学生进行考试的管理,通过以上对网上考试系统的任务和目标的分析可以看出,一个标准的网上考试系统主要功能模块分为以下两个:
一个考生前台,一个后台管理,考生前台主要是能够实现登录和考试的功能,后台管理的功能比较丰富,管理员负责将考生信息添加到数据库,对考生信息有相应操作的权限,管理员最重要的是进行题库的管理,还有对考试设置信息的管理。
本系统还包括一个教师管理的功能,主要进行考生试卷的评阅和个人信息的维护。
1.考生前台的主要功能是:
每个学生都有自己的学号和密码,这就是各自的登录信息,在服务器开启的情况下,考生可以分别选择进入考生管理和考生考试,选择考试科目,就可以进入相应的考试界面,如果考试时间已到,系统会自动提示考生交卷。
考生可以进行分数和试卷信息的查询,方便简单,同时也给考生感觉很大的公平感。
考生页面功能丰富详细,简单大方,看起来舒适方便,考生可以很清楚自己的考题类型和考试时间,考生过程中还可以自由跳转,查看题目的完成情况,是否有漏答和想要更改答案的题目,大大增加了考试的灵活性。
2.教师管理的主要功能是:
教师的主要功能是查看学生试卷,评阅考生试卷主观题,并且对考生的成绩得分有个分数段统计,以便进行教学研究。
3.后台管理的主要功能是:
对于设置了管理员权限的用户可以登录服务器端,对系统进行整体的管理和信息更新。
管理员目前的主要功能有试题管理、考试设置管理、用户管理和个人信息维护,试题管理主要包括添加、修改和删除试题;考试设置管理包括添加、修改和删除考试课程;用户管理包括添加、修改和删除用户;个人信息维护包括修改个人信息和密码,当然查询功能是最基本的。
2.2.3网上考试系统的用户特征
网上考试系统的使用者是学生、教师和管理员,一个是服务端,一个是客户端,进行了严格的划分,学生和教师分别是进行考试和试卷评阅的普通用户,管理员是整个网上考试系统的管理人员。
2.3系统功能模块需求
2.3.1考生登录模块
考生登录的是客户端,所以用户界面要求符合用户的使用习惯,让用户感到自然、合理、舒适、简单,由于本系统是网上考试系统,所以在正确输入学号和密码之后,就可以进入考试界面进行考试了。
2.3.2考生功能模块
考生可以选择考试科目,每种科目的考试时间有所不同,考生认真答完每一题过后,可以检查是否是有漏答或者想改动的题目,确认无误后可以点击交卷按钮进行交卷,考生可以查询考试成绩和自己的试卷信息,简单方便。
考生还可以进行个人管理,查询自己的考试成绩和维护个人信息。
2.3.3管理员登录模块
管理员登录的是服务器端,登录界面也要求简单大方,管理员应该有特定的用户名和密码,而且相对于客户端来说应该具有一定的安全隐蔽性。
2.3.4管理员功能模块
1.试题管理
管理员控制试题的管理,可以对任意题型进行添加、修改和删除。
2.考试设置管理
(1)添加考试课程管理员可以添加新的考试科目,丰富考试类型。
(2)修改考试课程管理员可以修改已有考试科目的信息,包括题量和分值的修改。
(3)删除考试课程管理员可以对已经过时的考试课程进行删除操作。
3.用户管理
(1)添加用户管理员可以添加用户,并赋予用户具体的用户类型和相应的操作权限。
(2)删除用户管理员可以查询用户信息时删除用户。
(3)修改用户信息管理员可以对用户信息进行维护和更新。
4.个人信息维护
(1)修改个人信息管理员可以修改自己的用户信息。
(2)修改密码管理员可以修改自己的登录密码,保证安全性。
2.3.5教师登录模块
每个教师有自己的教师编号,正确输入教师号和密码并且选择科目,就能进入相应的操作界面。
2.3.6教师功能模块
1.查看/修改试卷
若选择的科目下有学生考试的话,则会自动将考生的试卷信息进行动态加载,教师点击相应试卷即能进行评阅,给出得分后将自动保存到数据库,以方便学生查询。
2.分数段统计
教师可以根据学生的得分情况进行分数段统计,算出相应比例,可以很清楚地显示出相应时间段内学生的学习情况,有利于教学研究。
3.个人信息维护
教师可以对个人信息进行修改和维护,还可以修改登录密码。
第3章系统设计
3.1指导思想
1.B/S结构开发思想
基于本系统的开发背景和开发目的,衡量之下采用B/S结构更适合,B/S结构可以将客户操作界面设计个性化,具有直观、简单、方便的特点,可以满足客户个性化的操作要求。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
2.系统工程的流程思想
我们在系统开发过程中,采用工程的概念、原理、技术和方法来开发与维护软件,秉承软件工程的思想,将技术与管理紧密结合。
软件工程的主要环节如图1所示。
图1软件工程的主要环节
3.面向对象机制的设计思想
代码和数据是组成所有计算机的基本元素。
更准确的说,有些程序是围绕着正在发生的事物而编写的,有些则是围绕正在受影响的事物而编写的。
第一种编程思想是面向过程的编程思想,按这种模式编写的程序以一系列的代码为特征,这些代码可以被理解为用作于数据。
如C等过程化语言。
第二种编程思想是面向对象的编程思想,按这种模式编写的程序根据程序的对象和针对该对象而严格定义的接口来组织程序,它的特点是把控制权转移到数据上,代码的访问由数据控制。
面向对象的模型在组织方式上有:
封装、继承、抽象和多态的好处[8]。
3.2数据库设计
3.2.1概念结构设计
任何软件产品的开发都要追溯到用户需求,概念结构设计就是要将需求分析阶段得到的用户需求抽象为信息结构的过程。
首先要能够将需求分析阶段所得到的应用需求进行抽象化,抽取所关心的共同特性,并将其用各种精确的概念加以描述,才能更准确地、更好地用某一DBMS来实现。
1.能准确、真实地反映现实世界中事物和事物之间的联系,能满足用户需求,是对现实世界的抽象,并且应该是一个真实模型。
2.便于理解,即使用户不熟悉计算机,也能够通过它交换对系统的意见和想法。
3.便于修改,当用户需求发生改变时,能够方便地对概念模型进行修改和扩充。
4.易于向层次、关系、网状等其他各种数据模型转换。
本系统的概念结构设计采用的方法是自底向上设计方法,首先定义各局部应用的概念结构,然后将他们集成起来得到全局概念结构[5]。
网上考试系统的主要实体图和系统E-R图如下:
图2用户实体图
图3试卷实体图
图4试题实体图
图5考生成绩实体图
图6考试设置实体图
整个系统的E-R图如图7所示:
图7系统E-R图
3.2.2数据库的设计
通过对系统功能的分析可知,本系统主要包括如下的数据库信息:
(1)用户表:
该表保存了系统用户的基本信息,属性有用户编号、用户名称、用户类型、用户性别。
其中用户编号为主码,它是用户信息的唯一标识。
表结构如表1所示。
(2)考生标记表:
该表用于保存考生是否已经考试的标识信息,属性有用户编号、课程名称、标识信息。
其中用户编号和课课程名称共同作为主码。
表结构如表2所示。
(3)考题表:
该表用于保存考题的基本信息,属性有考题编号,课程名称,考题类型,题目级参考答案等。
其中考题编号为主码。
表结构如表3所示。
(4)试卷设置表:
该表用于记录相应课程的考试设置的相关信息,属性有课程名称,单选题、多选题、判断题、简答题、编程题数量和分值,考试时间等。
其中课程名称为主码。
表结构如表4所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java课程设计 基于JSP的网上考试系统的设计与实现 java 课程设计 基于 JSP 网上 考试 系统 设计 实现