在线英语考试系统的设计与实现_第1页
在线英语考试系统的设计与实现_第2页
在线英语考试系统的设计与实现_第3页
在线英语考试系统的设计与实现_第4页
在线英语考试系统的设计与实现_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、PAGE PAGE 43 毕 业 设 计(论 文) 题目:在线英语考试系统的设计与实现子题: 专 业:计算机 指导教师: 学生姓名: 班级-学号: 题目:在线英语考试系统的设计与实现子题: 设计(论文)完成日期 学 生 姓 名:专 业:班 级学 号:指 导 教 师:评 阅 人:年 月 日摘 要随着计算机技术的迅猛发展,学校教学和管理的信息化发展也有长足的进步,这就要求各个环节都均衡发展,从软硬件双方面把学校建设成一流的信息管理、教育教学的平台。本文设计开发的在线英语考试系统也是其中重要的一个方面。该系统本着减轻教师工作负担、提高工作效率、优化学生考试的流程,增强参加考试学生的身份识别,比传统的

2、考试模式节省人力财力和时间。本系统主要有用户有效身份登录、新用户注册、用户管理、在线考试、管理员登录及管理等功能。此外,本论文详细介绍系统开发所用的主要技术,如:B/S模式,Struts,JSP等。还介绍了本软件的系统结构,系统各个功能模块的详细设计。另外针对网页面中文乱码等问题进行了解决。最后对该考试系统做了总结,指出了系统的采用技术和经验,同时指出了系统存在的不足,并对今后进一步完善和研究工作进行了展望。关键词:JSP; SQL Server 2000; 在线考试; B/S模式; StrutsAbstractWith the rapid development of computer te

3、chnology, school teaching and management of information technology development has made great progress, which requires a balanced development of all aspects, from hardware and software both sides School put information into a first-class management, education and teaching platform. In this paper, de

4、sign and development of Online English Language Testing system is one of important aspect. The system is based on reducing the workload of teachers, improve work efficiency, and optimize the flow of students in examinations, and enhance the students take part in the examination of identity recogniti

5、on, than the traditional mode of examination to save human and financial resources and time.The system is effective as users logged, the new user registration, user management, online examinations, Administrators login and management, and other functions. In addition, it introduced some technology o

6、f developing the system, such as B/S mode ,Struts,JSP etc. It introduced a software system structure and function of each module system for the detailed design. Also the Chinese garbled pages of issues are resolved. The system is a simple conclusion .The system of innovation pointed out the deficien

7、cies of the system and will improve the research work and the prospect.Keywords: JSP; SQL Server 2000; Online Examination; B/S mode; Struts目 录 TOC o 1-2 h z u HYPERLINK l _Toc263534509 第一章 引言 PAGEREF _Toc263534509 h 1 HYPERLINK l _Toc263534510 1.1选题的意义 PAGEREF _Toc263534510 h 1 HYPERLINK l _Toc26353

8、4511 1.2 该选题发展动态 PAGEREF _Toc263534511 h 1 HYPERLINK l _Toc263534512 1.3项目要解决的问题 PAGEREF _Toc263534512 h 2 HYPERLINK l _Toc263534513 第二章 系统分析 PAGEREF _Toc263534513 h 3 HYPERLINK l _Toc263534514 2.1系统的需求 PAGEREF _Toc263534514 h 3 HYPERLINK l _Toc263534515 2.2系统可行性 PAGEREF _Toc263534515 h 3 HYPERLINK

9、l _Toc263534516 2.3主要技术介绍 PAGEREF _Toc263534516 h 4 HYPERLINK l _Toc263534517 第三章 系统设计 PAGEREF _Toc263534517 h 10 HYPERLINK l _Toc263534518 3.1系统目标 PAGEREF _Toc263534518 h 10 HYPERLINK l _Toc263534519 3.2开发环境 PAGEREF _Toc263534519 h 10 HYPERLINK l _Toc263534520 3.3系统功能结构 PAGEREF _Toc263534520 h 10 H

