基于JAVA 的网络在线考试的体系结构和具体设计

上传人:仙*** 文档编号:28606035 上传时间:2021-09-02 格式:DOC 页数:58 大小:1.18MB
返回 下载 相关 举报
基于JAVA 的网络在线考试的体系结构和具体设计_第1页
第1页 / 共58页
基于JAVA 的网络在线考试的体系结构和具体设计_第2页
第2页 / 共58页
基于JAVA 的网络在线考试的体系结构和具体设计_第3页
第3页 / 共58页
点击查看更多>>
资源描述
重庆邮电大学本科毕业设计(论文)摘 要本文阐述了一个基于 WEB 的网络在线考试的体系结构和具体设计以及实现过程。系统采用的三层体系结构:表示层、业务层、数据库操作层开发,即前端由JSP 网页实现表现逻辑,中间使用 Java Bean 的组件实现系统内部复杂的业务逻辑,后端使用 SQL Server 2000 数据库实现数据逻辑。系统提出了网络在线考试系统的解决方案,实现了题目分类的特殊原则:考试题目,试题类型,分数定制等。系统可以完成试题的随机抽取,试卷的自动生成。试卷的发布等由后台控制中心来完成,考试结束时系统可以根据考生的答题情况给出分数。系统采用 B/S 模式设计,符合目前的网络趋势,具有可操作性。系统在 Windows XP 平台下开发成功。【关键字】题库管理 在线考试 JSP SQL Server 2000ABSTRACTThis article has explained a system structure based on exam administrative system of WEB and designss and realizess process. Three layers of system structure that the system adopts:JSP-JavaBean-SQL Server 2000 develops, and with namelying bow is realized the show logic by JSPs page, and the vocational work logic complicated inside the package realization system of Java Bean is used in the centre, and SQL Servers 2000 data bases realizations data logics are used to the back end.The System puts forward the complete settlement scheme of online examination system of cross-domain communication, and realized the classified special principle of title: the fraction etc is had something made to order by proposition person oneself degree of difficulty examination questions type examination title. The system can accomplish having something made to order of examination paper, the voluntarily formation of examination paper, and can look at in advance to the examination paper, and revise. The examination paper issues when accomplishing by the control center. Supervises center control at candidate for an entrance examinations examination course by the examination, also can be to candidate for an entrance examination the examination state is prohibited or is permitted controls, the examination end is given a mark, and the system can be according to the answer circumstances of candidate for an entrance examination to a fraction. The system adopts B / Ss model design, and can add up the functions such as analysis etc to the frequency that the examination questions were drawn. The system developed successfully under the terrace of Windows XP.【Key words】Question Management Exam On-line JSP SQL Server 2000目 录摘 要IABSTRACTII目 录III前 言1第一章 系统概述3第一节 课题背景与意义3一、课题开发背景3二、课题开发意义3第二节 课题开发工具与环境4一、JAVA和JSP技术简介4二、SQL Server 2000 服务器SQL Server概述5三、Tomcat 6.0服务器架构6四、总体开发7第二章 系统分析8第一节 系统概述8一、系统分析原则与方针8二、系统需求8第二节 系统功能分析9一、 可行性分析:9二、 具体功能分析:9第三节 本章小结10第三章 系统设计11第一节 数据库设计11一、数据库总体设计11二、数据库概念设计11三、数据库逻辑设计13第二节 系统总体设计17一、总体设计17二、系统逻辑处理18三、总体流程图19第三节功能设计21一、 系统登录21二、 考生注册22三、 在线考试模块22四、 后台管理模块24第四节 本章小结25第四章系统实现与调试26第一节 系统实现概论26一、 结构化程序编码原则26二、 系统主界面26三、 系统功能菜单27第二节 系统功能实现27一、 文件结构图27二、 文件详细结构图28三、 系统具体文件28第三节 关键技术实现31一、web.xml31二、 数据库db_netExam连接部分31第四节 调试过程中的常见错误32一、JDK配置错误32二、SQL空指针异常33三、数据库连接错误33第五节 本章小结34第五章系统测试及结果分析35第一节 系统测试综述35一、系统测试综述35二、具体功能模块测试35第二节 本章小结39第六章结束语40致 谢41参考文献42附 录43一、英文原文:43二、英文翻译:4941前 言近几年来,随着Internet的崛起,远程教育开始发展,普及网络教育的呼声日益高涨,其势头不亚于电子商务。联合国教科文组织1998年在其一项调查报告中指出:无论是发达国家还是发展中国家,都不同程度存在教育滞后于现实需要的问题,特别是第三世界国家。而普及远程教育,尤其是网络教育,不仅是解决这一问题的有效途径,而且将成为革新传统教育模式的重要动力。中国的网络教育也随Internet的发展而同步增长,同时,网络教育也为中国的教育事业开辟了新的天地,其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。随着Internet的相关技术的发展,特别是Web技术的出现,人们开始致力于研究和开发基于Internet考试系统,这也大大推动了远程教育的发展。术语列表:JSP:(Java Server Pages),JSP是一种基于Java的技术,用来产生跨平台和跨Web服务器的动态页面。JDBC:(Java Database Connectivity),Java数据库连接。它主要是一套让你访问数据库的API,程序人员可以利用JDBC API来执行SQL语句。Servlet: Servlet可以称之为“服务器小程序”,与Java application不同,它没有main方法,而是用一些特定的方法用于启动、执行和退出。通过使用Servlet,可以与运行与客户端的Applet进行交互,也可以直接与HTML页进行交互。JavaBeans: JavaBeans是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。应用程序开发者可以通过支持JavaBeans的开发工具,直接使用现成的JavaBeans,也可以在开发工具容器中,对组件进行必要的修改、测试而不必编写和编译程序。在Java模型中,组件可以修改或与其他组件组合以生成新组件或完整的应用程序。HTML:(Hypertext Markup Language)超文本标记语言,它是组织多媒体文档的重要语言,它不仅用来编写Web网页,而且可以使用它来制作光盘上的多媒体节目。HTML可用来编排文档、创建列表、建立链接等等。XML:(extensible Markup Language)可扩展标记语言,它是一种具有数据描述功能(Meta-language)、高度结构性及可验证性的语言。SQL:(Structured Query Language),结构化查询语言。SQL语言地任务就是与各种数据库建立关系,SQL语言是关系型数据库的标准语言,大多数关系型数据库管理系统都支持SQL语言并采用了SQL的语言标准。MySQL:MySQL是一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。按照使用又可以分为DML(Data Manipulation Language),即数据操作语言和DDL(Data Definition Language)。第一章 系统概述第一节 课题背景与意义一、课题开发背景传统的考试从出题、组卷、印刷,到试卷分发、答题、收卷,再到判卷、公布成绩,整个过程都需要人工参与,周期长,工作量大,容易出错,还要有适当的保密工作,使得整个考试的成本较大。所以,实现无纸化、网络化、自动化的计算机考试系统,具有深远的现实意义和实用价值。网络考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程。因此网络考试系统是电子化教学不可缺少的一个重要环节。网络考试系统的实现技术有多种,可以采用传统的客户机/服务器型的 MIS 型架构,Web 技术超越了传统的客户机/服务器两层结构,采用了三层体系结构:用户界面层/事务层/数据库层,因此 Web 结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器(如果条件允许,还是应该把这两层分开在不同的计算机上),所以,本文所讨论的考试系统采用Web技术实现。二、课题开发意义用Browser/Web模式来设计考试系统比较合适,服务器端我们采用SQL SERVER数据库系统和JSP组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和管理。利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用JAVA Server Page 技术,开发了基于B/S模式多用户在线考试系统这一程序。它运用方便、操作简单,效率很高(同时,它要求计算机配置也很高,尤其是服务器端).基于Web技术的网络考试系统可以借助于遍布全球的因特网进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。考生通过姓名、准考证号码和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,采用网络考试方式将是以后考试发展的趋势。第二节 课题开发工具与环境一、JAVA和JSP技术简介1、将内容的生成和显示进行分离用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans 中,所以 Web 管理人员和页面设计者,能够编辑和使用 JSP 页面,而不影响内容的生成。在服务器 端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans 组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。2、可重用组件大多数 JSP 页面依赖于可重用的、跨平台的组件(JavaBeans)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。3、采用标识Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的 XML 标识中进行动态内容生成所需要的。标准的 JSP 标识能够访问和实例化JavaBeans 组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。4、适应平台几乎所有平台都支持 Java,JSPJavaBeans 几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP 和 JavaBeans 甚至不用重新编译,因为Java 字节码都是标准的与平台无关的。5、数据库连接Java 中连接数据库的技术是 JDBC,Java 程序通过 JDBC 驱动程序与数据库相连,执行查询、提取数据等操作。Sun 公司还开发了 JDBCODBC bridge,利用此技术 Java 程序可以访问带有 ODBC 驱动程序的数据库,目前大多数数据库系统都带有 ODBC 驱动程序,所以Java 程序能访问诸如 Oracle、Sybase、MS SQL Server 和 MS Access 等数据库。二、SQL Server 2000 服务器SQL Server概述SQL Server 是美国Microsoft公司开发的一个关系型数据库管理系统,是目前世界上最著名的关系数据库管理系统之一。它在性能和可扩展方面确立了世界领先的地位,是一套完全的数据库和数据分析解决方案,使用户可以快速创建下一代的可扩展电子商务和数据仓库解决方案。Microsoft SQL Server 2000 在数据库服务器自动调整和自动管理技术方面在数据库领域中处于领先地位,使客户可以集中精力处理商业战略上的问题,而不是去细微调整数据库服务器的各项参数。SQL Server 的主要功能:数据库管理功能作为数据库管理系统,SQL Server 自然应该具有数据库管理功能。它的数据库由包含数据的表集合和其他对象(如视图、索引、存储过程和触发器)组成,目的是为执行与数据有关的活动提供支持。存储在数据库中的数据通常与特定的主题或过程相关。数据仓库功能SQL Server 2000提供了一套全新的综合分析服务系统。分析服务为商业活动提供了集成的OLAP服务和数据挖掘功能。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势。SQL Server针对包括集成数据挖掘、OLAP服务、安全性服务及通过Internet对多维数据集进行访问和链接分析提供新的数据仓库功能。电子商务SQL Server 不仅提供电子商务所需的可伸缩性与可扩展性之外,还提供了丰富的数据库编程能力,以确保系统的协同工作和灵活性。SQL Server2000 不仅支持集中化数据库管理功能,而且还最大程度地实现了管理与优化工作的自动化,从而,减轻了有关管理人员的负担。完备的 Web 功能SQL Server2000允许通过HTTP协议,在 Web上进行高性能、基于标准的安全访问。基于Web的客户端拥有访问关系型数据存储和访问分析服务的能力。分布式数据复制功能它可以将一个数据库中的数据复制到通过局域网、广域网或 Internet 网络连接的不同地点服务器或同一服务器中的不同数据库中,并能够自动保持这些数据同步,使各个数据库中具有相同的数据。三、Tomcat 6.0服务器架构Tomcat 6.0由Apache 组织开发的一种常用 Web 服务器,提供 Web 服务。一种 JSP 引擎,本身具有 Web 功能,可以作为独立的 Web 服务器使用。但是,在作为 Web 服务器方面,Tomcat 处理静态 HTML 页面时不如 Apache 迅速,也没有Apache 健壮,一般选用 Tomcat 与 Apache 结合的方式,让后者对网站的静态页面的请求提供服务,而 Tomcat 作为专用的 JSP 引擎,提供 JSP 解析,得以更好的性能。1JDK 的安装与配置(1)找到 path 变量后单击编辑按钮;弹出编辑系统变量对话框。在变 量值文本框中输入“c:jdkbin”,然后单击确定按钮。同时新建 CLASSPATH 变量;(2)在系统变量选项组中单击新建按钮,在变量名文本框中输入“CLASSPATH”, 在 变量值文本框中输入“ c:jdklibtools.jar ;c:jdklibdt.jar;”然后单击确定按钮。(3)用同样的方法把 c:jdk 添加到 JAVA_HOME 环境变量中;2TOMCAT 的安装与配置在这里我们设默认安装目录为 c:Tomcat 安装完毕,更改环境变量,用同样的方法把 c:Tomcat 添加到 TOMCAT_HOME 环境变量中。启动 Tomcat,在浏览器 的地址下拉列表框中输入“http:/localhost:8080/”,如果看到的是在左上 方有一只可爱的小猫,则表示 Tomcat 安装成功。四、总体开发1、JAVA 三层模式架构:界面表示层:Web 层,JSP+JavaScript+HTML(XML);业务逻辑层:JSP(JavaBeans);数据存储层:SQL SERVER 2000。2、开发工具采用 Eclipse,Dream weaver 2004 网页编辑工具 数据库 SQL Server2000,服务器:Apache Tomcat 6.0。 Java 中连接数据库的技术是 JDBC3、系统总体架构网络在线考试系统采用 B/S 结构设计用户系统考题考试管理系统Tomcat6.0以上服务器SQL Server2000 以上版本Windows XP ,2000, 98, Linux ,Unix 等版本运行基于 JAVA 的强大网络功能以及 JSP 的灵活性,易维护性图1.1 系统总体架构第二章 系统分析第一节 系统概述一、系统分析原则与方针采用结构化系统分析的方法,建立新系统的逻辑模型,此模型尽量避免使用计算机术语,便于企业的计算机人员与系统开发人员的共同讨论。本系统的结构是层次化的暗盒模块结构。对高层模块,将采用以事物为中心的设计策略,把一个大的复杂的系统逐步分解成小的相对简单的暗盒模块,对低层模块,采用以变换为中心的设计策略。因此,为了提高模块的内聚性,降低模块的耦合程度,数据库的设计原则是把它作为模块间的邮政信箱,从而为实现数据共享由提高了模块的独立性,使系统具有很高的可修改性。二、系统需求考生登陆系统在线考试提交显示成绩部门和管理命题人相关部门生成试卷系统控制网络在线考试是在网络上的模拟考试应用程序,它维护着一个数据库,存储着考生,题库,管理员信息,主要包括命题人出题,部门管理,系统管理,学生在线考试,自动评分以及相关的系统维护功能。题库图2.1 系统功能流程图第二节 系统功能分析一、 可行性分析:1技术可行性:本系统的配置(Tomcat 与 Microsoft SQL Server 2000)在这种中小规模的情况下能够提供较快的数据访问,技术上可行。2经济可行性:系统的配置,不需要昂贵的 EJB 服务器,除 Microsoft SQL Server 2000 外大部分软件都是可以免费获得,开发成本低。3操作可行性:访问系统的主要有两种:学生,管理员。目前资源的利用情况和可操作性,只需少量的对数据库中的表的直接操作就可以实现系统的完整、稳定的运行,不会造成系统的巨大压力。二、 具体功能分析:系统前台系统后台考生注册在线考试退出系统修改个人信息成绩查询考试规则显示考试成绩自动阅卷开始考试准备考试选择考试 课程管理员信息管理考生信息管理考生成绩查询退出后台管理考试题目管理套题信息管理课程信息管理图2.2 系统功能结构图1系统前台:考生注册、查询成绩、修改个人信息、退出系统。2系统后台:管理员信息管理、考生信息管理、考生成绩查询、课程信息管理、套题信息管理、考试题目管理、退出后台管理。系统后台模块大致分析:1 用户管理: (1)考生管理主要完成注册,登录系统,查询成绩,进入考试等。(2)管理员管理主要是完成系统管理员的添加,删除,权限的修改,考试的信息的维护添加,试题的管理,学生信息的查询等。2 考试管理:命题人可根据自己的权限对试题进行定制,可以对考试科目的标题,题的类型(本系统试题类型分为:单选题,多选题,判断题,填空题),题目数量,题目的问题以及选项个数,题目的难易程度,分数等进行控制,也可以根据自己的需要从现有题库中随机抽取需要的试题的类型,试题的数量,难易程度,分数等进行控制。对已经定制的试卷进行预览,并随时修改。第三节 本章小结本系统使用 JSP 技术作为表现手段,服务器采用 Tomcat6.0 作为JSP引擎,系统业务逻辑由 Java Bean 组件完成,使用 JDBC-ODBC桥连接方式访问数据库。由于系统测试需要成熟的数据库支持,因此系统采用 SQL server 2000 数据库作为数据库服务器。第三章 系统设计第一节 数据库设计一、数据库总体设计本系统采用关系型数据库模式,因此数据库由若干个二维表(即数据文件)构成。本系统的数据文件全为数据数据。数据的保存方法有很多种,最长用的方式是使用DBMS(数据库管理系统)。市场上流行的 DBMS 主要有 Oracle、SYBASE、MS SQL Server、DB2、Informix 等,而 MS SQL Server 可作为中小型数据管理系统的首选。根据以上分析,本系统后台数据库决定采用 MS SQL Server 为后台数据库。本系统的数据表主要由两个部分组成:系统表和功能表。系统表是该系统中存储基本数据信息表,例如:考生信息表(tb_Student)、管理员信息表(tb_manager)。功能表是系统为了完成一定的功能,要求把一定的数据信息存储在数据库中,这就需要专门新建表来存储相应信息。例如:、课程信息表(tb_Lesson)、试题信息表(tb_Questions)、考生成绩表(tb_StuResult)、套题表(tb_TaoTi)等。二、数据库概念设计根据对系统所做的需求分析和总体设计,可以规划出要使用的数据库实体分别为考生信息实体、管理员信息实体、课程信息实体、套题实体、考试题目实体和考生成绩实体。1、考生信息实体:考生信息实体包括编号、姓名、密码、性别、注册时间、提示问题、问题答案、专业和身份证属性。姓名身份证号码编号注册时间专业问题答案提示问题性别密码考生信息图3.1 考生信息实体图2、套题实体:套题实体包括编号、名称、所属课程和添加时间等属性。编号所属课程添加时间套题名称套题图3.2 套题信息实体图3、考试题目实体:考试题目实体包括编号、问题类型、所属课程、所属套题、选项A、选项B、选项C、选项D、添加时间、正确答案和备注等属性。编号正确答案备注添加时间选项D选项C选项B选项A所属套题所属课程问题类型考试题目图3.3 考试题目实体图三、数据库逻辑设计根据概念设计,可以创建与实体对应的数据表和关系。本系统共包含6张数据表:表3.1 数据库设计所需的表表名注释tb_Lesson课程表tb_manager管理员表tb_Questions试题表tb_Student考生表tb_StuResult考试成绩表tb_TaoTi套题表各数据表的结构:1 名称:管理员信息表标识:tb_manager 数据来源:前台页面取得。表3.2管理员信息表字段名数据类型及长度说明备注IDBigint(8)准考证号码主键NameVarchar(30)姓名不允许为空PWDVarchar(30)密码不允许为空图3.4 管理员信息表2名称:考生信息表标识:tb_Student数据来源:前台页面取得。表3.3考生信息表字段名数据类型及长度说明备注IDVarchar(16)准考证号主关键字NameVarchar(20)姓名不允许为空PwdVarchar(20)密码不允许为空SexVarchar(2)性别不允许为空JointimeDatetime(8)注册时间不允许为空QuestionVarchar(50)密码提示问题不允许为空AnswerVarchar(50)密码回答答案不允许为空ProfessionVarchar(30)专业允许为空cardNoVarchar(18)身份证号码不允许为空图3.5 考生信息表3考生成绩表标识:tb_StuResult数据来源:前台页面取得。表3.4考生成绩表字段名数据类型及长度说明备注IDBigint(8)管理员账号主关键字StuidVarchar(16)准考证号不允许为空WhichlessonVarchar(60)所属课程不允许为空RessingleVarchar(4)单选题成绩不允许为空ResmoreDatetime(4)多选题成绩不允许为空RestotalVarchar(4)总成绩允许为空JointimeVarchar(8)注册时间不允许为空图3.6 考生成绩表4考试科目信息表标识:tb_Lesson数据来源:前台页面取得。表3.5考试科目信息表字段名数据类型及长度说明备注IDBigint(8)管理员账号主键NameVarchar(60)科目名称不允许为空Jointimedatetime(8)加入时间不允许为空图3.7 考试科目信息表5套题表标识:tb_TaoTi数据来源:前台页面取得。表3.6 套题表字段名数据类型及长度说明备注IDBigint(8)套题标识主键NameVarchar(50)套题名称不允许为空LessonIDBigint(8)课程编号不允许为空JointimeDatetime(8)加入时间不允许为空图3.8 考试套题表6试题信息表标识:tb_Questions数据来源:前台页面取得。表3.7试题信息表字段名数据类型及长度说明备注IDBigint(8)管理员账号主关键字SubjectVarchar(50)所属课程不允许为空Typechar(6)题目类型不允许为空JointimeDatetime(8)加入时间不允许为空LessonIDInt(4)课程编号不允许为空taoTiIDBigint(8)套题编号不允许为空optionAVarchar(50)选项A不允许为空OptionBVarchar(50)选项B不允许为空OptionCVarchar(50)选项C不允许为空OptionDVarchar(50)选项D不允许为空AnswerVarchar(10)答案不允许为空NoteVarchar(50)备注允许为空图3.9试题信息表数据表之间的关系设计:图3.10 各数据表之间的关系第二节 系统总体设计一、总体设计本系统设计遵循结构化设计原则:1. 模块独立性、适度性原则 模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。模块独立性是通过指定具有单一功能并且和其它模块没有过多联系的模块来实现的。模块独立性是由内聚性和偶合性两个定性指标来度量的。内聚性是度量一个模块功能强度的一个相对指标。偶合性是用来度量模块之间的相互联系的程度。模块过大时,模块的可理解性会迅速下降。另外对过大的模块分解时,也不 应降低模块的独立性。因为当对一个大的模块分解时,可能会增加模块间的依赖。2. 系统结构深度、宽度、扇出、扇入适当原则 深度表示从根模块到最低层模块的层数;宽度表示控制的总分布;扇出数指由一模块直接控制的其它模块数;扇入数指有多少模块直接控制一个给定的模块。好的系统结构通常顶层扇出比较大,中间扇出比较少,底层模块大扇入。3. 模块的作用范围保持在该模块的控制范围内 模块的作用范围是指受该模块内一个判定影响的所有模块的集合。模块的控制范围是指这个模块本身以及所有直接或者间接从属于它的模块的集合。4. 系统模块的单入口,单出口原则这一准则是要防止内容耦合性。如果模块都是从顶部入口,从底部出口的话,这样系统更容易理解和维护。如可以避免病态连接(病态连接关系是指从中间进入或者访问一个模块)等。5. 模块结果可预测原则如果一个模块可以当作一个黑箱,即只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。6. 数据一致性原则二、系统逻辑处理系统采用三层结构,在客户端用户通过浏览器完成数据下载与模拟操作,浏览器端的表现逻辑通过 JSP 网页完成。而系统内部复杂的业务逻辑主要通过Java Bean 的组件(Component)实现,Java Bean 组件在 WWW 服务器上运行,通过 JSP 返回到客户浏览器。通过表现逻辑与业务逻辑的分离,使网页内容简洁,系统的可维护性和可扩充性增强。在服务器端,系统使用 JDBC 中间件访问数据库,数据库服务器定义了本系统所需要的事务逻辑和数据逻辑。图3.11 系统逻辑关系图本系统使用 JSP 技术作为表现手段,服务器采用 Tomcat 6.0 作为 JSP 引擎,系统业务逻辑由 Java Bean 组件完成,使用 JDBC-ODBC 桥连接方式访问数据库。由于系统测试需要成熟的数据库支持,因此系统采用 SQL SERVER 2000数据库作为数据库服务器。三、总体流程图1 系统业务流程图:图3.12 系统流程图2 库输出逻辑流程图图3.13库输出逻辑流程图3 Java Bean 逻辑流程图图3.14 Java Bean 逻辑流程图第三节功能设计题库管理模块包括:系统登录、考生注册、在线考试、后台管理四个模块。一、 系统登录输入: 管理员账号或者学生的准考证号和对应的密码。 处理:在数据库中查询,查找该用户名是否存在,如果存在则在数据库中查找该用户名对应的密码是否正确,再根据个人的权限进入相应的业务范围和正常的流程,同时记录人员的 session 这样在没退出系统之前可以在自己的权限范围内操作,否则可能因长时间没有任何操作会被注销,需要重新登录系统如果没有找到该用户或密码错误则需要重新登录,如下图所示: 输出:相应权限的页面。图3.15 系统登录关系图二、 考生注册考生注册单元根据个人的实际情况注册主要是用来考试,对考生的自然信息没有联系,考生注册时学号和准考证号不能够重复,一个学号只能注册一次,应有相应的检测措施避免非法注册。1、设计添加注册信息的页面图3.16 考生注册2、保存考生的注册信息需要编写一个insert方法。在该方法中,首先从数据表tb_student中查询输入的身份证是否存在,如果存在,将标志变量设置为2;否则,先生成准考证号,再将输入的信息保存到考生信息表中,并将生成的准考证号赋给标志变量,最后返回该标志变量。三、 在线考试模块1、在线考试模块的概述在线考试模块的主要功能是允许考生在网站上针对指定的课程进行考试。在该模块中,考生首先需要阅读考试规则,在同意后,才能选择考试课程,在选择课程后,系统将随机抽取 试题,然后进入考试页面进行答题,当提交试卷时系统将自动进行评分,并给出考试成绩。系统流程如下:结束开始同意规则准备考试选择考试课程随机取题提交试卷显示考试成绩否是是否图3.17 在线考试模块的系统流程图2、在线考试模块的技术分析编写在线考试模块的动态表格类该模块涉及的数据表是tb_Lesson、tb_Questions、tb_stuResult,通过这三个数据表可以创建出对应的ActionForm类,由于这3个数据表又分别对应于3个不同的模块,所以这3个数据表对应的ActionForm类,可以在各自对应的模块中创建。创建在线考试系统模块的Action实现类在线考试模块的Action实现类Student继承了Action类。在该类中,首先需要在该类的构造方法中分别实例化模块中的StartExamDAO类。Action实现类的主要方法是execute(),该方法会被自动执行,这个方法本身没有具体的事务,它是根据HttpServletRequest的getParameter()方法获取的action参数值执行相应方法的。输入:考生的准考证号。处理:个人信息查询,根据输入的准考证号,系统会将这个准考证号的所有考生信息全部显示出来。个人信息情况如例子。输出:个人的详细信息。3、随机抽取试题并生成试卷随机抽取试题由于开始考试页面会调用action类中的startExam()方法。在该方法中,首先获取准考证号,然后调用LessonDAO类中的query()方法,并将获取的准考证号作为query()方法的参数,最后根据query()方法返回的List集合的大小,转到相应的页面。在实现随机抽取试题并生成试卷时,需要调用StartExamDAO类中的randomGetQuestion()、stratSaveResult()、queryExam()3个方法。生成试卷在实现生成试卷前,首先需要在试题页面中添加一个用于收集试题信息的表单,然后设置收集试题信息的表单元素。4、自动阅卷并显示考试成绩当考生提交试卷时,会调用action类中的submitTestPaper()方法,然后调用LessonDAO类中的query()方法,并将获取的准考证号作为query()方法的参数,最后根据query()方法返回的List集合的大小,转到相应的页面。在自动阅卷并显示考试成绩时,需要调用StartExamDAO类中的getRightAnswer()和saveResult()两个方法。考生考试成绩为:总分=单项选择题分数+多项选择题分数四、 后台管理模块1、后台管理模块概述后台管理模块主要包括查看考试题目列表、添加考试题目信息、修改考试题目信息、删除考试题目信息4个功能。框架如图:查看考试题目列表添加考试题目信息修改考试题目信息删除考试题目信息考试题目列表图3.18 后台管理模块框架图查看考试题目列表的实现过程查看考试题目列表会调用方法questionsQuery()。在该方法中,首先调用QuestionsDAO类中的query()方法查询全部考试题目,再将返回的查询结果保存到HttpservletRequest对象的参数questionsQuery中。添加考试题目信息的实现过程添加考试题目信息使用的QuestionsDAO类的方法是insert()。在insert()方法中,首先数据表tb_Questions中查询输入的考试题目是否存在,如果存在,将标志变量设置为2,否则将输入的信息保存到考试题目信息表中,并将返回值赋给标志变量,最后返回标志变量。删除考试题目信息的实现过程删除考试题目信息使用的是QuestionsDAO类的方法delete()。在该方法中,首先需要将获取的要删除记录的ID转换为以逗号分隔的字符串,然后再应用SQL语句中的DELETE语句批量删除记录,最后返回执行结果。第四节 本章小结本章主要是系统的设计,本论文在写的过程中在以前的分析基础上又加入一些已经实现的例子,更利于对系统的了解和感性认识,主要介绍了一些主要的模块的基本设计情况。数据库的设计是 MIS(管理信息系统)系统的核心部分,设计数据库,首先要进行需求分析,然后进行数据库的概念结构设计、逻辑结构设计、数据库结构实现等步骤。本章对数据库进行了详细的设计,并列出了数据库中使用的表结构,本系统选择使用 MS SQL Server 作后台数据库。第四章系统实现与调试第一节 系统实现概论一、 结构化程序编码原则 1、系统实现遵循结构化程序设计的思想,为了确保每个模块的逻辑清晰,应该尽量使各个模块使用单入口,单出口和顺序、选择和循环三种基本控制结构。另外为了增强系统的编码效率,也采用扩展的结构程序设计,即除了使用三种 基本的控制结构以外,还使用多分支的选择结构和下部判断循环条件的循环结构。2、良好的程序编写风格为了提高程序的可读性和易维护性,关键是使程序结构简单清晰,因此在程序编写过程中应保持良好的程序设计风格。主要在以下方面体现:采用序言性和描述性两种注释对程序进行解释;变量说明尽量使其具有实际意义;程序语句构造应该简单直接,应直接反映意图,不必过于巧妙和深奥。二、 系统主界面图4.1 系统首页三、 系统功能菜单在本系统中,将所有能够共用的信息单独做出来,然后包含到各个页面中,其中包括左部导航条left.jsp,下部版权信息页面copyright.jsp,功能部分,包含提示信息,主要有错误提示信息页面error.jsp,没有考试科目信息、noenLesson.jsp、成功处理页面(个别成功提示信息页面为方便单独制作)。图4.2 后台功能菜单图第二节 系统功能实现一、 文件结构图 文件结构的良好设计,对自己的开发过程有很大的好处,在设计的最初,应该想到自己要用的文件资源,一般来说:Tomcat 中 webapps是默认存放应用程序的地方,把编写好的源代码目录放到该文件夹下,里面的 WEB-INF 主要存放一些需要的包(lib文件夹)和自己用到的 classes 文件,Images 是图片文件存放位置,这样在自己改进系统或书写文档以及书写使用说明时都可以简明扼要的写出自己的程序结构。二、 文件详细结构图图4.3 文档结构关系图三、 系统具体文件1、根目录Database用于保存数据库文件;Images用于保存系统中应用的图片文件;JS用于保存系统中应用的JavaScript文件。图4.4 系统根目录文件列表2、Managermanager用于保存系统中后台管理涉及到的JSP文件。图4.5 Manager文件列表3、SrcSrc用于保存系统中应用的类的源文件。图4.6 Src文件列表4、WEB-INFWEB-INF用于保存系统中编译后的类文件和相应的驱动包。图4.7 WEB-INF文件列表第三节 关键技术实现一、web.xml- config /WEB-INF/struts-config.xml - debug 3 - detail 3 0 - action *.do 二、 数据库db_netExam连接部分文件ConnDB.javaprivate static String propFileName = /com/connDB.properties; / 指定资源文件保存的位置jdbc:microsoft:SQLserver:/localhost:1433;DatabaseName=db_netExam;private static String dbUser = sa;private static String dbPwd = ;public ConnDB() /定义构造方法try /捕捉异常/将Properties文件读取到InputStream对象中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);/获取密码第四节 调试过程中的常见错误一、JDK配置错误图4.8 JDK配置错误解决方法:JAVA_HOME:C:Program FilesJavajdk1.6.0_02CLASSPATH:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jarPath:%JAVA_HOME%bin;%JAVA_HOME%jrebin二、SQL空指针异常图4.9 空指针异常解决方法:由于该系统用ConnDB这个工具类连接数据库,但是执行到第58行SQL为null,所以才会抛出异常。断点调试。在ConnDB类中58行设置一个断点,发现调用ManagerDao类时有值未初始化。三、数据库连接错误图4.10 数据库连接错误解决方法:选择的顺序和数据库顺序不一致,获得结果集中的次序不对,避免的方法是 SQL 语句时就按数据库中的顺序写,取值时亦按照顺序严格取值。第五节 本章小结本章主要介绍一些设计中技巧的实现,对于一部分实现已经在第三章中做出了介绍,以及系统实现后文件的结构和布局,系统中关键技术的实现代码和开发本系统中出现的一些问题调试,通过调试掌握
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!