基于JAVA交通考试的开与研究_第1页
基于JAVA交通考试的开与研究_第2页
基于JAVA交通考试的开与研究_第3页
基于JAVA交通考试的开与研究_第4页
基于JAVA交通考试的开与研究_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JAVA课程设计题目:驾驶员从业资格考试系统 学 院: 专 业: 计算机科学与技术 班 级: 10 计 科 学 号: 学生姓名: 2012年 01 月 05日28 / 31文档可自由编辑打印无纸化考试系统的设计与实现摘要:在当今社会,网络教育作为构建开放的终身教育体系的一种十分重要和行之有效的途径,越来越收到各方面的关注,并得到了极大的应用和发展。网上考试系统,作为网络教育支持平台中十分重要的组成部分,为网络教育教学反馈和质量评估的有效手段,同时也对传统考试提出了巨大的挑战。本系统利用网络技术和数据库技术,开发了基于C/S结构的多用户在线考试系统。该系统使用方便、操作简单,现阶段能实现多用户同

2、时在线考试、时间控制,试题录入及修改、试题共享、用户管理、成绩查询、辅助阅卷等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并获得成绩。软件采用简洁的客户端服务器模式,脱离对外网的依赖,在局域网内即可完成考试。以C语言和C+ 课程为例构建了两份试卷并实现了网上考试系统的设计,该考试系统具有通用性,可以方便地推广到其他课程。关键字:网上考试系统;软件工程;组卷;C/S模式目 录1 绪论11.1课题研究背景11.2课题研究的内容21.3课题研究的意义22 系统的理论基础及相关技术42.1可行性分析42.2系统的主要技术措施42.3VS及MFC简介53 系统的需求分析93.

3、1系统需求分析93.2系统开发环境104 系统设计方案124.1系统的体系结构124.2功能模块设计134.3权限设计144.4系统数据库设计155 系统主要模块的设计与实现205.1系统总体结构及服务器端和客户端说明205.2题库管理的实现215.3试卷生成功能的实现225.4在线考试的实现245.5用户管理的实现305.6成绩查询功能实现305.7答卷的存储与读取335.8文件传输的实现346 系统界面设计366.1服务端366.2 客户端387 总结40参考文献411 绪论1.1课题研究背景随着Internet和计算机技术的高速发展,计算机和网络的应用已经普及到各行各业。尤其在大,中专院

4、校,校园网的建设已经逐步完善,大多数学生已经具备了利用网络工具进行信息交流和辅助学习的能力。发展以互联网为主要手段的现代远程教育已经成为当今教育发展的趋势。在国内,教育部提出实施“现代远程教育工程”,形成开放式教育网络,构建终身学习体系。在我国,考试一直是学校教学活动中最重要的环节之一。然而,长期以来学校的各种考试都是以纸,笔为介质的传统考试方式,就是到目前为止,许多学校包括我们所在的高校,都还在广泛的使用这种考试方式。在传统考试方式下,组织一次考试要经过多个环节:教师出题,印制试卷,学生考试,教师阅卷,统计成绩与评估和试卷分析等,消耗了大量的人力物力,并且在阅卷,统分的工作中也非常容易出现人

5、为的差错。而且,随着考试题型和考生数量的不断增加以及考试要求的不断提高,组织考试的工作量越来越大,而且也越来越烦琐。可以说,在计算机技术和网络技术日益发展成熟的今天,传统的考试方式已经很不适应现代考试的需要了。将先进的计算机技术和网络技术应用于考试已经成为考试方式发展的必然趋势了。老师们都非常盼望用一种新的方式来取代传统考试方式,以减轻教师的工作负担、提高工作效率,提高考试质量,使考试更趋于客观、合理和公证,更有利于教与学。正是在这种背景下,设计并开发一个功能完善的网络考试系统也就成为了我们迫切需要解决的问题。基于此,近几年来在线考试系统一直是高校软件开发的热点。基于B/S模式和C/S模式的考