10、YPERLINK l _Toc263534521 3.4用例模型 PAGEREF _Toc263534521 h 13 HYPERLINK l _Toc263534522 3.5概念模型 PAGEREF _Toc263534522 h 14 HYPERLINK l _Toc263534523 3.6系统工作流程 PAGEREF _Toc263534523 h 15 HYPERLINK l _Toc263534524 第四章 数据库设计 PAGEREF _Toc263534524 h 16 HYPERLINK l _Toc263534525 4.1数据库分析 PAGEREF _Toc263534

11、525 h 16 HYPERLINK l _Toc263534526 4.2数据库逻辑结构 PAGEREF _Toc263534526 h 16 HYPERLINK l _Toc263534527 第五章 系统实现 PAGEREF _Toc263534527 h 19 HYPERLINK l _Toc263534528 5.1公共类设计 PAGEREF _Toc263534528 h 19 HYPERLINK l _Toc263534529 5.2前台首页设计 PAGEREF _Toc263534529 h 23 HYPERLINK l _Toc263534530 5.3考生信息模块设计 PA

12、GEREF _Toc263534530 h 25 HYPERLINK l _Toc263534531 5.4在线考试模块的设计 PAGEREF _Toc263534531 h 27 HYPERLINK l _Toc263534532 5.5后台首页设计 PAGEREF _Toc263534532 h 30 HYPERLINK l _Toc263534533 5.6题目管理模块的设计 PAGEREF _Toc263534533 h 32 HYPERLINK l _Toc263534534 5.7开发技巧与难点分析 PAGEREF _Toc263534534 h 33 HYPERLINK l _T

13、oc263534535 5.8系统的单元测试 PAGEREF _Toc263534535 h 36 HYPERLINK l _Toc263534536 第六章 总结 PAGEREF _Toc263534536 h 39 HYPERLINK l _Toc263534537 参考文献 PAGEREF _Toc263534537 h 40 HYPERLINK l _Toc263534538 致 谢 PAGEREF _Toc263534538 h 41第一章 引言1.1选题的意义学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷、考生考试、人工阅卷、成

14、绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证,客观!更加激发学生的学习兴趣。基于Web数据库在线考试管理系统与传统考试比较,主要具有以下优点:可以实现教考分离,为远程教育提供技术支持;提高批卷的公正性;可以减轻教师的劳动强

15、度;可以实现数据共享,而且操作方便,成本低等。1.2 该选题发展动态世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,作为民族发展的重要推动力。在国外,美国政府提出了“教育技术规划”,指出到21世纪初让全美国的每间教室和每个图书馆都将联上信息高速公路,让每个孩子都能够享受“21世纪教师”网络服务。澳大利亚国家公共资源管理局已于1995年4月建立”澳大利亚教育网”,并联通Internet,该网络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小学。在1995年底,国外开始出现支持网上教学的系统

16、和平台。美国的NTU、英国的OPEN COLLEGE都是十分典型的网络教育范例。网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。特别是Internet业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成熟。在国内,普遍地看,绝大多数教育的考试还停留在传统考试方式。在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评定。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样的工作将是一件十分烦琐和非常容易出错的事情。但

17、是国内对互联网的真正应用还局限于网上报名和网上成绩查询等基础阶段,还没有真正形成上网考试的规模。而在国外一些国家,网上提交作业和网上考试已经相当普及了。所以说传统的考试方式已经不能适应现代考试的需要。到1998年后,随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台,作为网络课程重要组成部分的网络考试系统也相继问世,例如哈尔滨工业大学开通远程教育网络,还有北大,清华等许多大学开通远程教育网络。1.3项目要解决的问题(1)本系统应该能够使考生不需要集中到一个地点,而是在任何地方进行身份确认后,都能进行考试。(2)本系统应该提供教师出题及题目管理和管理考生信息等基本功能,同时考生的成绩应该

