摘 要
伴随着Internet技术在各个领域的广泛应用,当今社会已经进入信息时代,信息技术革命使社会的各个领域都发生了翻天覆地的变化,计算机,网络技术也渗透到了学校的日常管理当中去。而且网络化的管理也适合现在人的生活需求。在线考试系统以其较高的实用功能、高效率的管理手段深受各界教育人士的青睐。而英语四级在线考试系统更是应运而生。
本文着重描述了英语四级在线考试系统的组成与结构,阐述了本在线考试系统的设计方案、实现方法以及所采用的开发工具和相关技术,还重点剖析了部分环节的程序设计、模块开发过程。最后在一定的环境下对系统的重要模块进行了模拟测试,证实了该网站的可用性。
本系统具有较高的可用性,通过将该系统在局域网上发布使用,测试程序工作流程,测试结果工作良好。在网络已经延伸到我们社会生活的方方面面的今天,英语四级在线考试必然成为以后大学校园管理的一个重要方面,伴随着学校的发展和大学生的需求而日益的完善,从而提高大学英语四级考试的整体的效率。
关键词 在线考试;SSH框架;随机出题
Abstract
Along with the Internet technology extensive application in many fields, the society has entered into the information age, information technology revolution that all areas of society has undergone earth-shaking changes, computer network technology, and also to the day-to-day management of the school. But for now, the network management of life needs. Online examination system with its high practical function, high efficiency management education of all circles. And four English exam system also arises at the historic moment.
This paper describes the band four English online examination system composition and structure, expounds the on-line examination system design and realization method and development tools and techniques, and also analyzes the key part of the program design, module link development process. Finally in certain conditions of the system is simulated test is an important modules, confirmed the website usability.
This system has the high availability, through the system used in LAN, test program by working process, test results work is good. In the network has been extended to us all aspects of social life of today, cet 4 online examination must be after university campus management is an important aspect of the development of the school, with the increasing demand and the perfect, so as to improve the college English test band-4 overall efficiency.
Key words Online examination SSH framework Random
目 录
摘要
Abstract
第1章 绪论
1.1 课题背景
1.2 目的和意义
1.3 系统设计思想
1.4 国内英语四级在线考试系统的现状及分析
1.5 论文的工作内容及论文的结构
第2章 可行性分析
2.1 业务流程图
2.2 经济可行性
2.3 技术可行性
2.4 运行可行性
2.5 本章小结
第3章 需求分析
3.1 在线考试系统的产生和发展
3.2 英语四级在线考试系统的需求分析
3.2.1 数据流图的构建
3.2.2 数据字典
3.3 本章小结
第4章 总体设计
4.1 系统模块总体设计
4.2 数据库设计
4.2.1 数据库设计概述
4.2.2 数据分析
4.3 数据库的详细设计
4.4 本章小结
第5章 详细设计
5.1 系统运行平台设置
5.2 开发工具简介
5.3 系统主界面设计
5.4 基本信息设置功能设计
5.4.1 注册与登录模块设计与实现
5.4.2 在线模拟考试模块设计与实现
5.4.3 试题管理模块设计与实现
5.4.4 成绩统计与分析模块设计与实现
5.5 本章小结
第6章 软件测试
6.1 为什么要进行系统测试
6.2 软件测试概述
6.2.1 测试的基本概念
6.2.2 测试的步骤
6.3 本系统测试
6.4 本章小结
第7章 系统主要功能使用说明
7.1 系统登录步骤
7.2 管理员后台维护功能
7.3 站内邮箱设置功能
7.4 断电继考功能
7.5 本章小结
结论
致谢
参考文献
附录1
附录2
第1章 绪论
1.1 课题背景
当今的社会,可以说是信息技术的发展时代,在社会的方方面面无不涉及到各种信息的处理。信息是人们对客观世界的具体描述,是人们进行交流与联系的重要途径。人类社会就处在一个对信息进行有效合理的加工中。它将促进整个社会的发展。随着社会信息技术的提高,计算机已被广泛应用于当今社会的各个领域,成为推动社会发展的首要技术动力。在当今信息时代,人们的生活方式随着Internet的不断发展发生了不同寻常的改变。基于Internet的英语四级在线考试系统作为本世纪的新型考试方式倍加受人们重视,如何改革传统的考试模式,增强教学手段,提高教学效果是摆在我们面前的一个新问题。并且2008年初,教育部出台《关于实施高等学校本科教学质量与教学改革工程的意见》也指出,大学英语四级考试将有望在网上进行。为此,设计和实现英语四级在线考试系统就突显它的必要性。
通过计算机进行在线考试时,不仅能够保证考试的准确无误、快速输出,而且还可以保证考试的公平、公正、保密性。使用在线考试系统有很多的优点,例如:可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提高在线考试系统的效率,也是考试的科学化、快捷化、正规化管理与世界接轨的重要条件。
1.2 目的和意义
随着学校教育水平的不断提高,信息化技术的飞速发展,学校所追求的管理方式也有所改变。为了适应现代社会网络化的趋势,提高学校的管理层次和办公效率,考试形式也渐渐的发生变化。在线考试系统正是在这个形式下产生的良好的适应现在社会需要的一套系统,而且以飞快的速度在向前发展,所以在以后的信息化的生活中,必将成为教育事业的一项主要应用系统。 各种科目的在线考试系统出现的同时,各种模拟考试网站也随之出现,它们给考生提供了很多便利条件。让考生们可以通过在线模拟考试的方式尽快适应在线考试。使考生们避免因为紧张、不熟悉考试流程、题型等而造成失误。实现英语四级在线考试系统便是为了让考生提前熟悉英语四级考试题型和尽快适应紧凑的考试时间而提出的。尤其在2006年首次采用新题型,考试题型的不断创新和改变,教师的工作量不断加大,致使传统的考试方式,不论从哪方面都无法满足于人们的需要。在这样的背景下,设计和实现英语四级在线考试系统是十分必要的。该系统运行在开放互连的Internet上,冲破了传统考试方式的限制,将人工出题、考生考试、人工阅卷、成绩评估和试卷分析等计算机化,并可以让每个学生可以在任意时间、地点根据学习内容和进度,进行英语四级在线模拟考试。它是现代教育的有益补充,对推动教学技术、提高学习质量具有重要的意义,其推广应用将具有广泛的社会价值。
1.3 系统设计思想
英语四级在线考试系统的主要设计思想是根据需求分析,进行实际调研后,以实际题型为基础进行设计的。本系统设计基于SSH框架技术,运行在开放互连的Internet上,冲破了传统考试方式的限制,将人工出题、考生考试、人工阅卷、成绩评估和试卷分析等计算机化。具体设计思想与主要特征如下:
1. 不受时间和空间的限制。可以在远程教育、局域网内实现英语四级在线考试,更重要的是由于该系统运行在开放互连的Internet上,从而可以不再受考试的时间和考试的地点限制,考生可以自由安排测试环境。
2. 题库共享化。可以使达到英语四级难度范围内的各种题库共享,有利于试卷组卷与评估,有效地缩短学校自身教育水平的差距;提高学生的自学能力。
3. 考试自主化进行。可以在同时段内组织集体考试,这个与考试组织者有关,也可以在教师的安排下进行单一测试。同时,可以帮助考生在任何无组织的情况下,自行测试。
4. 考试管理自动化。在管理考试的人员上和考试的内容上都进行了自动化的管理,确保学生随时随地地自我联系评测,有效降低教师考评的工作难度与工作量,让教师能更为集中精力在教学与知识点的评估方法上,提高考试的全面性与针对性。
5. 考试结果查询快捷方便。充分利用计算机网络的智能计算能力、信息共享能力、信息分析能力;在第一时间完成对考卷的自动分析与评估,对知识考点的自动追踪,实现对参考学生的知识弱点准确分析。便于教师、学生能够更有针对性地覆盖上学习与教学内容。
6. 扩展性得到加强。在SSH框架下的web应用系统继承了框架中优秀的扩展性能,尤其是在试题组建上的应用得到灵活的发挥。应用高性能的JSP前台技术和三层架构可以使用户与数据库交互更加高效快捷。
7. 社会价值性。网络上的模拟考试很多。但是对于大学生英语四级在线考试并没有很多。因此开发本网站也可以考生尽快熟悉考试题型,顺利通过真实环境下的四级考试。
1.4 国内英语四级在线考试系统的现状及分析
本文根据国内英语四级在线考试系统的实际情况,展开了一系列的研究和分析。研究工作主要从以下两个方面进行。
1. 系统结构
目前大多数英语四级在线考试系统的系统结构主要有C/S(Client/Server,即客户机/服务器)结构和B/S(Browser/Server,即浏览器/服务器)。本课题根据两种结构的优缺点及应用范围的不同。采用了B/S结构作为本系统的结构模式。
(1) C/S结构
基于C/S结构的考试系统,利用计算机局域网,试题内容放在远程服务器上,在考试机(即客户端)上安装考试应用程序,由于利用了计算机网络,不再需要大量人力,自动化程度和效率较高,但由于其结构特点,只适用于一定范围的网络内部(局域网);每次考试或版本升级时,都要对机器进行安装、配置,维护困难,比较烦琐;而且考试应用程序放在客户机上,安全性也受到一定影响。
(2) B/S结构
采用三层结构,即:浏览器/Web服务器/数据库服务器,这种结构的网络考试系统,客户端只需安装一个标准的Web浏览器,其它应用程序都存储在Web服务器上,负责接收浏览器的Web页请求和数据请求,并处理Web页请求,同时将数据请求通过数据库接口程序转换成数据库服务器能够接收的形式,送到数据库服务器,数据库服务器执行相应的数据库操作并将结果通过数据库接口程序的转换送回Web服务器,Web服务器将结果处理成浏览器能够接收的形式后,送回发出请求的浏览器,显示结果。这种B/S结构的网络考试系统适用于一个考场或几十个考场,适合几十人或几万人同时进行考试,解决了考试系统对客户机软件过分依赖的问题,减轻了客户机软件维护工作量;考试系统的安装和试题装卸更加简便,只需在服务器上进行安装即可;使用B/S结构的网络考试系统,不会受到时间和地域的限制,任何一个考生在何时何地都可以登录,这也是未来考试系统的发展方向。
2. 相关技术
英语四级在线考试系统的实现技术有多种,通常有CGI,ASP,PHP,JSP等。每种技术都有不同的优点和不足。本课题在设计过程中采用了JSP技术和SSH框架。
JSP(Java Server Page),是Sun公司推出的新一代网站开发语言,JSP技术是用Java语言作为脚本语言的,在传统的HTML网页文件中加入Java程序片段和JSP标记,就构成了JSP网页。Web服务器在遇到访问JSP页面的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户端,程序片段可以操作数据库、重新定向网页以及发送Email等。所有程序操作都在服务器端执行,网络上传送给客户端的只是服务器处理的结果,客户端只要安装浏览器即可。
JSP技术的特点:
(1) 跨平台,而且支持Apache、Netscape、IIS、IBM Http Server在内的所有主流Web服务器。
(2) 程序执行的效率高,一次编译,处处可用,JSP的脚本语言是Java 语言,因此,它具有Java语言的一切特性,当JSP页面第一次被请求时,JSP页面转换成Servlet,然后被编译成.class文件,以后(除非页面有改动或Web服务器被重新启动)再有客户请求该JSP页面时,JSP页面不会被重新编译,而是直接执行已编译好的.class文件,因此执行效率特别高。
(3) JAVA组件有可重用性,可复用性,跨平台性的优点。JavaBean和EJB(Enterprise JavaBean)组件,为JSP的开发提供方便,我们可以将复杂的处理程序放到组件中,可以多次使用这些组件,避免在JSP页面中重复书写代码。
(4) 将内容的生成和显示进行分离,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者脚本来生成页面上的动态内容。生成动态内容的语句一般被封装在JavaBean组件或JSP脚本段中。这样,页面的设计人员和页面的编程人员可以同步进行。同时在客户端通过查看源文件,看不到JSP标识的语句,更看不到JavaBean组件,也可以保护源程序的代码。
SSH框架的特点:
(1) Spring面向方面编程(AOP)是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(如日志和事务管理)进行模块化。
(2) Spring的控制反转(IOC)容器。BeanFactory 的概念是Spring作为IOC容器的基础。它使用控制反转模式将应用程序的配置和依赖性规范与实际的应用程序代码分开,从而将应用程序代码转移到框架。
1.5 论文的工作内容及论文的结构
本文介绍了B/S体系结构的在线考试系统的设计及实现过程,在本次系统开发过程中主要从事了以下模块的设计、开发工作:试题管理、用户管理、通知管理、成绩管理、试卷管理、站内邮箱等功能。
本文主体部分分为7章,第1章为绪论,介绍了本课题的目的和意义,综述系统开发的背景,阐述了作者在本次设计开发中的工作内容,提出了论文的结构层次。第2章着重对系统进行了可行性分析,通过分析本系统的业务流程而画出业务流程图,并且进行了经济、技术、运行三方面的可行性分析。第3章着重对系统进行了需求分析,介绍了在线考试系统的产生和发展情况,对在线考试系统进行了具体的需求分析,画出数据流图,写出了数据字典。第4章阐述了在开发过程中的系统的总体设计的过程,系统功能模块的设计以及关系数据库的建立,本章反映了开发过程中数据库比较详细的设计方法。第5章介绍了系统的开发工具和运行平台,介绍了各个模块的功能设计及其实现方式,阐述了作者在此次开发过程中遇到的一些问题和解决方法。第6章是对系统的测试及性能分析阶段,完成了系统预期的结果。第7章是系统的主要功能的使用说明,介绍了主要功能的操作流程,使用户更清楚的了解本系统。
第2章 可行性分析
可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。通过分析解决方的利弊,来判定系统目标和规模是否显示,系统完成后所能带来的效益是否能够达到值得去投资开发这个系统的程度。
结合本系统的具体情况,综合考虑到教育事业的高速发展和学校信息化发展过程中出现的各种情况,结合现在社会考试的实际。英语四级在线考试系统如果实施后,将能够达到以下目标:
1. 学生考试管理信息化,可随时掌握学生的学习成绩情况。
2. 提供快速、准确的学生考试及成绩的最新信息。
3. 界面友好美观,操作简单易行,查询灵活方便。
4. 通过系统实施,可以提高学生考试的管理水平。
5. 系统维护方便,有较高的安全性,满足实用性和先进性的要求。
6. 周全的考试提醒功能,用户登录新消息提示,及时提醒考生注意考试时间。
2.1 业务流程图
根据当今大学生考试的实际情况,本系统的主要业务流程描述如下:
1. 用户注册:主要是记录用户的基本信息。当用户注册成功以后,更加方便的使用本系统。
2. 用户登录:获取用户信息,确定其功能及使用权限。
3. 用户考试:当用户登录成功后,可进行随机生成试卷考试或对历年真题的练习。
4. 提交试卷:提交所答试卷信息,客观题交卷由计算机自动批分,主观题交由相应的老师批阅。
5. 教师登录:获取教师信息,确定其权限。
6. 教师批阅:当管理员对其给予相关权限时,相关老师会对提交的试卷进行批阅。
7. 查询成绩:可对成绩进行查询。
8. 试题管理:主要是对试题的更新操作。
具体考生考试业务流程如图2-1所示。
图2-1 系统业务流程图
新系统的目标确定后,可以从经济可行性、技术可行性和运行可行性三个方面对能否实现新系统目标进行可行性分析。
2.2 经济可行性
软件的经济可行性是指软件所能带来的经济效益与开发设计所需要的投资相比,是否相适宜,同时还要看此软件能否真正给用户带来足够的经济效益。从开发者的角度来讲,开发此软件不需要大量的经费,而且是个人独立设计,可以节省许多费用,同时也可提高个人的实际动手能力。从用户的角度来讲,该系统针对的用户是考生和教师。开发该系统对学生而言,可以方便考生们在任何场所、地点通过Internet进行英语四级模拟考试。节省购买纸张式的试卷而造成的花费。同时,对于教师来说,可以避免大量的试题批阅。除主观题作文需要有教师完成。其他类型试题均可计算机自动批改。节约教师批改试卷所需要的工作费用。下面具体从系统初期投资与后期回报两方面进行分析。
1. 系统初期投资
本系统主要从需求分析、总体设计、前台设计和后台管理设计等方面进行讨论。
假设开发所需的硬件都已具备不需另外花费。假设需求分析阶段需10(人·日),单价为200元,所以预计共花费2,000元。总体设计需1,000元;前台主页面详细设计需要500元;后台管理模块详细设计需要1800元;工程实际成本数据库实现需500元;编码实现需1,200元;单体测试需1,200元;系统集成测试需用500元;说明手册编制需500元。所以系统初期投资共需9,200元。
2. 系统后期收入利润
系统初期投资为人民币9,200元。一旦投入使用,仅在哈工大华德学院范围内1万名考生中计算利润。如果每人每份试卷节省2元。每人一年模拟两次的试卷的情况下。即一年可获利40,000元。除去初期投资的9,200元。一年后,可获得存利润30,800元。
综上所述,系统投资开发是在经济可行性方面,是完全可行的。
2.3 技术可行性
技术可行性是最难决断和最关键的问题。可以从技术的角度研究系统实现的可行性。该系统目标来衡量所需的技术是否具备,一般可从硬软件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。
考虑到系统实施的可行性,在软件方面所需的开发工具简介如下:
MyEclipse是一个专门为Eclipse设计的商业插件和开源插件的完美集合。MyEclipse为Eclipse提供了一个大量私有和开源的Java工具的集合,很大程度上解决了各种开源工具的不一致和缺点问题,并大大提高了Java和JSP应用开发的效率。
MyEclipse的实际价值来自其发布的大量的可视化开发工具和实用组件。如CCS/JS/HTML/XML的编辑器,帮助创建EJB和Struts项目的向导并产生项目的所有主要的组件如Action/Session Bean/Domain等,此外还包含编辑Hibernate配置文件和执行SQL语句的工具。
MyEclipse还提供了AJAX/WEB 2.0 Tools、UML Modeling With Full Roundtrip Engineering、Split-screen Web Designer For YSIWYG Development、Visual JSF & Struts Development、Hibernate Tools、Spring IDE Integration等功能。这些功能毫无疑问可以简化Web应用开发,并对Struts、Hibernate、Spring即SSH等开发框架的广泛应用起到了非常好的促进作用。此外MyEclipse还包含大量由其他组织开发的开源插件,Genuitec增强了这些插件的功能并且撰写了很多实用文档便于开发者学习。
综上所述,MyEclipse插件对加速Eclipse的流行起到了很重要的作用,并大大简化了复杂Java/JSP应用的开发。
在硬件方面,则选择空间较大,只要是Pentium Ⅳ系列及以上的计算机,内存在512M以上,硬盘在10GB,都可以满足系统的开发需要!当然,硬件的配置越高,系统的开发与运行会更流畅。考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是可行的。在软件方面,由于MyEclipse和 SQL Server 2005 都两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。
设计与实现英语四级在线考试系统中,涉及到的最核心的技术问题就是如何实现在不刷新页面的情况下实现显示时间及剩余时间,并做到达到考试结束时间时自动提交试卷。如果在Ajax技术出现以前,要实现这些功能会比较麻烦,但是现在通过Ajax技术可以轻松实现该功能。这为英语四级在线考试系统的开发提供了技术保障。
2.4 运行可行性
通过系统对学校内部考试进行全面的自动化的管理,大大提高了学校的办公效率。通过系统对学校教育过程中的数据进行全面的管理和统计,避免人为处理各类数据时所产生的各种问题,提高了学校的经济效益,为学校办公提供了大量的、权威的数据,使学校的管理进行到科学化、系统化的范筹。
在现今社会,随着Internet在中国的迅速发展,人们日常生活中越来越多地使用Web技术来为自己的工作和学习服务。英语四级在线考试系统就是在这种背景下设计的。只需要注册一个准考证号。就可以进行考试。查询成绩。大大的方便了考生。本系统的操作十分简单。同一般的网站使用方式一样,不需要高端的配置。客户端只需要安装Internet Explorer 6.0即可浏览、操作本网站上的所有功能。经过以上分析,运行方面是可行的。
综合上述三方面的可行性分析。结合英语四级在线考试系统的实际情况。本系统可以进行开发。
2.5 本章小结
本章从业务流程、经济可行性、技术可行性和运行可行性四方面进行可行性分析。综上分析所述,本系统的经济效益显著,技术手段成熟、可靠,易于维护,运行起来流畅,操作信息简单快捷,操作人员易懂,并且具有良好的市场拓展,因此本系统的开发前景相当乐观。
第3章 需求分析
需求分析(又称逻辑设计)是管理信息系统开发的关键环节,要求在系统调查的基础上,对新系统的功能进行细致的分析,并建立一个新系统的逻辑模型。
新系统的逻辑模型由系统数据流程图、概况表、数据字典、物理逻辑表达式及有关说明组成。最后要完成需求分析报告(也称为系统逻辑设计说明书)。在系统设计阶段要做认真、细致的分析、研究工作,避免新系统在功能上存在先天不足或缺陷。
因为新系统模型是建立在对现行系统的分析及要求的基础上的,所以系统调查工作要进行得深入、细致、全面。
3.1 在线考试系统的产生和发展
在线考试系统采用Internet/Intranet技术,基于工作流的概念,使学校内部人员方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、全方位的信息化管理,为学校的管理和决策提供科学的依据。一个学校实现在线考试的程度也是衡量其实现现代化管理的标准。在线考试系统把最初的人工笔答考试发展到今天的以运用网络和计算机为标志的现阶段,对学校的管理方式的改变和效率的提高起到了积极的促进作用。
在线考试系统解决学校的考试管理规范化、提高学校运转的效率的基本问题,可以概括的说,在线考试系统不同于其他形式的管理系统,更集中关注于考生考试及学校办公的效率和可控性,是在以后学校提高整体运转能力不可缺少的软件工具。
3.2 英语四级在线考试系统的需求分析
需求分析过程是整个系统开发的重要阶段,分析的成功与否,决定着整个系统功能的完善性以及稳定性。在该阶段需求分析人员需要确定整个产品的功能要求,并且将现实事务抽象成对象并建模。需求分析过程是完成整个软件开发的重要组成部分,分析的成功与否直接关系到整个系统功能的完善性与稳定性,分析的成功会给用户带来很大的方便,用户应用适合企业自身需要的软件可以提高工作效率,降低成本。
需求分析过程是整个系统开发的重要阶段,分析的成功与否,决定着整个系统功能的完善性以及稳定性。在该阶段需求分析人员需要确定整个产品的功能要求,并且将现实事务抽象成对象并建模。
3.2.1 数据流图的构建
数据流图描述:考生注册后,根据自动生成的准考证号进行模拟考试。系统从数据库试题库中获取试题数据,随机生成的试卷。系统对客观题自动批阅。主观题有教师批阅后,考生方可查询成绩。有权限的教师可以对试题进行管理。对主观题进行批改。考生考试数据流图如图3-1所示。
图3-1考生考试数据流图
3.2.2 数据字典
数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。它主要是对数据流图中的数据流、处理逻辑、外部实体、数据存储和数据项等方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。
数据字典作为分析阶段的工具,能够在软件分析和设计的过程中给人提供关于数据的描述信息。在数据流图上描述了系统由哪几部分组成,各部分之间的联系等。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典的数据流图就不严格,没有数据流图数据字典也难以发挥作用。两者一起构成了系统的规格说明。数据字典中包含的每个数据元素的控制信息都是很有价值的。
数据字典包括6个条目分别为:数据项、数据结构、数据流、数据存储、外部实体、处理逻辑。不同类型的条目有不同的属性需要描述。
(1) 数据项定义:
数据项也称数据元素,是“不可再分”的数据单位,是数据的最小组成单位,本系统数据项如表3-1所示。
表3-1系统数据项定义
编号 | 名称 | 别名 | 类型 | 长度 |
I1-01 | student_id | 考生编号 | varchar | 50 |
I1-02 | student_name | 考生姓名 | varchar | 20 |
I1-03 | student_password | 考生密码 | varchar | 20 |
I1-04 | student_cardNo | 考生准考证号 | varchar | 30 |
I1-05 | teacher_id | 教师编号 | varchar | 50 |
I1-06 | teacher_name | 教师姓名 | varchar | 20 |
I1-07 | teacher_password | 教师密码 | varchar | 20 |
I1-08 | type_id | 试题类型编号 | varchar | 20 |
I1-09 | type_name | 试题类型名称 | varchar | 20 |
I1-10 | type_score | 试题类型分数 | float | 8 |
I1-11 | type_num | 试题类型数量 | float | 8 |
I1-12 | message_id | 文章编号 | int | 50 |
I1-13 | location | 文章存放地址 | varchar | 20 |
I1-14 | differ | 试题难度 | int | 50 |
I1-15 | type_id | 试题类型编号 | int | 50 |
续表3-1
I1-16 | st_id | 试题编号 | varchar | 50 |
I1-17 | question | 试题问题 | varchar | 500 |
I1-18 | option1 | 试题答案A | varchar | 500 |
I1-19 | option2 | 试题答案B | varchar | 500 |
I1-20 | option3 | 试题答案C | varchar | 500 |
I1-21 | option4 | 试题答案D | varchar | 500 |
I1-22 | answer | 试题答案 | varchar | 500 |
I1-23 | sj_id | 试卷编号 | int | 50 |
I1-24 | sjname | 试卷名称 | varchar | 20 |
I1-25 | total_cent | 试卷总分 | float | 50 |
I1-26 | create_time | 试卷创建时间 | datetime | 20 |
I1-27 | end_time | 试卷结束时间 | datetime | 20 |
I1-28 | sjtype | 试卷类型 | varchar | 10 |
I1-29 | sjxx_id | 试卷详细信息编号 | int | 50 |
I1-30 | sj_id | 试卷编号 | int | 50 |
I1-31 | ans_time | 答题时间 | varchar | 50 |
I1-32 | condition | 试卷状态 | varchar | 4 |
I1-33 | total_grade | 试卷得分 | float | 8 |
I1-34 | ti_content | 试卷内容编号 | varchar | 100 |
I1-35 | zuowen | 作文内容 | varchar | 500 |
I1-36 | listencount | 听力对题数量 | int | 8 |
I1-38 | fastcount | 快速阅读对题数量 | int | 8 |
I1-39 | readcount | 仔细阅读对题数量 | int | 8 |
I1-40 | zuowencount | 作文分数 | int | 8 |
I1-41 | student_talk | 考生留言 | varchar | 500 |
(2) 据流定义:
数据流编号:D1-01
数据流名称:注册信息
数据流来源:考生
数据流去向:P1-01
数据流组成:I1-02+I1-03
数据流编号:D1-02
数据流名称:注册详细信息
数据流来源:考生
数据流去向:F1-01
数据流组成:I1-01+I1-02+I1-03+I1-04
数据流编号:D1-03
数据流名称:考生登录信息
数据流来源:考生
数据流去向:F1-02
数据流组成:I1-01+I1-02+I1-03+I1-04
数据流编号:D1-09
数据流名称:试题信息
数据流来源:P1-05
数据流去向:P1-06
数据流组成:I1-12+I1-13+I1-14+I1-15+I1-16+I1-17+I1-18+I1-19+
I1-20+I1-21+I1-22
数据流编号:D1-10
数据流名称:试题基本信息
数据流来源:F1-02
数据流去向:P1-05
数据流组成:I1-08+I1-09+I1-10+I1-11
数据流编号:D1-11
数据流名称:试卷信息
数据流来源:P1-06
数据流去向:P1-07
数据流组成:I1-30+I1-31+I1-32+I1-33+I1-34+I1-35+I1-36+I1-37+
I1-38+I1-39
数据流编号:D1-14
数据流名称:未批卷试卷信息
数据流来源:P1-10
数据流去向:P1-08
数据流组成:I1-30+I1-32
数据流编号:D1-16
数据流名称:教师登录信息
数据流来源:教师
数据流去向:P1-09
数据流组成:I1-05+I1-06+I1-07
数据流编号:D1-19
数据流名称:留言信息
数据流来源:F1-04
数据流去向:P1-11
数据流组成:I1-01+I1-02+I1-41
(3) 处理逻辑定义:
名称:考生登录
编号:P1-02
简述:验证考生信息是否合法
输入:D1-03,D1-06
输出:D1-04,D1-07,D1-08
名称:在线模考
编号:P1-06
简述:考生阅读试题信息,进行答题
输入:D1-09
输出:D1-11
名称:管理
编号:P1-10
简述:教师对系统的后台操作进行管理
输入:D1-18
输出:D1-22,D1-14,D1-15,D1-19
(4) 数据存储的定义:
名称:考生信息
编号:F1-01
简述:考生的信息
流入的数据流:D1-02,D1-05,D1-22
流出的数据流:D1-06
鉴于本论文字数限制,在此处只写出部分数据项、数据流、处理逻辑、数据存储。提供给读者参考。
3.3 本章小结
本章简单介绍了英语四级在线考试系统的产生和发展状况,在可行性研究的基础上研究系统的数据流程,并对该系统进行需求分析,从而画出数据流图,写出了数据字典。经过对在线考试系统需求分析可知,各功能模块之间应该具有很好的衔接性,功能强大,操作起来十分方便,并且此软件可以高速工作,全面的改善学校管理质量,减少人力资源的投入,提高学校的办公效率。所以,本项目是一个适应各大高校需求的考试系统,具有一定的实际开发价值和使用价值。
第4章 总体设计
利用层次图来表示系统中各模块之间的关系。层次方框图是用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表各个数据的子集,最底层的各个矩形框代表组成这个数据的实际数据元素。
随着结构的精细化,层次方框图对数据结构也描绘得越来越详细,这种模式非常适合于需求分析阶段的需要。从对顶层信息的分类开始,沿着图中每条路径反复细化,直到确定了数据结构的全部细节为止。
4.1 系统模块总体设计
在系统总体设计阶段利用系统功能结构图来描述系统中各个模块如何化分、完成什么功能。在充分考虑各个模块的耦合性与内聚性后通过制作系统功能结构图合理地将整个系统分拆成多个模块。这样做使系统的开发变得目标清晰,每个模块的完成都是系统制作的里程碑,对于制作完成后的测试也提供了便利和依据。无论是为来的单元测试还是集成测试模块化的系统都将大大提高测试效率和错误改正的速度。
本系统从权限的角度可分为两类,分别是管理员,教师。根据用户类型的不同,允许使用不同的功能,可以访问不同的页面。本系统可分为前台管理和后台管理两部分。前台管理主要方便用户使用本系统,当用户通过注册并登录本系统后,不但可以浏览本系统的所有功能还可以拥用只有是本系统会员才可以使用的功能,即断电后继考的功能;而后台管理相对前台来说比较复而且管理起来也有一定困难。因为用户可以浏览的前台页面和能够操作的所有功能都是由后台完成并加以处理的,更重要的是当使用本系统的用户没有注册时仍然可以浏览本网页,只是不能完成对应的功能。这都需要后台对其进行限制。不同的使用者登录到后台的界面是不同的,面普通用户不能登录后台,只有老师才能登录。而且老师登录也只有是对批阅和成绩等一些信息进行管理。这都是管理员在后台对使用本系统的用户进行权限分配的。系统的前台和后台主要功能如下。
系统前台:考生的登陆与注册、考试的规则与流程、模拟练习、模拟考试、查询成绩、资料下载、历年真题练习、公告栏、个人中心、论坛交流。
系统后台:主要包括模块有:用户管理、站内邮箱管理、试题管理、试卷管理、评阅试卷、成绩管理、成绩分析等。
因此,实现本系统各功能模块如图4-1所示。
图4-1 系统功能结构图
系统各模块的主要功能如下:
1. 系统前台各模块的概要功能如下:
(1) 用户的登陆与注册:该模块用户需通过注册,然后在登录时输入相关身份验证信息,便可以参加考试。
(2) 考试的规则与流程:考试规则与流程模块,是为了让考生熟悉模考流程和规则制定相关文字性说明。
(3) 模拟练习:该模块的功能是用户可以根据自己的实际情况,选择要练习的题目和题型进行练习,并能根据答案检查自己对知识的掌握程度。
(4) 模拟考试:该模块的功能是用户根据自身需求对考卷难易程序进行选择,然后由系统自动生成一份模拟试卷,让考生进行模拟测试。
(5) 成绩查询:考生在考试后查看随时客观题试题答案。由教师评定本次主观考试题后,累计成绩。方可让考生查询总成绩。并显示对考生成绩的分析与评价。
(6) 资料下载:该模块提供学习资料,可供考生随时下载资料。
(7) 真题模拟练习:是为了方便用户进行历年真题进行测试。
(8) 个人中心:该模块主要包括用户的个人基本信息、收发站内信、对已考试卷的查询和对断电后继考的操作。
(9) 公告栏:随时更新最近消息给考生,如自动显示考试时间等。
(10) 学习交流:考生可以在网站上自由交流学习经验。
2. 系统后台管理各模块功能如下:
(1) 试题管理:主要包括教师对考题信息的增加、删除、更改、维护。
(2) 试卷管理:主要包括教师对自动生成的试卷信息的增加、删除、更改、维护。
(3) 通告管理:主要是对向用户发布信息时进行管理。
(4) 评阅试卷模块:教师对考生已完成的试卷进行评阅,阅卷时所用的客观题由系统自动阅卷,主观题由系统给出正确答案和学生的答案及该题分数,由教师进行评分。
(5) 成绩管理:教师发布考试成绩,对学生成绩进行分析统计。
(6) 成绩分析:可以根据多个考生的考试成绩,分析考生们现在掌握的程度。画出成绩分布图(柱状图和饼状图)。
(7) 用户管理:主要包括管理员对用户信息进行增加、删除、更改和权限的分配。
(8) 考试监控:系统管理员对正在进行考试的考生,通过监控中心可以随时查看当前的考试情况,如正在考试人数,已经交卷的人数,也可以查看在线考生的当前状态。
(9) 留言管理:该模块主要为管理员对考生的留言信息的回复、删除等管理。
4.2 数据库设计
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体的说,数据库设计是一个给定的应用环境,构造最优的用户的应用需求(信息要求和处理要求)。这个问题是我们在进行软件开发时期的主要研究方向。
4.2.1 数据库设计概述
数据库设计在一个管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对管理系统的效率及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。
由于信息结构复杂,应用环境多样,在相当长的一段时间内数据库设计主要采用手工试凑法。使用这种方法与设计人员的经验和水平有直接的关系,数据库设计成为一种技艺而不是工程技术,缺乏科学理论和工程方法的支持,软件的质量难以保证,常常是数据库运行一段时间后又不同程度地发现了各种问题,增加了系统维护的代价。十余年来,人们努力探索,提出了各种设计准则和规程,都属于规范设计法。
4.2.2 数据分析
数据分析过程同数据库的逻辑结构和物理结构密切相关,需要确定、编制、组织、筛选应用程序所使用的信息。它以一种能够分析和分类的方式来捕获用户的所有信息,这使得某一模型可以直接转化成数据库结构。
在为实体确定相关的属性过程中,也需要确定此实体的主键和索引,并且要确定在每个实体中怎样组织这些属性,确定属性的数据类型和它是否为空值。在高层次的描述过程中,还可以确定所有扩展属性信息,包括长度、格式、编辑风格、校验规则和初始值。单独实体的属性被组织起来,用户就能够开始以某一种组织方式来给实体分类。用户必须通过关系,来为实体分组的方式确定分类模式,这是抽象化的初始层,或者说是通过隐藏模糊的信息来提高对分析的理解,通过将数据分类成组,就产生了相关分组的不同类型,这样,更加易于观察和分析。
1. 考生注册、登录、准考证号等功能需要对考生信息建立数据表,其中的数据项可能包括考生ID、姓名、性别、密码等。
2. 在线模拟考试和在线练习等功能的数据需求量是很大的。本系统的核心数据都在此处。先是注册登录后再从随机生成试题到将试题存储到相应的试卷中。然后再答题客观题计算机自动手批阅,学生即后便可以看到答案而主观题则需要教师登录后台后才能批阅等。这一系列的操作至少需要五张数据表。
3. 本系统中的学子交流模块,用到的数据表仅一张即可。字段简单,无需关联。
4. 资料下载,是只对系统的部分数据进行下载并使用,其中包括历年真题下载和通告栏里的部分信息它单独存在本系统里,只需要管理员对其下载的内容进行管理即可。
5. 教师对后台试题的增、删、改、查用到的数据是试题类型表和试题详细信息表内的内容,其中的数据项包括试题类型ID、试题的出题教师、试题对应的文章ID等。
6. 教师对生成试卷的管理与两张数据表有关。分别为试卷基本信息表和试卷详细信息表。其中的数据项包括试卷ID,开始时间、考生分数等。
4.3 数据库的详细设计
在设计数据库时,应考虑以下事项:
1. 数据库的用途及该用途将如何影响设计,应创建符合用途的数据库计划。
2. 数据库规范化规则,防止数据库设计中出现错误。
3. 对数据完整性的保护。
4. 数据库和用户权限的安全要求。
5. 应用程序的性能需求,设计数据库时必须利用 Microsoft SQL Server 2005 中能够提高性能的功能。对于性能而言,在数据库大小和硬件配置之间权衡也是很重要的。
6. 数据库维护
综上所述,对于一个系统来说,数据库设计可以算是它的头。如果一个头没有做好,身子再完美也是有缺隐的。所以我在本系统的数据库设计阶段花了大量的时间来进行研究和设计。然后根据需求分析及模块划分综合当前使用工具和计算机使用水平等。采用Microsoft SQL Server 2005建立一个名为ExamOnline的数据库,它包括学生基本信息、教师基本信息、考卷基本信息、试题内容基本信息、试题类型等基本信息。这些基本信息表都是组成数据库的重要信息。
其数据库E-R图如图4-1所示。
图4-1数据库E-R图
实体联系说明:
1. 学生信息表和试卷基本信息表的关系是1:N,即一名学生可以模考多张试卷。由于试卷是随机生成,故一张随机生成的试卷,只能被一个考生使用。
2. 学生信息表和试卷详细信息表的关系是1:N,即一个学生只能查询参与的试卷。
3. 试卷基本信息表与试卷详细信息表的关系是1:1,即一套试卷的基本信息一定所以包含它的试卷详细信息表。
4. 教师信息表和试题内容表的关系是:1:N,即一名教师能够参与多套试题的编写。
5. 教师信息表和试卷基本表的关系是:1:N,即一名教师能够批改多份试卷。
6. 试题内容表和试题类型表的关系是:1:N,即一个试题类型可包括多个试题内容。
7. 试题内容表和试题基本信息表的关系是1:1,即一个试题内容只属于一个试题基本信息表内。
根据本系统对数据信息的需求,按照严格的命名规范。根据范式的规定。特将本系统的数据库命名为:ExamOnline。ExamOnline数据库中共分为8张数据表。
学生信息表主要包括学生的一些基本信息,如姓名、性别、编号、密码联系方式等具体如表4-1所示。
表4-1 student_message(学生信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | yid | 用户编号 | varchar | 50 |
2 | quanxian | 用户权限 | varchar | 3 |
3 | huname | 用户名 | varchar | 20 |
4 | hupass | 密码 | varchar | 20 |
5 | zname | 姓名 | varchar | 20 |
6 | xingbie | 性别 | varchar | 3 |
7 | shenfen | 身份证 | varchar | 20 |
8 | gongzuo | 工作单位 | varchar | 50 |
9 | xianjudi | 现居地 | varchar | 50 |
10 | dong | 移动电话 | varchar | 20 |
11 | ding | 固定电话 | varchar | 20 |
教师信息表主要是记录教师的姓名、编号和登录密码等基本信息。是为了方便管理员管理教师批阅卷里设计的具体实现如表4-2教师信息表所示。
表4-2 teacher_message(教师信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | teacher_id | 教师编号 | varchar | 50 |
2 | teacher_name | 教师姓名 | varchar | 20 |
3 | teacher_password | 教师密码 | varchar | 20 |
试题类型表主要是考虑到每个类型的分数不一样,而且每个试题类型的出题的数量不一样,所以单独成立一个表。具体实现如表4-3试题类型信息表所示。
表4-3 shiti_type(试题类型信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | type_id | 试题类型编号 | varchar | 50 |
2 | type_name | 试题类型名称 | varchar | 20 |
3 | type_score | 试题类型分数 | float | 8 |
4 | type_num | 试题类型数量 | float | 8 |
试题内容表主要是考试到出题的难度不同所以对其进行分配,具体实现如表4-4试题内容信息表所示。
表4-4 shiti_content(试题内容信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | message_id | 文章编号 | varchar | 50 |
2 | differ | 试题难度 | int | 5 |
3 | type_id | 试题类型编号 | int | 50 |
4 | teacher_name | 教师姓名 | varchar | 20 |
试题基本信息表是比较重要的表,它包括一套卷子里的原文、问题和问题下面所对应的选项同。具体实现如表4-5试题基本信息表所示。
表4-5 shiti_basicmessage(试题基本信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | st_id | 试题编号 | varchar | 50 |
2 | question | 试题问题 | varchar | 500 |
3 | option1 | 试题答案A | varchar | 500 |
4 | option2 | 试题答案B | varchar | 500 |
5 | option3 | 试题答案C | varchar | 500 |
6 | option4 | 试题答案D | varchar | 500 |
7 | answer | 试题答案 | varchar | 500 |
8 | message_id | 文章编号 | int | 8 |
试卷基本信息表主要是对产生随机试卷而进行的相关记录,包括试卷的名称、考试开始时间、结束时间、难度等。具体实现如表4-6试卷基本信息表所示。
表4-6 shijuan_basicmessage(试卷基本信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | sj_id | 试卷编号 | varchar | 50 |
2 | sjname | 试卷名称 | varchar | 20 |
3 | total_cent | 试卷总分 | float | 8 |
4 | sjdiff | 试卷难度 | int | 8 |
5 | teacher_name | 教师姓名 | varchar | 20 |
6 | create_time | 试卷创建时间 | datetime | 20 |
7 | end_time | 试卷结束时间 | datetime | 20 |
8 | sjtype | 试卷类型 | varchar | 10 |
试卷详细信息表对试卷信息进行具体记录,其中包括每道题的数量、分数和内容等信息具体实现如表4-7试卷详细信息表所示。
表4-7 shijuan_detailmessage(试卷详细信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | sjxx_id | 试卷详细信息编号 | varchar | 50 |
2 | sj_id | 试卷编号 | varchar | 50 |
3 | condition | 试卷状态 | varchar | 4 |
4 | total_grade | 试卷得分 | float | 8 |
5 | ti_content | 试卷内容编号 | varchar | 100 |
6 | stu_id | 考生编号 | varchar | 50 |
7 | zuowen | 作文内容 | varchar | 500 |
8 | listencount | 听力对题数量 | int | 8 |
9 | fastcount | 快速阅读对题数量 | int | 8 |
10 | readcount | 听力对题数量 | int | 8 |
11 | zuowencount | 作文分数 | int | 8 |
学生留言信息表主要为学子交流而设计的,具体实现如表4-8学生留言信息表所示。
表4-8 student_talk(学生留言信息表)
序号 | 英文名 | 中文名 | 类型 | 长度(字符) |
1 | student_id | 考生ID | varchar | 50 |
2 | student_name | 考生姓名 | varchar | 20 |
3 | student_talk | 考生留言 | varchar | 500 |
4.4 本章小结
本章主要是对系统在开发、运行过程中所必须的数据进行了定义,并对数据结构和数据关系进行了定义说明和规范描述,使系统能够最优化的使用数据,尽可能的减少冗余。在需求分析的基础之上规划出了系统的功能模块,以及在此分析基础上设计出的具体的、可以满足本系统全部需求的数据库。因为数据库在设计中的作用非常重要,所以在开发过程中,在考虑数据库上的时间相对要比较多。
第5章 详细设计
详细设计的主要任务是设计每个模块的实现。详细设计的目标有:确定开发工具、设计文件夹、设计类以及具体功能实现模块。
5.1 系统运行平台设置
对于一个软件来说,能够正常的运行是至关重要的。软件的正常运行需要建立在合适的环境平台上,稳定的环境平台不仅大大提高了软件的运行可行性,同时随着运行可行性的提高,企业实际获得的经济效益也成相对正比增长趋势,所以良好的运行平台对系统来说是至关重要的。
硬件环境:台式计算机(PC)一台,如表5-1所示。
表5-1 运行环境硬件配置
硬件 | 配置 |
处理器 | P4以上 |
内存 | 512M以上 |
硬盘空间 | 10G以上 |
软件环境:Windows 2000 Professional 或者 Windows 2000 Server操作系统以上,系统数据库采用:SQL Server 2005,其对应的开发工具包为:JDK-6、MyEclipse6.5,JSP服务器为:Tomcat6.0。
5.2 开发工具简介
对于系统来说,开发工具也显得尤为重要,合理、优化的开发工具不仅能够保证系统运行的顺利完成,同时也能够确保系统的的运行稳定性。本系统所采用的开发工具如下:
开发工具:MyEclipse6.5;
数据库:SQL Server 2005;开发语言:JAVA语言;开发模式:B/S模式;
JSP服务器:Tomcat6.0;
1. MyEclipse
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate,Spring。
在结构上,MyEclipse的特征可以被分为7类:
(1) J2EE模型
(2) WEB开发工具
(3) EJB开发工具
(4) 应用程序服务器的连接器
(5) J2EE项目部署服务
(6) 数据库服务
(7) MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
2. Tomcat
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
3. SQL Server 2005
SQL Server 2005是一种采用T-SQL语言,基于C/S模式的关系型数据库管理系统。它能够提供超大型系统所需的数据库服务,可在多个用户之间有效地分配可用资源,它不仅是一个巨大的数据容器,更是一个非常强大的数据处理工具。
SQL Server2005具有以下优点:
(1) 完全的浏览器服务器体系结构
这一结构可以有效地使用网络,提高网络带宽的利用率。因为在浏览器/服务器运算模式下,数据库操作都集中在服务器上进行,网络上传输的是用户的请求命令和数据库服务器的操作结果,而不是整个数据库文件,这样可以减少网络上的信息流量,从而提高网络的使用效率。
(2) 简单的图形化管理工具使系统管理更为直观方便
SQLEnterprise Manager是一个基于Windows图形用户接口的集成管理工具,利用它可完成SQL Server的许多配置管理工作。
(3) 隐含的并发控制能力
SQL Server利用锁定功能防止用户在查询和更新并发操作时相互发生冲突,锁定是隐含的,用户不必关心锁定过程。
(4) 丰富的编程接口工具
SQL Server提供了多种专用开发工具,其中Transact SQL与工业标准SQL语言兼容,并在其基础上加以扩充,使得它更适合事务处理方面工作的需要。此外,它还支持ODBC规范,可以使用ODBC访问SQL Server数据库。
(5) 多线程体系结构
SQL Server支持多线程操作,多用户并发访问时,系统在发生较小额外负担的情况下能够进行并行处理,从而减少内存需求,提高系统的吞吐量,在用户数量增加时,SQL Server的运行速度也不会明显变慢。
5.3 系统主界面设计
本系统主界面设计应用到了JS脚本语言和CSS样式。主要是用div来控制界面的显隐。系统主界面如图5-1所示:
图5-1 系统主界面图
1. 实现目标
简单、友好、方便操作的主页面。点击“注册”按钮可以直接进入注册页面。只有点击“登陆”按钮后才可以进行在线模拟考试。标题栏上的按钮均可点击后链接到对应的页面上。
2. 实现过程
页面名称:main.jsp
(1) 使用div技术。完成对主页面模板的建立。
(2) 在公告栏上用JS代码实现考试时间等。
(3) 在全部试题上,使用数据表shijuan_detailmessage和数据表shijuan_basicmessage,用SQL语句从数据库里查出考题名称和来源。
5.4 基本信息设置功能设计
本节对在线考试系统的主要模块进行了详细设计与实现过程的论述。对于每个模块的三层架构进行分析。并给出相应的实现类。本网站各个模块均采用了Spring框架注入和Struts2整合的方式实现,对各个模块进行了代码的设计和实施。其中,分别建立了清晰的service,action,domain类用来实现。具体实现类的功能代码在这里不一一介绍。每个功能类了分别定义了完成该功能模块的功能函数。同时,根据系统主要模块的程序流程分别附上相应的程序流程图供读者参考交流。
5.4.1 注册与登录模块设计与实现
当用户进行本系统时,能够浏览本系统的一些信息。而想要对这些信息进行操作时如果您是本系统的注册用户就会出现如下注册页面。
具体如图5-2所示,然后会生成准考证界面,具体如图5-3所示。
图5-2 用户注册界面 图5-3 生成准考证界面
如上图所示就是您所看到的注册界面,本页面如注册信息后面的提示文字是用JS脚本语言实现的,而当输入错误时验证信息是由AJAX技术实现的。因为AJAX技术可以只刷新页面,但不全部连接数据库这就大大减少了访问数据库的时间。也是本系统关键技术这一,在这儿里不做详细介绍。
当注册成功后,会自动弹出登录信息,而登录时有记住用户名”选项和忘记密码选项同学有本系统的一些简介。具体实现如图5-4所示。
图5-4 用户登录界面
1. 实现目标
输入正确的注册信息后,点击“确定”按钮。自动提示生成准考证号。考生可根据自动生成的准考证号和注册时候填写的密码,进行模拟考试。在注册过程中。必须填写规定的字段。否则编写的JS脚本就会提示你填写错误。如果不注册,不能进行模拟考试。只能浏览相应网站上的部分信息。
2. 实现过程
1) 页面名称:regist.jsp
2) 使用的数据表为student_message
3) 本模块有类2个,分别为service类和action类。service类下主要用来写sql查询语句的,与数据库直接打交道。
4) 编写验证JS脚本代码,如果填写字符位数与JS脚本不符或者必须填写的内容不填写就不能注册成功。例如Domain.password1.value.length<6 || Domain.password1.value.length>20位数不能少于6位,多于20位。
3. 本模块的程序流程图如图5-5所示:
图5-5 用户注册流程图
5.4.2 在线模拟考试模块设计与实现
本模块也是本系统前台比较核心的模块。因为它联系着注册、登录、答题等多个模块。具体实现是当您进行本网站时您需要登录才能对其进行操作。而当用户登录成功时也会重新返回主页面,并且主界面会显示已登录的用户名。然后才能进行答题,否则会直接进入登录界面。
用户登录成功后主界面如图5-6所示:
图5-6登录后主界面
当您重新登录后回到主界面时,您就可以对试题模块进行操作了,您可以根据您的喜欢好来选择题型。下面是模拟考试的介绍,具体如图5-7所示:
图5-7 在线模拟考试界面
1. 实现目标
本模块主要的功能是,在添入正确的注册信息后,点击“确定”按钮。自动提示生成准考证号。考生可根据自动生成的准考证号。然后可根据生成的准考证号,登录进入 阅读考试规则页面。只有“同意”模考规则后,方可进入模拟考试。
2. 实现过程
页面名称:exam.jsp
(1) 本模块使用的数据表分别为shiti_detailmessage,shiti_type,shiti_content。
(2) 本模块用到类3个,分别为com.yezi.Action包下的exam.java 类。com.yezi.Domain包下的studentexamDAO.java 类中randomGet ( ) ,getTi( )可以实现随机出题的功能。
(3) 根据本系统的需求,具体随机函数的编写依据如下原则:
(4) 根据试题的类型进行随机(随机的参数包括试题的类型编号,试题的数量),实现函数为randomGet ( )。
(5) 利用SQL语句进行查询,查询出所有类型题目的总数。
(6) 利用数组存放每种题型所对应的文章ID。
(7) 定义一个新数组,用来存放随机出来的文章。
(8) 在通过,getTi( )函数,实现试题的随机。同时,定义了集合类,以便存放不同类型的数据。
3. 在线模拟考试模块程序流程图如图5-8所示:
图5-8在线模拟考试模块程序流程图
5.4.3 试题管理模块设计与实现
试题管理模块是系统后台管理的重要模块之一。它主要是对试题类型进行管理,包括听力、快速阅读、写作、翻译等题型;而且还包括每道题的数量和难度,这样可以方便对成绩进行分析和统计。最重要的是它是对每种题型内容的增加或删除,从而确定数据库里面数据的准确性和冗余性。下面介绍的主要是对快速阅读的管理。
下面主要是管理员对题库管理中快速阅读题的增加功能,包括正确答案的添加方便批卷管理,具体实现如图5-9所示:
图5-9 试题管理页面
1. 实现目标
试题管理模块主要是教师对后台的试题库进行管理。其中,包括的试题库的增、删、改、查等操作。
2. 实现过程
页面名称:shiti_content.jsp
(1) 使用到3个数据表:teacher_message,shiti_type,shiti_content,shiti_basicmessage。
(2) 本模块根据实际需求,编写8个类,分别为com.yezi.Action包下的AddFastReadAction.Java,SelectDAO.java等。
(3) 在设计实现试题修改时,用到了Ajax技术。完成了无刷新,更改试题的功能。具体实现思想如下:
l 当鼠标点击要修改的试题时候,自动触发一个XMLHttpRequest对象。通过XMLHttpRequest对象,Ajax可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次刷新页面。
l 结合DIV层,即可以实现,通过Ajax方式直接在页面上可以实现修改数据库里的试题。
3. 试题管理模块程序流程图如图5-10所示:
图5-10 试题管理模块程序流程图
5.4.4 成绩统计与分析模块设计与实现
本模块的是成绩分析界面,用来对考生成绩分布进行分析。方便教师对今后出题的难易程度有更好的掌握。如图5-11所示。
图5-11 成绩分析统计页面
1. 实现目标
本模块是系统后台模块。主要完成成绩分析功能。根据考生们的成绩的变化,统计,分析。最后,自动生成统计图表。
2. 实现过程
(1) 使用的数据表为shijuan_basicmessage,shiti_type,shiti_content。
(2) 本模块设计了JfreeChart统计图表。具体实现步骤如下:
l 编写AnalysisAction.java类。一个实现分析考生成绩的类。
l 在通过统计类, SelectDAO.java显示相关统计信息。
l JfreeChart中设计JchartFactory,为完成图表的输出做准备。
l 设计util 包下相应实现类。
l 设置web.xml。
(3) 通过 <img src =”<%=graph%>”>在JSP页面中实现统计图表绘制。
5.5 本章小结
在本章中,主要是对在线考试系统的主要几个功能的实现作以论述,包括试题维护功能窗体、批阅试卷功能窗体、简答题考试功能窗体及系统信息管理功能窗体。重点叙述了系统的实现过程中几个代表性窗体的实现方法,让用户在应用本系统时不仅仅使用系统的每个功能模块,而且能更细致的了解每个功能实现的原理。
第6章 软件测试
经过需求分析、设计和编码等阶段的开发后,得到了源程序,开始进入到软件测试阶段。软件测试中考虑的问题基本上是系统管理中需要考虑的问题。
6.1 为什么要进行系统测试
随着经济的迅速发展,市场竞争的日益激烈,软件系统的综合性能成了企业生存和发展的关键因素。因此企业对软件的质量要求越来越高,不论软件的生产者还是软件的使用者,生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为开发的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希望选用优质的软件。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险。在一些关键应用 (如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御和核电站安全控制系统等) 中使用质量有问题的软件,还可能造成灾难性的后果。
6.2 软件测试概述
经过需求分析、设计和编码等阶段的开发后,得到了源程序,开始进入到软件测试阶段。然而,在测试之前的各阶段中都可能在软件产品中遗留下许多错误和缺陷,如果不及时找出这些错误和缺陷,并将其改正,这个软件产品就不能正常使用,甚至会导致巨大的损失。目前,程序的正确性证明尚未得到根本的解决,因此软件测试仍是发现软件中错误和缺陷的主要手段。
测试是一项很艰苦的工作,其工作量约占软件开发总工作量的40%以上,特别对一些关系到人的生命安全的软件。
6.2.1 测试的基本概念
1. 软件测试的目的
软件测试的目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷而执行程序,并不是发现软件中的全部错误。主要包括:
(1) 测试软件的功能,衡量是否满足实际需求。
(2) 测试软件的运行稳定性,衡量软件质量与可靠性。
(3) 测试软件安全性。
(4) 测试系统性能,发现系统性能瓶颈,并提出应对措施。
(5) 发现程序中存在的错误及功能欠缺之处,并进行修改完善。
2. 软件测试过程
软件测试一般采用自底向上,逐步验证的测试方法,通过单元测试、组合测试、确认测试、系统测试、验收测试等测试阶段,以不同角度、不同侧重点对软件进行测试,具体说明如下:
(1) 单元测试
单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,从模块级验证功能接口与设计是否一致,对模块的所有主要处理路径进行测试,并且与预期的结果进行对比,确保正确性。尤其重要的是,单元测试中还要对所有异常处理路径进行测试,保证模块具有良好的容错能力。
(2) 组合测试
组合测试也称集成测试或子系统测试,组合测试的对象是指己经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配并测试软件系统。
(3) 确认测试
确认测试是对通过组合测试的软件进行的,这些软件己经存于系统设备上,确认测试的目的是表明软件是可以工作的,并且符合软件需求分析中规定的全部功能和性能要求。
(4) 系统测试
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题,以及检测系统是否达到用户的实际要求。系统测试在整个系统范围内进行,包括软件、硬件以及网络。
(5) 用户验收测试
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。
3. 测试方法
测试的关键是测试用例的设计,其方法可分成两类:白盒测试和黑盒测试。
黑盒测试:如果已经知道了产品应该具有的功能,可以通过测试来检验每个功能是否都能正常使用;
白盒测试:如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
6.2.2 测试的步骤
模块测试:每个模块完成一个清晰定义的子功能,而且这个子功能和同级其他模块的功能之间没有相互依赖关系。模块测试主要发现编码和详细设计中产生的错误,通常采用白盒测试。
子系统测试:子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。子系统测试主要发现设计阶段产生的错误,通常采用黑盒测试。
系统测试:系统测试是把经过测试的子系统装配成一个完整的系统来测试。系统测试任务是检查软件的功能、性能及其他特征与用户的需求一致,它是以需求规格说明书(即需求规约)作为依据的测试。
6.3 本系统测试
在本系统的测试过程中,因为种种原因无法全部完成上述的所有测试过程和测试方法,现将所做具体测试如下:
1. 功能测试:为了保证每一个程序页面能够正确实现系统设计的功能,把考试相关的所有种类的基础数据、配置数据均输入系统,并对所有功能反复操作,以保证系统中页面功能的正确实现。在随机生成试题,组成相应试卷的测试中。打开多了客户端,以保证随机出来的试题具有不固定性。随机算法正确。下面只对一种题型进行具体说明如表6-1所示。
表6-1 出题功能测试
名称 | 内容 | 检测 | 原因 |
翻译 | You’d better take a sweater with you ____ (以防天气变冷) | 不符合 | 题库中已存在 |
翻译 | Throught the project, many people have received training and____(决定自己创业) | 通过 | 恭喜您,新题目可以使用 |
翻译 | Medical researchers are painfully aware that there are many problems ____(他们至今还没有答案) | 通过 | 恭喜您,新题目可以使用 |
2. 数据跟踪:功能测试之后,对系统测试产生的考试数据,包括试题库、试卷、考生答案、成绩等进行了跟踪检验,保证了数据的完整性和正确性。
3. 基本路径测试法
测试目标描述:该测试针对本系统的用户登录部分。用户登录系统时的,需要输入用户名和密码,当用户名或密码为空点击“登录”按钮时系统会弹出提示信息,用户则必须在登录的文本框中输入用户名和密码;当输入的用户名或密码中含有系统定义的非法字符时,则不允许进行系统;若输入的用户名长度超过15个字符则会提示重新输入用户名;当用户名和密码都符合系统要求时方可成功进行系统。
待测试的程序流程图如图6-1所示。
图6-1 用户登录程序流程图
用户登录过程的流图如图6-2所示。
图6-2 用户登录过程的流图
经计算图6-2所示流图的环形复杂度为7,因此共有7条独立路径,分别为:
路径1:1-2-3-2
路径2:1-2-3-4-2
路径3:1-2-3-4-5-2
路径4:1-2-3-4-5-6-7-6
路径5:1-2-3-4-5-6-7-8-6
路径6:1-2-3-4-5-6-7-8-9-10-12
路径7:1-2-3-4-5-6-7-8-9-11-12
由独立路径导出的测试用例表如表6-2所示。
表6-2 由独立路径导出的测试用例表
路径 | 测试用例 | 预期结果 |
路径1 | 用户名="" | 输入用户名 |
路径2 | 用户名="yymzzuchengcheng" | 重新输入用户名 |
路径3 | 用户名="zjyk\..’p" | 重新输入用户名 |
路径4 | 用户名="guahao" 密码="" | 输入密码 |
路径5 | 用户名="guahao" 密码="gh../?" | 重新输入密码 |
路径6 | 用户名="guahao" 密码="gh" | 成功进入系统 |
路径7 | 用户名="guahao" 密码="xxx" | 提示用户名或密码不正确 |
4. 测试:分别安排50人、100人、200人同时参加考试,测试并分析比较性能,验证信息服务压力情况和数据并发处理情况,以检验系统功能和性能能否达到系统设计的要求如表6-3所示。
表6-3 压力测试
考场 | 人数 | 压力数据统计 |
大型教室 | 200人 | 符合 |
中型教室 | 100人 | 符合 |
小型教室 | 50人 | 符合 |
6.4 本章小结
软件测试是软件开发中的重中之重,没有一点可以马虎的,在项目管理过程中,强调的是每个过程的每一个环节都要进行测试,保证系统在每个阶段可以控制。本章介绍了测试的目的和方法,并列出了本系统测试的3种方法:功能测试、数据跟踪测试和压力测试。在对新系统进行测试的过程中,也发现了很多问题,但经过及时的修正,并再次进行测试。经测试、改正、再测试这样一个过程,所有功能都基本符合设计要求。使得新系统已经符合预计的使用标准,其数据可靠有效。
第7章 系统主要功能使用说明
7.1 系统登录步骤
步骤一:用户首先进入到前台主界面,如图7-1所示。用鼠标点击后台管理,进入到登录界面。
图7-1 主界面
步骤二:进入到后台登录界面后,首先输入用户注册的用户名和密码及验证码,如图7-2所示。
图7-2 后台登陆界面
步骤三:点击”登陆”按钮进行登陆验证,如果输入的账号信息正确,则会进入相应权限的系统主界面,表明成功登陆系统,并在界面的左上角显示当前登陆的操作员姓名,如果输入的账号不存在或密码错误,则会给出错误提示信息。
7.2 管理员后台维护功能
步骤一:单击左侧面板的”英语四级在线考试系统菜单”对其功能进行管理,如图7-3所示。
图7-3 后台维护界面
步骤二:在弹出的下拉列表中可以对管理员的所有功能进行操像权限管理。
步骤三:用鼠标点击任意按钮,都可以对其行管理。在这里不一一介绍。
7.3 站内邮箱设置功能
步骤一:用鼠标单击左侧面板的”站内邮箱”选项卡。
步骤二:在弹出的下拉列表中选”收件箱”选项卡,如图7-4所示。
图7-4收件箱界面
步骤三:然后点击”查看详情”选项卡,会出现如图7-5所示查看收件箱界面。
图7-5查看收件箱内容界面
7.4 断电继考功能
步骤一:当断电重新启机后进入系统主页面,然后用鼠标点击”个人中心”选项卡,如图7-6所示。
图7-6点击个人中心界面
步骤二:然后进入会员中心界面,如图7-7。
图7-7会员中心界面
步骤三:然后点击”未完成试卷”选项卡,会出现如图7-8所示。
图7-8继考界面
7.5 本章小结
本章主要介绍了本系统的一些主要功能的实现。如登录、注册等都是一个系统最基本的功能。其中本章还介绍了本系统比较核心的功能就是断电后,考生能够继续查看考卷然后续考的功能。其它功能在这里不一一介绍了。
结 论
本论文主要阐述了对国内大学生英语四级在线考试系统的研究水平与现状。同时,从总体上介绍了英语四级在线考试系统分析和设计,介绍了各主要功能模块及系统用到的主要技术和算法。
本系统设计至今,实现了英语四级在线考试系统预期的所有基本功能,教师可以进行试题管理、试卷管理,成绩批阅,成绩统计和分析等,学生可以通过本网站进行模拟练习、真题练习、模拟考试、成绩查询、互发站内信、论坛交流等。
由于开发时间和作者能力有限,本系统只是初步实现了在线考试的基本模块,本系统还有很多扩展空间,系统的不足之处主要表现在:
1.试题库建设不太规范。
2.考试监控有待进一步完善。
3.系统只限于客观题的自动阅卷,主观题需教师手工完成。
4.由于条件有限,系统的开发具有一定的模拟性质,无法在实际的应用环境观察它的运行状况。
因此,在今后的工作中,对本系统还应在一些方面予以改进,未来要做的工作主要有:
1. 完善数据库的设计,如试题、试卷库的设计,使之更合理,另外有一些试题可能需要存储显示图形,这也是下一步工作中要解决的问题。
2. 加强组卷功能,改进组卷算法,增加自适应的遗传组卷算法,真正做到“优胜劣汰”。
进一步保证系统的安全性。
致 谢
在老师和同学的支持与帮助之下,我顺利地完成了本次毕业设计。在毕业设计的这段日子里,我所获得的知识将是大学期间最珍贵的。
本次毕业设计是在XXX老师的精心指导下完成的,导师渊博的知识、严谨的治学态度深深的影响着我,尤其是老师的平易近人更让我多了一份信心。她无论在理论上还是在实践中,都给予我很大的帮助,使我的毕业设计逐步地趋于完善。在此期间,我不仅学到了许多新的知识和解决问题的方法,而且也开阔了视野,提高了解决问题的能力。在此,我对刘星妍老师在毕业设计期间给予的指导和帮助表示衷心的感谢。同时也感谢其他老师在此期间的关怀和帮助,以及学院为我提供良好的毕业设计环境。最后感谢在毕业设计中为我提供帮助的众多益友和同学,以及在设计中被我引用或参考的论著的作者。
再次感谢在本次毕业设计中帮助过我的所有老师和同学!
参考文献
1 辛运帏,饶一梅.Java程序设计(第二版).清华大学出版社,2006:8-10
2 刘海.myEclipse核心编程Web开发.人民邮电出版社,2007:56-164
3 郝安林.JSP从入门到精通. 电子工业出版社. 2008:210-240
4 Liu.myEclipse the core of the development of Web programming Posts & Telecom Press,2007,5(4): 4-56
5 Bill Venners.Inside the Java Virtual Machine.Sun.2003,10(3):292-298
6 Bruce Eckel.Thinking in Java (4th Edition) .Prentice Hall PTR,2007: 58-97
7 扎卡斯著,曹力 译.JavaScrip高级程序设计.人民邮电出版社.2006:380-412
8 闪四清.SQL Server 2005基础教程. 清华大学出版社.2007:200-251
9 陈鹏,程勇.J2EE项目开发实用案例.科学出版社,2006:21-56
10 陈平,褚华.软件设计师教程.第二版.清华大学出版社.2006:365-412
11 张晓坤.java 经典实例.中国电力出版社,2002:112-231
12 王珊,陈红.数据库系统原理教程.清华大学出版社.2006:231-261
13 张海藩.软件工程导论.清华大学出版社,2003:86-165
14 郑人杰,殷人昆.实用软件工程.第二版.清华大学出版社.2001:149-182
15 孙卫琴.JAVA面向对象编程.电子工业出版社.2006:221-285
16 萨师煊.数据库系统概论.高等教育出版社,2000:120-172
17 杨垒.精通Eclips web开发.人民邮电出版社,2006:125-196
18 张孝祥.深入体验java web开发内幕.电子工业出版社,2006:54-145
19 孙卫琴.Tomcat与java web开发技术详解.电子工业出版社,2004:4-1
20 杨正华,张秋生.网页编程导学.清华大学出版社,2003:135-168