6、试系统是一种新兴的考试模式,它改变了传统的考试方式,可以客观、准确地评估人在某个知识领域的能力和水平,极大的提高考试效率,将考试这样一项浩大的工程简单化、模式化、透明化。同传统意义上的考试相比,无纸化考试系统是传统考试和考场的延伸,它可以利用网络的无限广阔空间,随时随地的让学生进行练习、测试和考试,加上数据库技术的利用,大大简化了传统考试的过程,提高了考试和评价质量。本系统基于C/S,实现的目标是轻量级,简单,可靠,以下是相关流程:(1)首先教师和管理员的界面是不一样的,管理员除了具有教师的权限外,还具有管理权限,考试前,教师需要准备好试卷,一种是以前自己出的或其它教师出的题或将以前的试卷修改

7、成新的试卷,一种是利用向导制作试卷,由于直接在服务器上操作,不需要管理员的干涉。(2)考试中,考生通过计算机连接到考试服务器上,教师在服务器端发放试卷,试卷以独立文件的形式传回学生机,考试过程中所有考生的答案以独立文件的形式暂存在本地机,等提交试卷后再传回服务器,在网络断开时拷贝至服务。(3)考试结束后,由计算机自动阅卷结合教师在服务器阅卷,由教师查询。1.2课题研究的内容本课题使用VC/MFC技术,运用软件工程的思想,和模块化设计思想来进行开发,分为用户界面、数据处理和数据存储读取。用户界面由MFC中模板完成,简单容易维护,数据处理也依赖于MFC消息机制和数据处理机制加上C+本身强大的能力,

8、数据文件存储也由MFC提供了处理方式,本系统具有试卷生成、试题管理、考试、成绩查询、用户管理和阅卷六个子系统组成。客户端只供考生登录,服务器端供教师和管理员登录。网上考试系统要实现下面的功能:系统服务器端分管理员和教师,客户端仅供考试使用。教师登录后可以创建新试卷,系统提供了一个向导,帮助教师也手动添加试题,非常方便,若完成后觉得需要改动,也可以修改,考试模拟功能,学生登录,发放试卷,答题,考试实时状态,答卷自动保存和传输。教师可随时阅卷,阅卷时,客观题直接由系统批改,主观题由老师定夺。1.3课题研究的意义在计算机技术和网络技术日益发展成熟,并逐步渗到社会生活各个领域的今天,各行各业都发生了深

9、刻的变革,计算机技术和网络技术已经被广泛地用于各行各业,学校也不例外,传统的考试方式也面临着重大的变革,而利用网络考试系统进行考试则是一种先进的考试方式,它有很多传统的考试方式所不具有的优越性。传统的考试方式下,多数学校的考试的工作流程是教师出题、印制试卷,学生考试,教师圆卷、统计成绩与评估、试卷分析等,其中制卷、阅卷、统计成绩的工作量非常大,而且也特别容易出错。尤其是随着高校学生的扩招,考生数量大幅度增加,阅卷和成绩统计的工作将变得更加的烦琐。利用网络考试系统进行考试则不再需要印刷试卷,可以节省大量的人力、物力和财力;课程考试题目在考前输入计算机,建成试题库,利用网络考试系统对试题库进行科学

10、的管理,为教师题目的保存、分类和检索提供了便利,也为编制试卷提供了高效率和低成本的手段:考试试卷由试题库中的信息按照教师制定的组卷策略自动生成,提高了出卷的效率,并避免了考试前试题信息的泄露;考试系统可以对历次考试的结果进行统计分析,教师可以依据分析结果,根据实际情况,调整、更新试题,增强试题库的生命力。使试题库能够更加准确的反映要考核的内容,增强出题的科学性和合理性:采用标准化的客观型试题进行考试,网络考试系统可以直接对试卷进行评分,就不需要人工阅卷,从而不但可以大量减轻任课教师烦琐的阅卷工作,还提高了阅卷的效率和准确度,避免了人工判卷时经常出现的错判、漏判和分数计算错误等情况,使考试过程更