18、被保存下来,供教师进行分析统计和查看。(3)本系统应该提供考生找回密码等人性化功能,否则如果考生忘记密码,将无法参加考试。第二章 系统分析2.1系统的需求建立在线英语考试系统的目的,就是采用以计算机为主的现代化设备完成考试过程中各种信息的添加、修改、删除、查询和使用,进行一般考试业务的管理,从而提高教育部门的工作效率。本文主要针对中、小院校的考试部门进行研究,所开发出的系统功能必须实用,并且操作简便,主要表现在以下两个方面:2.1.1功能(1)系统要求用户必须输入正确的用户名和密码才能进入系统,并且采用了权限登录,把用户分为管理员和学生。(2)在系统中的管理员管理模块,主要实现的是功能有添加、

19、删除、查询试题和考生信息等功能。(3)在系统中的考生模块,主要实现的是功能有考生考试、修改个人资料、查询成绩等功能。 2.1.2界面网上在线考试系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户考试等功能操作提供方便。2.2系统可行性2.2.1 技术可行性基于浏览器的在线考试系统,关键技术在于网页的动态显示和管理,即从数据库中取得相应的试卷数据,并收集用户输入数据,能够对考试过程进行控制。本系统采用JSP、Struts框架、Ajax、SQL Server 2000等技术和工具开发,管理端和考生界面全部采用B/S模式构建,系统的部署,应用,维护更加方便。同时,大型数据库

20、SQL Server 2000提供了数据库管理的能力,因此技术方案是成熟的和可行的。2.2.2 经济可行性本软件开发时间为三个月左右,开发所需硬件软件设施目前大多数PC机系统能够承担,并且,当前大多数大学生都拥有高性能PC机,因此开发费用不高。该软件系统的安装、部署、运行和维护,也都不会给学生增加太高的费用,所以该软件的开发在经济上是可行的。2.3主要技术介绍2.3.1 B/S模式系统采用B/S三层体系结构,即客户端浏览器、Web服务器和数据库(如图2.1所示)。所有程序和数据库都存放在服务器上,客户端仅需安装操作系统与浏览器即可。客户端运行浏览器,提供用户接口,负责产生用户的请求,并接受We

21、b服务器传递的Web页面数据,Web服务器接收请求,并将其转换为数据库服务器能识别的SQL语句,传递给数据库服务器,数据库服务器执行后将结果返回Web服务器,Web服务器将结果生成为浏览器可识别的格式返回到客户端的浏览器上。用户浏览器Web server图2.1 B/S系统结构SQL Server数据请求HTTP 请求返回HTML数据返回2.3.2 JSP技术JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入java程序

22、段(Script let)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行1。JSP技术使用Java编程语言编写类XML的tags和script lets,来封装产生动态网页的处理逻辑。网页还能通过tags和script lets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。当JSP容器接到Web用户的一个JSP文件请求时,它对JSP文件进行语法分析并生成JavaServlet源文件,然后对其编译。一般情

23、况下,Servlet源文件的生成和编译仅在初次调用JSP时发生。如果原始的JSP文件被更新,JSP容器将检测所做的更新,在执行它之前重新生成Servlet并进行编译。图2.2显示了JSP容器初次执行JSP的过程:浏览器JSP文件生成Servlet源代码经编译的Servlet类JSP容器图2.2 JSP容器初次执行JSP的过程尽管JSP在本质上就是Servlet,但两者的创建方式不一样。Servlet完全由Java程序代码构成,擅长于流程和事务处理。JSP由HTML代码和JSP标签构成,可以方便地编写动态网页。在Struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。2

24、.3.3 Struts框架Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。Struts跟Tomcat等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。 除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分

25、之间的联系,这对于后期的维护有着莫大的好处2。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。Struts实质上就是在JSP Model2的基础上实现的一个MVC框架,在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionSe rvlet和Action来实现。视图由一组JSP文件构成。图2.3形象地描述了Struts实现的MVC框架: 浏览器(模型)JavaBeanEJBWeb服务器(控制器)ActionServlet(视图)JSPstruts-config.xmlActionActionActionServlet/JSP容器图2.3 St

26、ruts实现的MVC框架 视图视图就是一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或Struts标签。此外,通常在Struts框架中的ActionForm Bean也划分到视图模块中。Actio nForm Bean也是一种JavaBean,Struts框架利用它进行视图和控制器之间表单数据的传递。Struts框架把用户输入的表单数据保在ActionForm Bean中,把它传递给控制器,控制器可以对ActionForm Bean中的数据进行修改,JSP文件使用Struts标签读取修改后的信息,重新设置HTML表单。视图与控制器之间表

27、单的传递过程如图2.4所示:图2.4 视图和控制器传递视图组件控制器组件ActionForm Bean(包含用户输入数据)ActionForm Bean(包含修改后数据)模型模型表示应用程序的状态和业务逻辑。对于大型应用。业务逻辑通常用JavaBean或EJB组件来实现。控制器控制器由ActionServlet类和Action类来实现。ActionServlet类是Struts框架中的核心组件。它主要负责接收HTTP请求信息,根据配置文件Struts-con fig.xml的配置信息。把请求转发给适当的Action对象。Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程

28、。对于小型简单的应用,Action类可以完成一些实际业务逻辑。 Struts的配置文件Struts-config.xml是Struts框架的核心配置文件,用户请求处理、转发、异常处理、插件配置等。用户请求路径和Action映射关系都存储在Struts-confi g.xml文件中。在该配置文件中,每一个Action的映射信息都通过一个元素来配置。2.3.4 Ajax技术Ajax是Asynchronous JavaScript and XML的缩写,意思是异步的JavaScript与XML。Ajax并不是一门新的语言或技术,它是JavaScript、XML、CSS、DOM等多种已有技术的组合,它

29、可以实现客户端的异步请求操作。这样可以实现在不需要刷新页面的情况下与服务器进行通信的效果3,从而减少了用户的等待时间。与传统的Web应用不同,Ajax在用户与服务器之间引入了一个中间媒介(Ajax引擎),从而消除了网络交互过程中的处理等待处理等待的缺点。使用Ajax的优点具体表现在以下方面:(1)减轻服务器的负担。Ajax的原则是“按需求获取数据”,这可以最大程度的减少冗余请求和相应服务器造成的负担。(2)可以把一部分以前由服务器负担的工作转移到客户端,利用客户端闲置的资源进行处理,减轻服务器和宽带的负担,节约空间和成本。(3)无刷新更新页面,从而使用户不用再像以前一样在服务器处理数据时,只是

30、在屏幕前焦急的等待。Ajax使用XMLHttpRequest对象发送请求并得到服务器响应,在不需要重新载入整个页面的情况下,就可以通过DOM及时地将更新的内容显示在页面上。(4)可以调用XML等外部数据,进一步促进页面显示和数据的分离。(5)基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。2.3.5 JDBC技术JDBCAPI用于连接Java应用程序与各种关系数据库。这使得人们在建立客户/服务器应用程序时,通常把Java作为编程语言,把任何一种浏览器作为应用程序的友好界面,把Internet作为网络主干,把有关的数据库作为数据库后端。以下是使用JDBC的优缺点。 优点如下: (1)J

31、DBCAPI与ODBC十分相似,有利于用户理解。 (2)JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致 力于应用程序中的关键地方。 (3)JDBC支持不同的关系数据库,使得程序的可移植性大大加强。 (4)用户可以使用JDBC-ODBC桥驱动器将JDBC函数调用转换为ODBC。 (5)JDBCAPI是面向对象的,可以让用户把常用的方法封装为一个类,以备 后用。 缺点如下: (1)使用JDBC,访问数据记录的速度会受到一定程度的影响。 (2)JDBC结构中包含了不同厂家的产品,这就给更改数据源带来了很大的 麻烦。2.3.7 SQL Server2000数据库SQL Server