11、加规范化;考试后每个题目的分数存储在数据库中,利用数据库能方便地对数据进行统计、汇总、排序等操作,就不再需要教师做毫无意义的统分工作了,教师也能从中了解考试的情况;考试试卷及考试成绩保存在数据库中,为考生查询成绩提供了方便,也增加了考试的公开性与透明度。由此可见,设计并开发一个功能完善的网络考试系统是非常有意义的。2 系统的理论基础及相关技术2.1可行性分析2.1.1技术可行性(1)考试系统多年来主要的困扰是对试题多样性的处理,但随着软件技术的发展,这个问题已经得到了彻底解决。本系统中能够处理的题型有:单选题、多选题、判断题、填空题、简答题和论述题等,在本系统中简答题和论述题将统一为主观题,其

12、它为客观题,客观题采用计算机自动评分,这也是该系统与传统考试相比,所具有的一个优越性。这些题型涵盖了大部分科目的考试题型,能满足考试的科学性和合理性要求。(2)随着硬件技术的发展,试题库存贮数据量大和处理速度慢等因素已不再是主要考虑的问题。本系统采用Microsoft SQL Server2000数据库,能提供超大型系统所需的数据库服务。(3)现在高校学生普遍具备了使用微机的基本技能,学生在键盘、鼠标操作、汉字录入方面都不存在问题,且网络考试系统对计算机操作水平要求极低,考生使用计算机答卷是完全可行的。2.1.2经济可行性传统考试组织起来比较复杂,其工作流程包括:教师出题、制卷、分配考场、考试

13、、阅卷、成绩统计、发成绩通知单等多个环节,这些环节需要耗费大量的人力、物力和财力。而利用网络考试和管理系统组织考试,无需制卷、成绩统计和发成绩通知单等过程,可以节约大量的人力、物力和财力。因此,使用网络考试和管理系统有显著的经济和社会效益。2.1.3社会可行性随着教学体制的改革,考试制度也将随之变革,采用无纸化的网上考试是今后考试的发展趋势。现在,许多高校对于开发和应用网络考试系统给予了极大的重视,许多学校都有相应的科研立项。因此,网络考试系统有着十分广阔的市场前景。2.2系统的主要技术措施(1)技术路线。按照软件工程开发设计思路,分步骤进行需求分析、整体设计、详细设计、编码测试,最后验收通过

14、。(2)技术环境。开发环境为微软公司的VS,数据库选用Microsoft SQL Server2000,它是基于客户机服务器模式。2.3VS及MFC简介2.3.1VC+.net简介VC+是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用C+的一个开发平台,VC+是Windows平台上的C+编程环境,VC作为一个主流的开发平台一直深受编程爱好者的喜爱,VC+应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,VC基于C,C+语言,主要