32、是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。 SQL Server一直不断的更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出的版本,它在SOL Server 7.0的基础上又扩展了系统的许多性能4,比如:可靠性、安全性和易用性等,使其逐渐成为在线事务进程和数据仓库等最好的数据库平台之一,现在

33、还有更新的版本SQL Server 2005,但在本系统中考虑到编程人员的习惯等因素,还是使用SQL Server 2000。第三章 系统设计3.1系统目标根据前面所作的需求分析以及用户的需求可知,本系统属于中小型系统,在系统实施后,应达到以下目标:(1)具有空间性。用户可以在异地登录在线英语考试系统,而无需到指定地点进行考试。(2)操作简单方便,界面简洁美观。(3)系统提供考试时间倒计时功能,使考生了解考试的剩余时间。(4)随机抽取考试套题。(5)实现自动提交试卷的功能。当考试时间到达规定时间时,如果考生还未提交试卷,系统将自动交卷,以保证考试严肃、公正地进行。(6)系统自动阅卷,保证成绩真

34、实准确。(7)考生可以查询考试成绩。(8)系统运行稳定,安全可靠。3.2开发环境(1)操作系统:Windows XP(2)Web服务器:Tomcat 5.5(3)数据库:SQL Server 2000(4)JDK:JDK 1.6(5)开发工具:Myeclipse 6.0(6)开发语言:Java3.3系统功能结构根据在线英语考试系统的特点,可以将其分为前台和后台两个部分进行设计。对于前台部分可分为以下6个功能:(1) 考生注册:考生通过填写自己的姓名、性别和身份证号等信息注册成为网站的用户后,方可以进入系统进行考试。(2) 找回密码:考生如果忘了自己的注册密码,可以通过回答注册时设置的问题而找回

35、密码。(3) 在线考试:该功能是前台最主要的功能,考生首先要同意考试规则,方可以选择要考试的科目,考生准备好了即可答题,然后系统自动阅卷,并将成绩反馈给用户。(4) 查询成绩:考生可以通过该功能查询自己以前考过的科目的成绩。(5) 修改个人资料:考生通过该功能可以修改自己注册时填写的信息。(6) 退出系统:退出前台,回到登陆页面。前台功能结构图如图3.1所示:在线英语考试系统的前台考生注册找回密码在线考试成绩查询修改个人资料退出系统考试规则选择课程准备考试开始考试自动阅卷显示考试成绩图3.1前台功能结构图对于后台部分可分为以下7个功能:(1)管理员信息管理:主要包括查看管理员信息列表、添加管理

36、员、修改管理员和删除管理员。(2)考生信息管理:主要包括查看注册考生信息列表和删除已经注册的考生信息。(3)考生成绩查询:主要用于根据准考证号、考试课程或考试时间模糊查询考生成绩。(4)课程信息管理:主要包括查看课程列表、添加课程信息和删除课程信息。(5)套题信息管理:主要包括查看套题信息列表、添加套题信息、修改以及删除套题信息。(6)题目信息管理:主要包括查看考试题目列表、添加考试题目、修改以及删除考试题目。(7)退出后台管理:主要用于退出后台。后台功能结构图如图3.2所示:在线英语考试系统的后台管理员信息管理考生信息管理考生成绩查询课程信息管理套题信息管理考试题目管理退出后台管理图3.2后

37、台功能结构图3.4用例模型用例模型描述的是外部行为者(actor)所理解的系统功能。用例模型的建立是系统开发者和用户反复讨论的结果,他描述了开发者和用户对需求规格所达成的共识5。本系统的用户包括学生和管理员两部分,系统的用例图如图3.3所示:图3.3 用例图3.5概念模型概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示出信息世界的常用概念,概念模型的表示方法很多,期中最为著名最为常用的是P.P.S.Chen于1976年提出的实体关系法,该方法用E-R图6来描述现实世界的概念模型。根据前几节所做的系统分析,规划出在本系统中使用的主要实体有考生实体、管理员实体、试卷实体以及考试成绩实

38、体,下面设计出这几个关键实体的实体关系图。如图3.4所示:图3.4 系统E-R图3.6系统工作流程由于流程图能够详细地表达数据在系统各部件之间的流动情况,形象地描述系统的工作流程,因此根据在线英语考试系统要实现的目标,以及对各功能模块的分析,设计出整个考试系统的流程图7,如图3.5所示:否开始找回密码考生注册考生登录成绩查询在线考试修改个人资料同意考试规则选择考试课程准备考试开始考试提交试卷自动阅卷并显示考试成绩结束管理员信息管理考生信息管理考生成绩查询课程信息管理试题管理管理员登录进入后台是图3.5 系统流程图第四章 数据库设计4.1数据库分析由于在线英语考试系统对于数据的安全性及完整性要求

39、比较高,并且为了增加程序的适用范围,还要保证系统可以拥有存储足够足够多数据的能力,本系统采用SQL Server 2000数据库。SQL Server 2000是一种高性能的关系型数据库管理系统,它在SOL Server 7.0的基础上有扩展了系统的性能、可靠性、安全性和易用性,逐渐成为在线事务进程和数据仓库等最好的数据库平台。4.2数据库逻辑结构4.2.1各数据表的结构tb_Student(考生信息表):考生信息表用来保存考生信息,参照表4.1:表4.1 考生信息表字段名数据类型可否为空是否主键默认值描述IdBigint(8)NoYesID号(自动拨号)Namevarchar(20)NoNo

40、Null姓名Pwdvarchar(20)NoNoNull密码Sexvarchar(2)NoNoNull性别joinTimedatetime(8)NoNogetdate()注册时间Questionvarchar(50)NoNoNull提示问题Answervarchar(50)NoNoNull问题答案prefessionvarchar(30)YesNoNull专业cardNovarchar(18)NoNoNull身份证号tb_TaoTi (套题信息表):套题信息表用来保存套题信息,参照表4.2:表4.2套题信息表字段名数据类型可否为空是否主键默认值描述Idbigint(8)NoYesID号(自动拨

41、号)Namevarchar(50)NoNoNull套题名称lessonIdbigint(8)NoNoNull所属课程joinTimedatetime(8)NoNogetdate()添加时间tb_questions (考试题目信息表):考试题目信息表用来保存考试题目信息,该表中保存着所属课程和所属套题的ID,通过这两个ID可以获取所属课程和套题的信息,参照表4.3:表4.3考试题目信息表字段名数据类型可否为空是否主键默认值描述Idbigint(8)NoYesID号(自动拨号)Subjectvarchar(500)NoNoNull问题Typechar(6)NoNoNull类型joinTimedat

42、etime(6)NoNogetdate()添加时间lessonIdint(4)NoNoNull所属课程IDtaoTiIdbigint(8)NoNoNull所属套题IDoptionAvarchar(50)NoNoNull选项AoptionBvarchar(50)NoNoNull选项BoptionCvarchar(50)NoNoNull选项CoptionDvarchar(50)NoNoNull选项DAnswervarchar(50)NoNoNull正确答案Notevarchar(50)YesNoNull备注tb_stuResult(考生成绩表):考生成绩表用来保存考生成绩,该表中的所属课程字段wh

43、ichLesson与tb_Lesson表中的Name字段相关联,参照表4.4:表4.4考生成绩表字段名数据类型可否为空是否主键默认值描述Idbigint(8)NoYesID号(自动拨号)stuIdvarchar(16)NoNoNull准考证号whichLessonvarchar(60)NoNoNull所属课程resSingleint(4)NoNoNull单选题分数resMoreint(4)NoNoNull多选题分数resTotalint(4)YesNoNull合计分数joinTimedatetime(8)NoNogetdate()添加成绩的时间tb_Lesson(课程信息表)课程信息表用来保存