15、由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 最大缺点是开发效率不高。2.3.2MFC简介MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎,VC+是Windows下开发人员使用的专业C+ SDK(SDK,Standard Software Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC+血肉相连的部分(注意C+和VC+的区别:C+是一种程

16、序设计语言,是一种大家都承认的软件编制的通用规范,而VC+只是一个编译器,或者说是一种编译器+源程序编辑器的IDE,WS,Platform,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC+集成的VCL一样是一个非外挂式的软件包,类库,只不过MF

17、C类是微软为VC+专配的本系统。本系统采用Visual Studio 开发环境进行开发。2.3.3MFC的特点与功能MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库,我们知道,虽然我们要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时我们只要简单地调用已有对象的方法就可以了。我们还可以利用面向对象技术中很重要的“继承”方法从类库中的

18、已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,你也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。正是由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。最后要指出的是MFC类库在提供的对象的各种属性和方法都是经过谨慎的编写和严格的测试,可靠性很高,这就保证了使用M

19、FC类库不会影响程序的可靠性和正确性。2.3.4VC数据库访问技术VC提供了以下多种方法访问数据库:(1)使用ODBC技术;(2)使用OLEDB技术;(3)使用数据绑定控件技术;(4)使用DAO技术。由于目前需要和数据量对数据处理的能力要求并不高,因此选择最常用的ODBC方式这种方式主要用到两个类Cdatabase类,它继承自类Cobject类,Cdatabase对象表示到数据源的连接,通过它可以操作数据源,数据源是位于一些数据库管理系统的的数据指定实例,第二类是Crecordset类,它也派生自Cobject类,一个Crecordset类对象代表一个从数据源检索到的记录集,被典型应用为两种方

20、式:动态记录集或者快照集。2.3.5ODBC简介ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC,一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是

21、说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库一个完整的ODBC由下列几个部件组成:(1)应用程序(Application)。(2)ODBC管理器(Administrator)。该程序位于Windows控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。(3)驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32。DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部

22、件。(4)ODBC API。(5)ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。2.3.6 Socket套接字及文件传输本系统用到的是VC的CAsyncSocket类, 该类在非常低的级别上封装 Windows Sockets API,它的使用方法如下:(1)创建套接字创建一个 CAsyncSocket 对象并使用该对象创建基础 SOCKET 句柄。CAsyncSocket sock;sock。Create( ); / Use the default parameters 或 CAsyncSoc

23、ket* pSocket = new CAsyncSocket;int nPort = 27;pSocket-> Create( nPort, SOCK_DGRAM );(2)侦听与接受连接 如果套接字是客户端,则使用 CAsyncSocket:Connect 将此套接字对象连接到服务器套接字。如果套接字是服务器,则将套接字设置为开始侦听(使用 CAsyncSocket:Listen)来自客户端的连接尝试。接收到连接请求时,用 CAsyncSocket:Accept 接受该请求。(3)发送和接收数据使用Send(const void* lpBuf,int nBufLen,int nFla

24、gs = 0 )或int SendTo(const void* lpBuf,int nBufLen,UINT nHostPort,LPCTSTR lpszHostAddress = NULL,int nFlags = 0发送数据,使用int Receive(void* lpBuf,int nBufLen,int nFlags = 0 )或int ReceiveFrom(void* lpBuf,int nBufLen,CString& rSocketAddress,UINT& rSocketPort,int nFlags = 0)接收数据(4)关闭套接字void Close( )

25、;3 系统的需求分析3.1系统需求分析采用软件工程的思想对考试系统进行需求分析,分析系统综合要求和系统数据要求。在系统综合要求中分析功能、性能、运行三个方面的要求;在系统数据要求中对考试系统主要功能进行分析。在需求分析的基础上进行系统总体设计。3.1.1系统功能需求无纸化考试系统的基本功能是利用计算机和网络来组织考试。考试前,教师建立相关考试科目的题库;考试时,教师从题库中选择试卷发放给学生用的客户端,学生在线答题;考试后,学生可以通过查询成绩,系统能对考试情况进行统计与分析,对试卷的难度和信度进行评估。为了实现这一目标,使本系统能够充分实现考试功能,顺利地完成每一次考试的流程,本系统至少应该

26、具有以下功能:(1)系统能够对学生、教师、管理员的基本信息进行管理,以便在登录网络考试系统时,验证用户的身份和为考生形成完整的考试信息档案;(2)试题库中应包含多种类型的题型,如单选题、多选题、判断题、填空题、简答题和论述题等。试卷能够共享,也能私有,能修改,删除;(3)考生答题没有顺序限制,可以随便做任意一个题,交卷之前可对答案进行修改;(4)考试完后,系统能够自动对考生的客观题部分进行评分,主观题部分则由阅卷教师阅卷后将其成绩手工输入,最后计算机生成每个考生的成绩,并将结果入考生成绩数据库。(5)系统能够实现对考生的考试成绩进行统计、对成绩和试卷进行查询的功能。3.1.2系统性能需求对于网

27、上考试系统来说,可扩展性、安全性、可管理性是几个关键因素:(1)可管理性。软件的可管理性是指可以方便地对系统进行管理,确保系统的正常运行管理和运作,这是作为一个软件最基本的特征,主要涉及以下几个因素:维护系统服务及其服务正常工作所需的基础结构、工具以及管理员和技术人员。无纸化考试系统要求所有操作除身份验证发送试卷发送答卷外是独立的,不受网络影响(2)安全性。安全性是指系统能够保护数据或基础结构避免受恶意攻击或者盗用。安全性是通过为信息的机密性、完整性和可靠性提供充分的保护来预防风险。保障系统安全是任何系统成功的基本要素。对于网上考试系统来说,题库、试卷、成绩三者的安全性是必需要加以考虑的。(3

28、)可扩展性。可扩展性是指系统能保证可持续增长以满足用户的需求和业务复杂性要求。系统为动态变化的模型,它们通常开始很小,但是随着需求的增长而呈指数级增长。这种增长非常迅速,不仅表现在支持的用户数量上,而且表现在提供的用户服务的复杂性和集成性方面。对于考试系统而言,这种扩展性就显得尤为重要,因为考试系统功能的完善是一个渐进的过程,要根据学生的要求和技术的发展而不断改进。3.1.3系统运行需求无纸化考试系统应用环境的整体结构,基于C/S结构构建,在局域网内通过客户端器就能登录考试。目前,整个考试系统服务器将在机房单的管理机上安装而每台学生用机上安装客户端,客户端可以登录更改服务器地址,从而实现局域网

29、等同外网。3.2系统开发环境3.2.1操作系统平台本系统选用微软的Microsoft Windows2000 Server(Windows2000服务器版)作为网络服务器操作系统平台,它具有稳定性、可靠性、安全性和可扩充性等优点,是一种同时具有改进性和创新性的产品。操作系统的安全是Web最基本的,也是最重要的安全保证。系统要从安装、配置和管理三个方面入手,对Windows2000 Server进行安全设计:(1)安装:在安装安全方面注意采用NTFS文件分区格式以及安装微软官方公布的最新Server Packs和补丁。(2)配置:在配置方面要遵循。最少的服务+最小的权限=最大的安全的原则,注意N

30、TFS权限的设置,及时为系统管理员帐号更名,严格限制服务,关闭不必要的端口,最好能配置安全审核策略。(3)管理:在安全管理方面注意记录服务器安装配置情况和更改日志、留意Microsoft最新安全公告、及时打补丁、根据情况的变化增加安全设置、经常查看安全审核日志、备份系统配置信息和其它重要数据等,并给服务器安装防病毒软件和防火墙系统。3.2.2开发工具本系统采用VS+SQLserver 2000。VS是window平台下软件开发的利器,几乎可开发各种应用程序,VS2005是微软在VS6之后的又一版本,增加了.net框架和c#和更多集成功能,当然我们将用到的只是VS2005。SQL Server

31、是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。SQL Server 2000,是Microsoft 公司推出的SQL Server 数据库管理系统的新版本。该版

32、本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。可跨越从运行Microsoft Windows 98 的膝上型电脑,到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。4 系统设计方案4.1系统的体系结构4.1.1常见的体系结构(1)终端主机体系结构这是一种早期处理数据采用的模式,这种结构使得终端用户尽可能地共享资源,终端所需做的是输入命令,显示结果。有关的一切数据处理都交给了主机去完成,这要求主机具有十分高的性能,并且随着信息量的增加而不断更新。这种模式中,服务器存

33、储所有数据。进行所有运算,优点是资源得到充分的共享,缺点是用户界面单一,主机负载过大。(2)客户机服务器(C/S)体系结构这种结构的出现最初是为了缓解前种模式中主机繁重的工作负担,将原来功能很强大的主机退化成数据库服务器,同时转移原来主机的一部分工作到客户机上,显然这就增加了客户机的要求。为了运用C/S这样的模式,就需要为客户端和服务器端分别安装相应的运用程序,即所谓的两层结构。为了适应一些大型的结构复杂的系统应用,出现了三层结构的C/S结构模式,它把两层结构中服务器部分和客户端部分的应用单独划出来,从而满足大型应用系统的要求。此模式中,客户端应用程序常以图形用户界面(GUI)表现,易于生成和

34、修改,界面友好,应用服务器和数据库服务器位于不同的主机上,可扩充性好,能够适应客户机数目的增加和应用处理负荷的变动,缺点在于每台机上需要安装客户端,但这样一种模式同样可满足移植性,即在任何小型网络中都可进行无纸化考试,服务器客户端随时可以重新建立。(3)浏览器/服务器(B/S)体系结构在此种模式中,客户端的标准配置是浏览器,如IE、Netscape等;Web服务器成为应用处理的标准配置,数据处理仍然由数据库服务器(DB Serve)完成。即为三层分布结构,有利于共享,但对网络依赖性强。充分利用现有的浏览器软件,无需开发数据库前端。通过Web浏览器访问数据库,不需要开发客户端程序,所有应用都是通

35、过浏览器来实现的。界面统一,易用,不用培训。所有的Web服务器与浏览器都遵循同样的标准,基于浏览器共享成为可能。用B/S方式时,集中开发人员在服务器端进行开发、调试、维护,开发人员只需要面对服务器端的应用程序,无需开发客户端程序,减少了工作量。又因为客户与服务器两部分功能划分比较清楚,简化了程序设计的逻辑。服务器上所有的应用程序均可通过web浏览器在客户机上执行,可以充分发挥开发人员的群体优势,应用软件的维护也相对简单。最大优点是跨平台支持,几乎在各种操作系统上都有Web浏览器可供使用。为一个Web服务器书写的HTML文档,可以被所有平台上的浏览器打开,实现了应用软件的跨平台操作,而且不需修改

36、任何程序,缺点在于完全依赖网络,没有网络就无法工作,无法对考试时行实时监控,可控性差,使用也很显然容易造成试题泄漏,对重要考试显然是不可取的。4.1.2本系统采用的体系结构根据以上分析,本系统采用C/S结构模式,目标是实现一个轻量级的系统,大部分功能将在服务器端实现,客户端惟一的功能是接收试卷,答题,交卷,其它一切工作由服务器完成地简化了用户端的工作。服务器由应用程序服务器和数据库服务器组成,应用程序服务器与数据库进行交互。本系统的体系结构见图1。考试系统服务器数据库服务器客户端1客户端2客户端3客户端4图1系统体系结构图客户只与服务器进行网络通信,而服务既与客户端通信又与数据库进行访问。4.

37、2功能模块设计按照需求分析和功能要求,把整个系统分为六个子系统:题库管理,试卷生成,在线考试,成绩查询,用户管理,阅卷。4.2.1题库管理功能该子系统是对试题库资源进行维护、管理和修改的应用平台,它主要包括:(1)以列表的形式简要地显示所有试卷信息;(2)修改试卷,包括对每个题目内容答案和分值等的修改;(3)使用他人创建的试卷。4.2.2试卷生成功能该子系统实现对考试相关新闻信息的总体管理,主要包括:(1)选择题型和题目数及初步确定分值 ;(2)具体设置每个题的分值,题目,答案;(3)设置试卷类型和密码及考试时间,保存。4.2.3在线考试功能该子系统实现考生的网上考试过程,主要包括:(1)考生

38、登录:该子系统接受考生输入的个人身份信息,进行验证,允许合法考生进入考试系统,进行考试;(2)计时答卷:服务器发送开始指令后,客户端系统计时开始,考生进行答卷;(3)试卷提交:包括考生在规定时间内主动提交试卷和考试时间己到,系统强迫提交试卷。4.2.4成绩查询功能该子系统实现考生的管理工作,主要包括:(1)以学号查询考生成绩 ;(2)以班级为单位查询成绩,可打印成绩 。4.2.5用户管理功能该子系统实现用户的总体管理,主要包括:(1)教师信息管理:教师的增加,删除,修改。(2)考生信息管理:考生的信息增加,删除,修改。4.2.6阅卷功能(1)选择答卷,自动批改客观题。(2)由老师修改主观题,最

39、后统计算总分,存入数据库。4.3权限设计在本系统中,有三种用户存在,管理员、教师和考生,三种用户拥有不同的权限,权利分开,互不干涉。4.3.1教师权限 教师权限试题管理生成试卷阅卷及通知成绩 图2教师权限图4.3.2管理员权限管理员权限教师权限设置考生信息设置系统的安全维护图3管理员权限图4.4系统数据库设计数据库系统的设计对于整个系统的优化实现是十分重要的,尤其对于网络考试系统,在出题、提交时都必须考虑系统的响应时间,以最快的速度同数据库链接,并读取符合条件的记录反馈到用户的相关界面中。本系统采用Microsoft SQL Server2000数据库。SQL Serwr2000关系数据库引擎

40、支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发使用修改数据库的用户的开销减到最小。SQLServer2000分布式查询使您得以引用来自不同数据源的数据,就好像这些数据是SQL Server2000数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使得可以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发给服务器。Microsoft SQL Server2000能提供超大型系统所需的数据库服务。大型服务器可能有成千上万的用户同时连接到SQL

41、Server2000实例。SQLServer2000为这些环境提供了全面的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同时更新相同的数据。SQLServer2000还在多个用户之间有效地分配可用资源,比如内存、网络带宽和磁盘I/O。超大型Internet站点可将其数据分开存放在多台服务器上,从而使处理负荷分散到多台计算机上,使站点能为成千上万的并发用户提供服务。可以在一台计算机上运行多个SQL Server2000实例。例如。一个为其它许多组织提供数据库服务的组织可为每个客户组织单独运行一个SQL Server2000实例,而全部实例可集中在一台计算机上。这样,既隔开了每个客户

42、组织的数据,同时又使服务组织只需管理一台服务器计算机从而减少了费用。4.4.1数据库概念结构设计根据对数据的分析,可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据系统功能,所需要的实体主要有:教师、考试题目、学生。各实体之间最主要的ER关系如图4所示。 用户名密码操作员图4 (a)学生信息表姓名年龄性别学号班级编号专业编号学院编号 图4(b) 试卷信息表创建日期试卷编号使用次数命题人科目成绩信息表选择题分试卷编号填空题分数判断题分数学号创建日期图4(c) 图4(d)4.4.2数据库逻辑结构设计数据库的逻辑结构设计是将数据的概念结构转化为SQL Ser

43、ver2000数据库系统的实际模型,得到数据库的逻辑结构后,就可以在SQLServer2000数据库系统中建立表结构。根据系统功能设计的要求以及功能模块的划分,对于在线考试系统的数据库,4.4.3使用ODBC访问数据库前的准备注册数据源,使用控制面板>管理工具>数据源ODBC,利用向导来创建。5 系统主要模块的设计与实现5.1系统总体结构及服务器端和客户端说明5.1.1考试系统的组成考试系统总体结构图如图5所示。考试系统服务器客户端考卷管理试卷向导用户管理考试系统阅卷系统答卷系统5.1.2服务器端说明(1)登录系统初始化显示登录对话框点击登录,查询数据库进行密码匹配,若成功根据权限

44、显示主界面,失败则显示还有两次重试机会。 (2)出题系统登录系统选择新建试卷,运行试卷制作向导,按要求填充必要内容保存试卷。 (3)在线考试登录系统选择开始考试,等客户端的连接所有考生从客户端登录服务器端发送试卷确认所有学生收到试卷点击开始,所有客户端开始记时考试结束,客户端自动交卷 (4)成绩查询登录系统选择成绩查询选择查询方式输入关键显示查询结果(5)用户管理root登录系统选择用户管理当需要增加用户时输入注册所需的信息,点击注册当需要注销用户时,输入必须信息,点击注册(6)阅卷系统登录系统系统初始化,读取需要批改的答卷显示在列表中选择要批改的答卷,自动对客观题评分,辅助进行主观题评分阅卷

45、完毕,将数据信息存入数据库5.1.3 客户端说明学生以合法身份从客户端登陆,连接服务器后等待老师在客户端发放试卷,然后进行答题。5.2题库管理的实现5.2.1功能描述题库管理的主要功能,列出当前所有试卷,供老师选择使用,程序内部由一个链表来维护,这样的方便之处在于当用户使用他的建立的试卷时,只要输入密码就能使用,此时,将很方便地将试卷信息添加到链表中随时可进行读写操作。5.2.2程序流程图程序流程图如6所示图6 题库管理流程图初始化:在数据库中搜索所有试卷及由当前用户命题的试卷,存储为链表。5.3试卷生成功能的实现5.3.1功能描述试卷生成功能最主要的部分是一个向导,这部分完全可以作为一个独立

46、的部分开发,本系统的向导分为三步:(1)询问题型和题量及分值。(2)具体的题目内容,可修改默认的分值。(3)设置试卷属性如分值,时间和密码等。5.3.2试卷生成程序流程图流程图如图7所示:图7 试卷生成流程图题型及数目确定了,程序内部的指针指向的空间大小也就确定了,题目填充后的数据将被指针所指向的内存中,在保存点击后,所有数据存入文件。5.3.3部分程序说明public class Server implements Runnable private Connection con = null;private Statement sql = null;private ResultSet rs

47、= null;private ServerSocket ss = null;boolean started = false;public void run() try con = DriverManager.getConnection("jdbc:odbc:PES DataBase","","");sql = con.createStatement();ss = new ServerSocket(8866);started = true; catch (BindException e) System.out.println("

48、;已有一个服务端运行并占用了端口,服务端关闭!");System.exit(0); catch (IOException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); try while(started) Socket s = ss.accept();Client c = new Client(s);System.out.println("一个客户端连入!");new Thread(c).start(); catch (IOException e) e.printStackT

49、race(); finally try if(ss != null)ss.close(); catch (IOException e) e.printStackTrace();class Client implements Runnable private Object obj;private String examID;private String name;private String type;private ExamQuestion examQuestions;private ExamInformation examInformation;private Socket s = null

50、;private ObjectInputStream ois = null;private ObjectOutputStream oos = null;private boolean bConnect = false;Client(Socket s) this.s = s;public void run() try ois = new ObjectInputStream(s.getInputStream();oos = new ObjectOutputStream(s.getOutputStream();bConnect = true; catch (IOException e) e.prin

51、tStackTrace();try while(bConnect) obj = ois.readObject();String str = obj.toString();System.out.println(str);if(!str.equals("ExamInformation") examID = str;rs = sql.executeQuery("select * from driverInfo where examID = '" +examID + "'");rs.last();if(rs.getRow()

52、= 0) oos.writeObject("error");else name = rs.getString(2);type = "货物运输"rs = sql.executeQuery("select top 50 * from examQuestions where type = '货物运输' order by newid()");for(int i=0; i<50; i+) rs.next();examQuestionsi = new ExamQuestion();examQuestionsi.setQues

53、tion(rs.getString(1);examQuestionsi.setAnswerA(rs.getString(2);examQuestionsi.setAnswerB(rs.getString(3);examQuestionsi.setAnswerC(rs.getString(4);examQuestionsi.setNumber(i+1 + "");examQuestionsi.setRightAnswer(rs.getString(5);examInformation = new ExamInformation(examID, name, type, exam

54、Questions);oos.writeObject(examInformation); catch (EOFException e) System.out.println("客户端断开!"); catch (Exception e) e.printStackTrace(); finally try if(ois != null) ois.close();if(oos != null)oos.close();if(s != null) s.close();s = null; catch (IOException e) e.printStackTrace();5.4在线考试的实现5.4.1考生登录模块考生登录比较简单,运行后首先与服务器端建立连接,登录成功后输入用户名密码,程序将此数据发送至服务器端,服务器端到数据库中验证,正确则返回正确口令,否则返回错误口令,则当前客户端成未准备状态。public class ExamLoginDialog e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论