44、课程信息,参照表4.5:表4.5 课程信息表字段名数据类型可否为空是否主键默认值描述idbigint(8)NoYesID号(自动拨号)Namevarchar(60)NoNoNull课程名称joinTimedatetime(8)NoNoNull添加时间tb_Manager(管理员信息表):管理员信息表用来保存管理员信息,参照表4.6:表4.6 管理员信息表字段名数据类型可否为空是否主键默认值描述idbigint(8)NoYesID号(自动拨号)Namevarchar(30)NoNoNull管理员姓名Pwdvarchar(30)NoNoNull密码4.2.2数据表之间的关系设计本系统设计了如图4.

45、1所示的数据库表之间的关系,该关系实际上也反映了系统中各个实体之间的关系。图4.1 表之间的关系图第五章 系统实现5.1公共类设计在系统开发的过程中,经常会用到一些公共类,比如数据库连接及操作的类以及字符串处理的类。因此,可以在开发系统前首先设计这些公共类,然后再对系统进行进一步开发。5.1.1数据库连接及操作类的编写数据库连接及操作类通常包括连接数据库的方法getConnection()、执行查询语句的方法executeQuery()、执行更新操作的方法executeUpdate()、关闭数据库连接的方法close()。下面详细介绍如何编写在线英语考试系统中的数据库连接及操作的类ConnDB

46、。(1)定义用于数据库连接及操作的类ConnDB,并将其保存到com.wgh.core包中,同时导入该类所需要的类包并定义该类中所需的全局变量及构造方法。代码如下:ConnDB.java:package com.wgh.core; /将该类保存到com.wgh.core包中import java.io.InputStream; /导入java.io.InputStream类import java.sql.*; /导入java.sql包中的所有类import java.util.Properties; /导入java.util.Properties类public class ConnDB pub

47、lic Connection conn = null; / 声明Connection对象的实例public Statement stmt = null; / 声明Statement对象的实例public ResultSet rs = null; / 声明ResultSet对象的实例private static String propFileName = /com/connDB.properties; / 指定资源文件保存的位置private static Properties prop = new Properties(); / 创建并实例化Properties对象的实例private sta

48、tic String dbClassName = com.microsoft.jdbc.sqlserver.SQLServerDriver;/定义保存数据库驱动的变量private static String dbUrl = jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=d b_netExam;private static String dbUser = sa;private static String dbPwd = ;public ConnDB() /定义构造方法try /捕捉异常 /将Properties文件读取到InputS

49、tream对象中InputStream in = getClass().getResourceAsStream(propFileName);prop.load(in); / 通过输入流对象加载Properties文件dbClassName = prop.getProperty(DB_CLASS_NAME); / 获取数据库驱动dbUrl = prop.getProperty(DB_URL, dbUrl);/获取URLdbUser = prop.getProperty(DB_USER, dbUser);/获取登录用户dbPwd = prop.getProperty(DB_PWD, dbPwd);

50、/获取密码 catch (Exception e) e.printStackTrace(); / 输出异常信息(2)为了方便程序移植,本程序中将数据库连接所需的信息保存到properties文件8中,并将该文件保存在com包中,在程序移植时只需修改该文件即可,connDB.properties文件的内容如下:#DB_CLASS_NAME(驱动的类的类名)=com.microsoft.jdbc.sqlserver.SQLServerDriverDB_CLASS_NAME=com.microsoft.jdbc.sqlserver.SQLServerDriver#DB_URL(要连接数据库的地址)=

51、jdbc(JDBC模式):microsoft(谁提供的):sqlserver(产品):/localhost:1433(SQL SERVER默认端口);DatabaseName=db_databaseDB_URL=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=db_netExam#DB_USER=用户名DB_USER=sa#DB_PWD(用户密码)=DB_PWD=sa(3)创建连接数据库的方法getConnection(),该方法返回Connection对象的一个实例。getConnection()方法的实现代码如下:public s

52、tatic Connection getConnection() Connection conn = null;try Class.forName(dbClassName).newInstance();conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); catch (Exception ee) ee.printStackTrace();if (conn = null) System.err.println(警告: DbConnectionManager.getConnection() 获得数据库链接失败.rnrn链接类型:+ db

53、ClassName+ rn链接位置:+ dbUrl+ rn用户/密码+ dbUser + / + dbPwd);return conn;(4)创建查询语句的方法executeQuery,返回值ResultSet为结果集。executeQuery方法的代码如下:public ResultSet executeQuery(String sql) try / 捕捉异常conn = getConnection(); / 调用getConnection()方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_

54、INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = stmt.executeQuery(sql); catch (SQLException ex) System.err.println(ex.getMessage(); / 输出异常信息return rs; / 返回结果集对象(5)创建执行更新操作的方法executeUpdate(),返回值为int型的整数,代表更新的行数。executeQuety()方法的代码如下:public int executeUpdate(String sql) int result = 0; / 定义保存返回值的变量try /

55、捕捉异常conn = getConnection(); / 调用getConnection()方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);result = stmt.executeUpdate(sql); / 执行更新操作 catch (SQLException ex) result = 0; / 将保存返回值的变量赋值为0return result; / 返回保存返回值的变量(6)创建关闭数据库连接的方法cl

56、ose()。close()方法的代码如下:public void close() try / 捕捉异常if (rs != null) / 当ResultSet对象的实例rs不为空时rs.close(); / 关闭ResultSet对象if (stmt != null) / 当Statement对象的实例stmt不为空时stmt.close(); / 关闭Statement对象if (conn != null) / 当Connection对象的实例conn不为空时conn.close(); / 关闭Connection对象 catch (Exception e) e.printStackTrac

57、e(System.err); / 输出异常信息5.1.2字符串处理类字符串处理类是为解决程序中经常出现的有关字符串处理问题而编写的类,在本系统的字符串处理类中,只包含一个用于将指定字符串格式化为指定位数的方法formatNO()。下面详细介绍:编写将整型数据格式华为指定长度的字符串的ChStr类9,将其保存到com.wgh.core包中,并导入所需的包,关键代码如下:package com.wgh.core;import java.text.NumberFormat;public class ChStr 在ChStr类中创建一个方法formatNO(),该方法有两个int型参数,分别是str(

58、要格式化的数字)和length(格式化后字符串的长度),返回值为格式化后的字符串,具体代码如下:public String formatNO(int str, int length) float ver = Float.parseFloat(System.getProperty( java.specification.version); /获取JDK的版本 String laststr = ; if (ver 1.5) /JDK1.5以下版本执行的语句 try NumberFormat formater = NumberFormat.getNumberInstance();/声明并实例化Num

59、berFormat的一个实例 formater.setMinimumIntegerDigits(length); /指定小数点前显示的最少位数 laststr = formater.format(str).toString().replace(, ); catch (Exception e) System.out.println(格式化字符串时的错误信息: + e.getMessage();/输出异常信息 else /JDK1.5版本执行的语句 Integer arr=new Integer1;/声明并初始化数组arrarr0=new Integer(str);/将要格式化的数字str赋值给数

60、组arr的第一个元素 laststr = String.format(%0+length+d, arr); return laststr;5.2前台首页设计5.2.1前台首页概述考生通过“考生登陆”的模块验证后,可以登陆到在线英语考试系统的前台首页,前台首页主要用于前台功能导航,本在线英语考试系统前台首页包含以下4个导航链接:在线考试链接:该功能是前台最主要的功能,考生首先要同意考试规则后,方可以选择要考试的科目,考生准备好了即可答题,然后系统自动阅卷,并将成绩反馈给用户。查询成绩链接:考生可以通过该功能查询自己以前考过的科目的成绩。修改个人资料链接:考生通过该功能可以修改自己注册时填写的信息

温馨提示

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

评论

0/150

提交评论