在线考试系统的设计与实现毕业设计(论文)

上传人:1777****777 文档编号:36287561 上传时间:2021-10-30 格式:DOC 页数:49 大小:4.27MB
返回 下载 相关 举报
在线考试系统的设计与实现毕业设计(论文)_第1页
第1页 / 共49页
在线考试系统的设计与实现毕业设计(论文)_第2页
第2页 / 共49页
在线考试系统的设计与实现毕业设计(论文)_第3页
第3页 / 共49页
点击查看更多>>
资源描述
第 页毕业设计(论文)在线考试系统的设计与实现在线考试系统的设计与实现学生学号学生姓名学院名称专业名称指导教师2013 年11 月20 日摘要第 页在线考试系统旨在实现在线考试中阅卷过程的计算机化。在线考试通过网络进行,可以有效提高教学考试的效率,减少教师的工作量,有助提高教学质量。本文所述的在线考试系统包括试题库管理、考生及教师信息管理、在线制作试卷、控制学生考试时长的设置、试卷状态修改等功能。本论文主要介绍了对 JAVA 在线考试系统的分析、设计和开发的全部过程。全文共分为开发背景和目的、需求分析、关键技术、系统设计、系统实现,结论六部分。开发背景和目的中主要介绍开发在线考试系统的应用背景和目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与其他用到的技术;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;系统实现部分主要是功能模块的分析、整体页面的设计、代码的设计;结论部分是自己开发的一些感想和遇到的一些问题。关键词关键词: java;在线考试;J2EE;Struts2第 页AbstractThe online exam system designed to achieve the computerization of the online exam marking process. Online examination through the network, can effectively improve the teaching efficiency of the examination, to reduce the workload of teachers to help improve the quality of teaching. Described in this article online exam marking management subsystem includes a test library management, candidates and teachers, information management, online production of paper settings in the control students examination papers state change function. This paper introduces the JAVA online exam marking management subsystem analysis, design and development process.The full text is divided into a development background and objectives, requirements analysis, key technologies, system design, system implementation, the conclusion of six parts. Introduces the development background and purpose of the application background and purpose of the development of online examination system, the technology selection and development framework for the development of programs to determine the function of each module of the overall demand for online examination system and system needs; needs analysis; Key Technology to be addressed in the concrete realization of a number of technical, such as the development framework for the integration of technology and development framework with other techniques used; system design introduces the guiding ideology of the system design, database design, system module design; system to achieve some of the major analysis of functional modules, the overall page design, the design of the code; conclusion developed some feelings and some of the problems encountered. Keywords: Java; Online Examination; J2EE; struts2第 页目目 录录1 绪 论.61.1 选题的背景和意义 .61.2 国内外研究现状 .61.3 本论文的主要内容与结构 .72 系统的开发环境及技术简介.82.1 系统开发环境.82.1.1 MyEclipse.82.1.2 MySQL.82.2 系统开发的思想与技术 .92.2.1JSP 技术与 MVC 模式.92.2.2 Jquery 技术.92.2.3 Ajax 技术.93 系统分析.113.1 需求分析.113.2 任务概述 .113.3 数据流程图 .123.3.1 顶层数据流程图.123.3.2 学生数据流程图.123.3.3 教师数据流程图.133.3.4 管理员数据流程图.144 系统总体设计.164.1 总体功能模块.164.2 管理员功能模块 .164.2.1 用户信息管理子模块.174.2.2 科目和题库管理子模块.174.2.3 试卷管理子模块.184.2.4 其他管理子模块.194.3 教师管理功能模块.204.3.1 阅卷管理子模块.204.4 学生管理功能模块.214.4.1 考试管理子模块.215 系统详细设计与实现.235.1 设计思想概述 .235.2 数据库设计 .245.2.1 概念模型设计.245.2.2 数据库逻辑模型.275.2.3 数据库表结构.275.3 部分功能模块的设计与实现 .29第 页5.3.1 用户信息管理子模块.295.3.2 题库管理子模块.335.3.3 试卷管理子模块.355.2.4 阅卷管理子模块.375.2.5 考试管理子模块.406 系统测试.436.1 开发期测试 .436.2 功能测试 .446.2.1 测试策略.446.2.2 测试用例.456.2.3 测试结果.47结论.48致谢.50参考文献.51第 页1 绪 论1.1 选题的背景和意义在线考试并不是一个新概念,可以说,在几十年前主机系统出现时就诞生了。近年来,Internet 的出现给了在线考试系统以新的活力,基于网络的在线考试系统已经成为一个新的热点。在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。只要形成一套成熟的题库就可以实现学生学习的自动化。教师所要做的只是精心设计题目、维护题库,从而大大减轻了工作量。学习者可以不受时间、空间和地域的限制,在任何时间、任何地点都可以通过网络自主测试。我们研究的在线考试系统,改变原有的同步交互为异步交互方式,使页面在后台按需获取数据,前台进行局部刷新,不仅节省了带宽,同时提高了网络响应速度,大大提升了用户体验。建立该系统有两个主要原因:第一,为同学们的学习提供了便利,从而也通过这个在线测试系统,来提高在校大学生的自主学习能力;第二,减少老师们批改作业的工作量,同时也让老师们对自己的学生们在掌握知识的程度方面有更好的评估,从而提高老师的讲课质量,最终达到学生和老师互利双赢的良好教学成果。1.2 国内外研究现状教育信息化工作是目前教育改革和发展的主旋律之一,考试是教学过程中的一个重要环节。如何充分利用计算机,构建一个具有开放性、实用性和灵活性的在线测试系统,是一个值得探讨的课题。纵观国内外教育,从 90 年代末开始,在短短的十几年时间里,实行网络教学的理念早己经成为教育界的一大研究热点,研发人员和教育者对网络教学平台的开发也处于不断地探索和发展之中,从最开始的单一的网络教学,逐步发展成为一种集合网络教学和在线考试系统的综合系统。随着网络的不断发展,多媒体网络技术也越来越趋向于成熟,网络能够实现实时地检索在线教学内容,部分网上学习系统能根据学生的要求简单选择教学的内容,对学生的学习进行一定的评估测试,而这里,我就开发一个在线考试系统,用来进行测试分析。当然,随着技术及学校和学生需求的不断提高,考试的形式也变的多种多样,网络上的学习及考试种类都在不断增加,并且网络速度也是一个不得不关注的问题;例如:现行城市里的交通堵塞,需要交通灯疏通,而网络堵塞时又该如何解决呢?为此,我们需要一个可以解决网络堵塞的技术Ajax 技术,该技术的特点是不必刷新整个页面,而是只是针对页面的局部进行更新,这样就减少了数据的流通,从而可以节省网络带宽、提高网页加载速度,减少用户在线等待时间,改善操作体验,是一个强大的第 页客户端脚本库的网站技术开发包。本课题设计的基于 Ajax 技术的在线考试系统,充分利用了 Ajax 的各项技术特点,结合 Java 的各项技术,实现了系统所需的各项功能。1.3 本论文的主要内容与结构本论文在第二章论述系统开发平台以及相关技术,包括 jsp 技术,MVC 模式,SSH 框架,jquery 框架技术,ajax 技术。第三章是系统分析,分别画出了顶层数据流程图,其他功能模块的数据流程图。第四章是系统功能设计,分别描述了总体功能模块,管理员功能模块,教师功能模块和学生功能模块。管理员功能模块包括:科目管理的功能,用户管理的功能,成绩管理的功能,试题库管理的功能,试卷管理的功能;教师管理模块包括:改卷管理的功能,成绩管理的功能,以及成绩管理的功能;学生管理模块:在线测试的功能,错题集管理的功能,历史试卷管理的功能,以及成绩查询等功能。第五章论述了系统详细设计与实现,系统模块结构设计,数据库设计中的数据库 E-R 图,数据库关系模型,数据库表结构。第六章是系统的运行和测试,最后是结束语和参考文献。第 页2 系统的开发环境及技术简介2.1 系统开发环境2.1.1 MyEclipse在开发本系统所用到的开发工具为 MyEclipse。MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称 MyEclipse)是对 Eclipse IDE 的一种扩展,利用 MyEclipse,我们可以在数据库和 J2EE 的开发、发布,以及在应用程序服务器的整合当中极大地提高系统的工作效率。MyEclipse 是一个功能非常丰富的 J2EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。从结构角度来讲,MyEclipse 具有以下特征,分别是 J2EE 模型、EJB 开发工具、WEB 开发工具、应用程序服务器的连接器、J2EE 项目部署服务、数据库服务、MyEclipse 整合帮助等。简单来说,MyEclipse 就是 Eclipse 的插件,也是一款功能强大的 J2EE 集成开发环境,支持代码编写、配置、测试以及除错。2.1.2 MySQL数据库使用的是业界流行使用的 MySQL 开源数据库。数据库 MySQL 具有的特性:第一,MySQL 使用 C 和 C+语言开发而成,而且用多种编译器进行测试过,这样就保证了源码的可移植性。第二,它可以运行在多种操作系统上,比如 Linux、Solaris、Windows 等。第三,MySQL 为C、C+、Eiffel、Java、Perl、PHP、Python、Ruby 和 Tcl 等编程语言提供了应用程序接口。第四,支持多线程充分利用 CPU 资源。第五,优化的 SQL 查询算法,有效地提高查询速度。第六,MySQL 能够作为一个单独的应用程序应用在客户端服务器网络环境中,同时也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码方法有中文的 GB2312 和 BIG5 等。第七,提供多种连接数据库的方法,例如通过TCP/IP、ODBC 和 JDBC 等方式。MySQL 以其自身的许多优点,它有着很广泛的应用。相比其他的大型数据库Oracle、DB2、SQL Server,MySQL 也有许多不足之处,比如规模较小、功能不是很强大等,但是这对于一般的个人客户和中小型企业来说,MySQL 提供的功能已经完全能够满足,除此之外,MySQL 是开源软件,所以可以大大降低软件开发成本。第 页2.2 系统开发的思想与技术2.2.1JSP 技术与 MVC 模式本系统采用 jsp 技术,基于 MVC 模式开发,使用 SSH 框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的 MVC 模式是Model-View-Controller的缩写,中文翻译为模式-视图-控制器。程序就是用 struts2 和hibernate 这两个框架来实现模式和控制器这两层,jsp 实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp 页面请求先到 action,再到 dao,再回到action,回到 jsp 页面,action 主要处理来自页面的请求,dao 主要是和数据库的交互,struts2 主要用在 action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在 dao,包括对数据库的增、删、改、查的操作,spring 控制程序的流程。2.2.2 Jquery 技术本系统采用 jquery 框架来对 Ajax 进行封装,运用 jquery 框架为系统提供 Ajax 技术的交互。Jquery 是继 prototype 之后又一个优秀的 Javascrpt 框架。它是轻量级的 js库(压缩后只有 21k) ,它兼容 CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+) 。jQuery 使用户能更方便地处理 HTML documents、events、实现动画效果,并且方便地为网站提供 AJAX 交互。jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery 能够使用户的 html 页保持代码和 html 内容分离,也就是说,不用再在 html 里面插入一堆 JS 来调用命令了,只需定义 id 即可。2.2.3 Ajax 技术AJAX 是(Asynchronous JavaScript and XML)的简写,它并不是单纯的一种技术,而是由几种蓬勃发展的技术以新的强大方式组合而成。主要有三部分组成:DHTML(动态 HTML) 、XMLHttpRequest、Server Files(服务器文件) 。DHTML 过滤用于在页面上显示的数据,在这当中,Ajax 用 XHTML 来制作内容,用 CSS 来制作外观,用 DOM 和 JavaScript 来制作动态内容显示;XMLHttpRequest 主要通信代理,在服务器和页面间传送数据,进行异步数据的交互,是实现 AJAX 应用的核心技术。Ajax 技术最大的优点就是页面无刷新,在页面内与服务器通信,给用户的体验非常好,这一优点在本系统中也有很好的体现,例如:管理员的试题添加与筛选试题的功能等等。Ajax 技术之中,最核心的技术就是 XMLHttpRequest,主要是通过 ActiveX 组件第 页来创建 XMLHttpRequest 对象。本系统中判断浏览器类型也是运用了该对象。XMLHttpRequest 对象是整个 AJAX 开发的基础,提供了客户端和服务器端进行异步通信的能力。一方面它向服务器提交一个请求,获取指定的内容;另一方面将指定的数据提交到服务器端。XMLHttpRequest 对象由 JavaScript 创建并使用,客户端可以只从服务器端获取需要的信息,通过与 DOM 和 CSS 的结合,可以实现局部刷新;同时还可以通过 XMLHttpRequest 对象异步提交信息,将输入的数据在后台提交到服务器而无需每次刷新页面,也不用每次都将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快了响应速度、缩短了用户的等待时间。第 页3 系统分析3.1 需求分析通过调查分析,在线考试系统主要包括教师、管理员、学生。我重点调查分析的三种用户的职能。其中管理员主要负责教师、学生以及管理员用户信息的添加、修改和删除操作,以及科目、试题的添加、删除和修改操作,并创建试卷,同时也具有查看成绩以及修改个人信息的功能。教师主要根据学生考好的试卷进行阅卷,查看学生考试试题,以及学生测试成绩生成的检查和修改操作,同时也具有查看学生成绩以及修改个人信息的功能。学生主要是负责在线测试并且可以在线查看自己提交的试卷答案,学生可以在成绩查询一栏中查看自己的成绩,同时也具有修改个人信息的功能。在考试系统的设计和实现过程中,为了使系统便于管理和保障系统的安全性,在线测试系统中编辑设计了管理员登录,并且在添加管理员信息的时候,管理员必须先验证自己的用户名密码,再进行添加。管理员在添加用户信息时,将用户的登录密码默认设置为该用户登录的账号,因此用户登录后,可以先修改自己的登录密码,以保证个人账户的安全性。学生登录后可以选择自己测试的课程,选用考卷卷进行考试,测试完成后可以查看自己的试题和分数;查询考过课程的历史试卷。为了方便管理员对系统的管理,还特地为用户、科目和试题这三栏添加的搜索功能,以方便管理员查找,并且对其进行各项操作。3.2 任务概述1)由于考试对应的是特定的对象,所以系统需要经过身份验证才可以登陆相应的主页。2)系统的权限分为三种:管理员,老师和学生。不同的身份使用不同的权限和功能。3)教师权限的老师需要参与阅卷,查看和修改学生的成绩等等。4)管理人员需要对教师和考生账号进行有效的管理,并负责试题的收录及更新和修改,对试题的分类,每次考试前,需要对试场环境和考生状态进行考前初始化工作。要注意的是, 鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的。5)系统要有良好的试卷提交功能,确保信息传送的正确性。6)系统要有一个亲和的界面,这样才能确保考生考试的顺利进行。7)因为试卷中的主观题需要老师批改,需要教师阅卷以后才能查询到成绩。但如果试卷是由客观题型组成的,考生就可以在考试结束后查询到自己客观题的成绩了。第 页8)系统提供对考生成绩的查询和历史试卷的查询等管理功能。9)系统应具有一定的安全性管理3.3 数据流程图3.3.1 顶层数据流程图顶层数据流程图说明了系统与其外部环境中各实体之间的信息交流。如图 3-1 所示,在线测试系统的外部实体主要有教师、管理员和学生。系统管理人员通过添加教师学生等信息,以及添加测试科目与教师学生建立关系。学生通过在线测试与教师建立关系。并且教师可以评阅学生的试卷,评阅成功之后,系统将自动统计老师给的分数,给出学生的总成绩,学生也可以通过成绩查询来查看自己的成绩。管理员在线考试系统学生参加考试给出试卷修改成绩教师查看成绩查看试卷修改个人信息查看个人信息提交试卷提交阅卷修改个人信息查看个人信息查看成绩添加修改删除用户添加修改删除试题查看用户查看试题添加修改删除试卷查看试卷添加修改删除科目图 3-1 顶层数据流程图3.3.2 学生数据流程图首先学生开始测试,需要登陆系统。此时需要读取学生信息表匹配用户名密码是否正确。然后开始进入系统进行测试。学生可选择试卷名称,从而生成试卷。当提交之后,生成成绩并显示答案,系统自动判断试卷的选择和判断题,并且学生的考试记第 页录将被提交到考试试题记录表中。其他题型将由老师进行阅卷后产生,并且把该学生的成绩提交到考试阅卷信息表,之后学生可以查看成绩,并且可以查看自己的历史试卷,当学生要查看自己的历史试卷时,系统将从考试试题记录表中取出考生曾考过的试题。学学生生 用用户户信信息息表表 登登录录系系统统 读读取取用用户户和和密密码码登登录录试试卷卷 题题库库信信息息表表 试试卷卷信信息息表表 参参加加考考试试 生生成成试试卷卷考考试试阅阅卷卷信信息息表表 生生成成成成绩绩 提提交交试试卷卷信信息息提提交交试试卷卷查查询询成成绩绩 查查看看读读取取成成绩绩考考试试试试题题记记录录表表 历历史史试试卷卷管管理理 读读取取试试题题查查看看教教师师 提提交交阅阅卷卷结结果果阅阅卷卷图 3-2 学生测试管理数据流程图3.3.3 教师数据流程图教师登陆该系统以后可以对学生考试产生的试卷进行阅卷,这也是教师部分主要的功能。第 页教教师师 用用户户信信息息表表 登登录录系系统统 读读取取用用户户和和密密码码登登录录阅阅卷卷 生生成成试试卷卷考考试试阅阅卷卷信信息息表表 生生成成成成绩绩 查查询询成成绩绩 查查看看读读取取成成绩绩考考试试试试题题记记录录表表 提提交交阅阅卷卷结结果果阅阅卷卷存存入入图 3-3 教师数据流程图3.3.4 管理员数据流程图管理员可以添加用户,并将该用户信息保存在用户信息表中,以及对学生、教师和管理员用户的信息修改,管理员还可以对试题、科目进行相应的操作,并进行组卷。主要目的是让更多的教师和学生可以更好地使用该在线测试系统。通过让更多的教师和学生参与,才能保证题库的题量更多,学生做试题的次数更多,从而让在线测试系统更好地发展起来。第 页管管理理员员 用用户户信信息息表表 登登录录系系统统 读读取取用用户户和和密密码码登登录录学学生生用用户户 添添加加修修改改删删除除教教师师用用户户 组组卷卷 组组卷卷存存入入试试题题信信息息表表 存存入入添添加加修修改改删删除除试试题题 科科目目 科科目目信信息息表表 存存入入添添加加修修改改删删除除添添加加修修改改删删除除存存入入考考试试试试题题记记录录表表 图 3-4 管理员数据流程第 页4 系统总体设计4.1 总体功能模块通过了解学校现行的考试流程,和学校教务管理人员进行交谈,获取需求,并据此设计出系统的功能模块。在线考试系统主要有三种用户:管理员,教师用户,学生用户。总体功能图 4-1 所示:图 4-1 总体结构图根据对高校正在使用的在线考试系统的实地调查,本系统根据以事物为中心的设计策略,系统主要包括了五个子功能模块还有其他小的功能模块,其中五个主要功能模块分别为在线测试模块、题库管理模块、试卷管理、阅卷管理模块、用户信息管理模块。4.2 管理员功能模块管理员主要有科目和题库管理、试卷管理、用户管理、成绩管理和个人信息管理这五个模块。管理员的功能图如 4-2 所示:管管理理员员 用用户户管管理理 科科目目管管理理 试试题题库库管管理理 试试卷卷管管理理 成成绩绩管管理理 个个人人信信息息管管理理 第 页图 4-2 管理员的功能4.2.1 用户信息管理子模块用户信息管理模块:管理员可以添加用户,并将该用户信息保存在用户信息表中,以及对用户信息进行修改和删除等功能,主要目的是让教师和学生可以使用该在线考试系统。让教师和学生能够更好的使用该系统,完成教育的宗旨。用户管理功能图如4-3 所示:图 4-3 用户管理的功能4.2.2 科目和题库管理子模块科目管理的功能主要用于管理科目的信息,管理员可以对科目进行查询、添加、删除和修改操作。科目管理功能图如 4-4 所示:科科目目管管理理 查查询询科科目目 添添加加科科目目 删删除除科科目目 修修改改科科目目 图 4-4 科目管理的功能题库管理模块:管理员登陆该系统以后可以对在线考试系统的试题题库进行管理。题库管理的功能主要是对添加试题,并将试题保存与题库信息表中,同时也可以对试用用户户管管理理 管管理理员员用用户户管管理理 教教师师用用户户管管理理 学学生生用用户户管管理理 修修改改密密码码 添添加加用用户户 删删除除用用户户 修修改改用用户户 添添加加用用户户 删删除除用用户户 修修改改用用户户 第 页题进行删除和修改操作。管理员主要包括负责不同科目试题的录入以及对试题进行编辑、修改和删除。如果管理员发现存在一些问题,可以将该试题删除或者修改,这也是该系统主要的功能。这个功能模块是决定生成随机试卷的关键。试题管理的功能主要用于查看当前科目的所有试题,并且可以添加、修改、删除(选择题、判断题、填空题、简单题) ,试题管理功能图如 4-5 所示:试试题题管管理理 查查看看相相应应科科目目试试题题 选选择择题题 判判断断题题 填填空空题题 简简答答题题 添添加加 修修改改 删删除除 图 4-5 试题管理的功能4.2.3 试卷管理子模块试卷管理模块:该模块,是管理员模块的关键模块之一,管理员可以这里创建考卷,并将考卷保存到试卷信息表中,同时还可以进行修改试卷、删除试卷、使用试卷、停用试卷等操作,当学生登陆在线测试系统以后,选择试卷,便可以进行在线考试了。试卷管理的功能主要是组卷,在试卷管理中,管理员可以创建、修改、删除试卷,并且可以查看、管理试卷里面的试题,对已经有的试卷可以进行状态设置。基本功能图如 4-6 所示:第 页试试卷卷管管理理 创创建建 修修改改 删删除除 使使用用 添添加加 删删除除 修修改改分分值值 停停用用 题题目目管管理理 图 4-6 试卷管理的功能4.2.4 其他管理子模块成绩管理主要用于用户查看成绩和已考考卷的信息。如 4-7 所示:成成绩绩管管理理 查查询询成成绩绩 查查看看答答卷卷 图 4-7 成绩管理的功能个人信息管理主要用于用户修改个人的基本信息。如 4-8 所示:个个人人信信息息管管理理 修修改改个个人人信信息息 图 4-8 个人信息管理的功能4.3 教师管理功能模块教师主要有阅卷管理、查看学生考卷、修改个人信息这三项功能,在这里我们主要介绍一线教师所特有的阅卷功能。教师总体功能图如 4-9 所示:第 页教教师师 个个人人信信息息管管理理 成成绩绩查查询询 阅阅卷卷管管理理 图 4-9 教师管理的功能图4.3.1 阅卷管理子模块阅卷管理模块:当学生提交考过的试卷后,试卷将被保存到考试阅卷信息表中,系统将自动批阅选择题和判断题的成绩,填空题和问答题将由教师在改卷管理中评分,给出成绩,从而生成学生的总成绩,并将该学生的成绩保存在数据库中。如果教师在批阅期间发现存在一些问题,可以修改该学生的成绩,这也是该系统主要的功能。教师管理模块主要体现在阅卷管理中,对学生考的试卷的题目进行阅卷,并且对每道题进行评分,评分成功之后,系统将自动计算每道试题的分数,显示试卷的总分。具体功能图 4-10 所示:阅阅卷卷管管理理 进进行行评评分分 查查看看考考卷卷 图 4-10 改卷管理的功能图4.4 学生管理功能模块学生的功能主要有参加考试、查询成绩、个人信息管理这三项主要功能,成绩查询与管理员和老师的成绩管理的功能是一样的。学生总体功能图如 4-11 所示:第 页学学生生 进进行行评评分分 查查看看考考卷卷 个个人人信信息息管管理理 图 4-11 学生管理的功能图4.4.1 考试管理子模块考试管理模块:首先学生开始考试,需要登陆系统。此时需要读取学生信息表匹配用户名密码是否正确。然后开始进入系统进行测试。选择自己要考的试卷名,系统将从试卷信息表中读取试卷信息,学生开始进行考试。当提交时候生成成绩,系统自动评阅试卷的选择题和判断题,并显示选择题和判断题的分数,填空题和问答题,由教师进行批阅改卷后产生,并且把该学生的成绩提交到数据库。参加考试管理功能是该在线测试系统的核心,学生也是通过该功能模块进行在线测试和在线联系的。首先学生登陆进入自己的页面,点击参加考试,点击确定开始考试之后,系统会让你选择卷子,例如系统中所提到的,期末模拟卷 1、期末模拟卷 2等等,提交之后,系统依然呈现正确答案,和自己的答案,学生也可以查看自己的历史试卷查看自己的错误之处,来加强和提升自己的学习成绩。第 页5 系统详细设计与实现5.1 设计思想概述在线考试系统充分利用了 Brower/Server 结构的特点,实现了将考试系统移植到Internet 的功能,该系统的优势在于极大的简化了老师出题的工作和学生考试的试题,做到了出题的多样性。目前比较流行的两种网络开发模式分别是 Client/Server 模式与 Brower/Server 模式。Client/Server 模式主要是在以局域网为基础的环境下展开应用的,它受到地域的限制,并需要事先在客户端机上装载 Client 端。而 Brower/Server 模式样通过 Internet 进行通信,可以不受地域和客户端的限制,但是它不能够进行联机事务处理,并且在大量数据处理的情况下,服务器访问速度较慢。从目前的开发技术来看,Brower 端作为信息收集源,特别是大量的数据录入工作 Brower 还不能完全取代 Client 端的用户界面。在大量数据录入工作这方面,Client 端的各种开发工具的功能更加强大也更加灵活,相对而言 Browser 端却由于其结构的限定显得过于“瘦小”和不稳定。对于本在线考试系统,其功能目标是实现将现有的纸张答题式考试向基于 Internet的无纸张考试系统的转变,所以它必须面向整个考试流程,实现对系统不同权限的账号不同管理,以及完成考试、阅卷、评分这些分类环节上的处理。由于本考试系统对数据收集的实时性要求并不高,并且数据的流通量也不是很多,因此采用Browser/Server 结构来进行设计是可行的。图 5-1 是本系统的网络应用原理示意图。考生浏览器服务器Internet统后台数据库图 5-1考试系统原理示意图5.2 数据库设计第 页5.2.1 概念模型设计概念模型设计的典型方法是用 E-R 图方法,即用实体-联系模型表示。E-R 方法是用 E-R 图来描述显示世界,E-R 图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。本在线考试系统 E-R 图如下:学生教师试题管理员管理管理管理阅卷用户名ID密码创建时间角色状态真实姓名用户1111Nnn图 5-2整体关系 E-R 图图 5-3用户信息的 E-R 图第 页课程 IDID题目分数选项 D选项 C选项 B选项 A答案状态试题添加时间题型图 5-4试题 E-R 图课程名ID状态课程图 5-5课程信息 E-R 图试卷名ID总分用户 ID课程编号状态试卷考生时间使用状态图 5-6试卷信息 E-R 图第 页状态试卷 ID成绩用户 ID考试编号阅卷状态阅卷添加时间成绩 2图 5-7阅卷信息 E-R 图状态ID试题 ID用户 ID考试编号得分测试时间题目使用编号答案考试记录点评是否给分图 5-8考试记录信息 E-R 图状态ID用户 ID试题编号试卷编号试题使用分值图 5-9试题使用信息 E-R 图5.2.2 数据库逻辑模型第 页课程信息表(课程编号、课程名称)用户信息表:(用户编号、姓名、用户名、管理员号、密码、添加时间、用户类型、状态)题库信息表(试题编号、题目、A、B、C、D、答案、创建时间、题型、知识点、正确、错误、课程编号、用户编号)试卷信息表(试卷编号、创建时间、试卷名、考试时间、使用状态、总分、课程编号、用户编号、学院编号)考试阅卷信息表(考试阅卷编号、成绩、成绩 2、测试时间、考试编号、阅卷状态、试卷编号、用户编号)考试试题记录表(试题记录编号、测试时间、得分、考试编号、我的答案、题目使用编号、试题编号、用户编号)考试题目使用信息表(题目使用编号、分值、试卷编号、试题编号、用户编号)5.2.3 数据库表结构1.1. 用户信息表用户信息表字段类型长度说明idbigint20主键 自动增长 usernamevarchar255用户名 passwordvarchar255用户密码truenamevarchar255真实姓名createtimedatetime/添加时间roleint11角色userlockInt11状态2.2. 课程信息表课程信息表字段类型长度说明Idbigint20主键 自动增长kechengmingvarchar255课程名Kechenglockint11状态3.3. 试卷信息表试卷信息表字段类型长度说明idbigint20主键 自动增长createtimedatetime/添加时间juanmingvarchar255试卷名第 页kaoshishijianint11考试时间shifoushiyongvarchar255使用状态zongfendouble/总分kechengidbigint20课程编号shijuanlockInt11状态useridbigint20外键 用户编号 4.4. 考试阅卷信息表考试阅卷信息表字段类型长度说明idbigint20主键 自动增长createtimedatetime/添加时间 chengjivarchar255成绩 chengji2Double/成绩 2 kaoshibianhaovarchar255考试编号zhuangtaivarchar255阅卷状态shijuanidbigint20外键 试卷编号 useridbigint20外键 用户编号5.5. 考试试题记录表考试试题记录表字段类型长度说明idbigint20主键 自动增长createtimedatetime/测试时间 defenDouble/得分 kaoshibianhaovarchar255考试编号wodedaanvarchar255我的答案 shijuanitemidbigint20题目使用编号 shitiidbigint20外键 试题编号useridbigint20外键 用户编号dianpingvarchar255点评shifougeifenvarchar255是否给分6.6. 考试题目使用信息表考试题目使用信息表字段类型长度说明idbigint20主键 自动增长 fenzhiDouble/分值 shitiidbigint20外键 试题编号 shijuanidbigint20外键 试卷编号第 页 useridbigint20外键 用户编号 shijuanitemlockint11状态7.7. 考试题目信息表考试题目信息表字段类型长度说明idbigint20主键 自动增长avarchar255A bvarchar255Bcvarchar255Cdvarchar255Dcreatetimedatetime/创建时间shitilockint11状态daanvarchar255答案 leixing varchar255题型 zhishidianvarchar255知识点 wentivarchar255 题目 kechengidbigint20外键 课程编号 useridbigint20外键 用户编号5.3 部分功能模块的设计与实现5.3.1 用户信息管理子模块功能设计用户信息管理子模块:首先要登录系统,验证用户身份,判断是否是管理员,是管理员则进入管理员端,管理员可以管理学生和教师账号,管理员可以先添加账号,然后修改、删除账号,这里就需要把账号信息显示在页面上,才能实现操作。登录系统首先进入一个登录到用户登录界面,根据身份的不同可以登录相应的界面。从数据库中判断用户名是否合法,用户密码,用户类型是否正确,若果都正确,用户是管理员则进入管理员端,用户是教师则进入教师端,用户是学生则进入学生端,如果用户名或密码错误则提示错误,要求重新登录。该模块的流程图见图 5-10 所示。开始第 页图 5-10 登录系统流程图界面设计完成用户管理模块需要登录页面、管理员首页、用户管理界面。登录界面需要账号和密码录入窗口,还需要登录和退出按钮;管理员首页主要左边要有菜单项,主体部分有欢迎语,还要显示当前登录的管理员名称和退出按钮。用户管理界面要有用户的信息显示和一些包括(添加、修改、删除)操作的按钮。如下图 5-11-abc 所示:图 5-11-a 登录页面YNN进入相应功能主界面登录密码及用户类型验证?用户名及密码操作是否结束?退出系统Y第 页图 5-11-b 管理员首页图 5-11-c 用户管理界面部分实现代码第 页验证登录的部分代码如下:publicpublic String login() throwsthrows IOException HttpServletRequest request = ServletActionContext.getRequest();String username = request.getParameter(username);String password = request.getParameter(password);User user = userDao.selectBean( where username = + username+ and password= + password + and userlock=0);ifif (user != nullnull) HttpSession session = request.getSession();session.setAttribute(user, user);thisthis.setUrl(index);returnreturn redirect; elseelse HttpServletResponse response = ServletActionContext.getResponse();response.setCharacterEncoding(gbk);response.getWriter().print(alert(用户名或者密码错误);window.location.href=index;);returnreturn nullnull;个人信息系统管理主要包括管理员密码修改,学生、教师用户的添加、修改、删除。代码都有点相似之处,所有列举管理员密码修改的部分代码,如下:public String userupdate() HttpServletRequest request = ServletActionContext.getRequest();User bean = userDao.selectBean( where id= + request.getParameter(id);request.setAttribute(bean, bean);this.setUrl(/WEB-INF/manage/user/userupdate.jsp);return SUCCESS;第 页5.3.2 题库管理子模块功能设计题库管理子模块:管理员登陆该系统以后可以对在线考试系统的试题题库进行管理。题库管理的功能主要是对添加试题,并将试题保存与题库信息表中,同时也可以对试题进行删除和修改操作。管理员主要包括负责不同科目试题的录入以及对试题进行编辑、修改和删除。如果管理员发现存在一些问题,可以将该试题删除或者修改,这也是该系统主要的功能。界面设计根据题库管理的功能,首先需要一个显示各个科目信息的页面,该页面一个具有按钮操作,以便对所对应的题库进行管理。如下图 5-12-ab 所示:图 5-12-a 科目信息界面第 页图 5-12-b 题目信息界面部分实现代码该部分主要是对数据库的修改操作,列举一个修改试题的部分代码:public String shitiupdate() HttpServletRequest request = ServletActionContext.getRequest();Shiti bean = shitiDao.selectBean( where id= + request.getParameter(id);request.setAttribute(bean, bean);request.setAttribute(kemu, kechengDao.selectBean( where kechenglock=0 and id= +request.getParameter(kechengid);this.setUrl(/WEB-INF/manage/shiti/shitiupdate.jsp);return SUCCESS;5.3.3 试卷管理子模块功能设计试卷管理子模块:管理员管理可以对试卷进行管理,主要是有试卷的创建、修改、第 页删除,除此之外还可以对创建的试卷进行状态设置。试卷有了,但是试卷里面没有试题、考试时间、总分,那么就需要试卷的设置,其中包括试题的添加、修改、删除,分值的修改和考试时间的添加、修改等操作。界面设计根据该功能模块的功能,应该有个界面显示各个试卷信息,里面有各种对试卷的操作按钮。进入试卷,首先应该显示出所有试卷里的试题和属性,并有对应的操作按钮。如下图 5-13-ab 所示:图 5-13-a 试卷信息界面第 页图 5-13-b 试卷里试题信息界面部分实现代码这里列举一个创建试卷的代码,如下:public String shijuanadd() HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute(list, kechengDao.selectBeanList(0, 9999, where kechenglock=0 );this.setUrl(/WEB-INF/manage/shijuan/shijuanadd.jsp);return SUCCESS;5.2.4 阅卷管理子模块功能设计阅卷管理子模块:该功能是教师的主要功能,考生考完试,提交试卷后,相关信息储存于数据库中,一部分题目系统已经给出了相应的评分,教师进行阅卷管理,根第 页据显示的所有学生的考试信息,选择相应的考生进行阅卷评分,并提交得分。界面设计根据该部分功能分析,首先需要一个显示所有考生考试信息的页面,里面有考试卷的状态信息以及是否被评阅过,也应该有按钮进行相应的阅卷操作;进入阅卷,里面是该考生的所有题目的回答以及是否给分的状态,可以进行相应的评分操作。如下图 5-14-ab 所示:图 5-14-a 考生试卷信息界面第 页图 5-14-b 答卷信息界面部分实现代码提交阅卷结果的部分代码如下:public void kaoshijiluupdate2() throws IOException HttpServletRequest request = ServletActionContext.getRequest();String kaishiid = request.getParameter(kaoshiid);Kaoshi kaoshi = kaoshiDao.selectBean( where id= +kaishiid);String defen = request.getParameter(defen);String dianping = request.getParameter(dianping);Kaoshijilu bean = kaoshijiluDao.selectBean( where id = +request.getParameter(id);kaoshi.setChengji2(kaoshi.getChengji2()+Double.parseDouble(defen)-bean.getDefen();kaoshiDao.updateBean(kaoshi);第 页bean.setDefen(Double.parseDouble(defen);bean.setDianping(dianping);bean.setShifougeifen(已给分);kaoshijiluDao.updateBean(bean);HttpServletResponse resp = ServletActionContext.getResponse();resp.setCharacterEncoding(utf-8);PrintWriter out = resp.getWriter();out.print(this.tiaozhuan(操作成功, method!kaoshijilulist?id= +kaishiid,kaoshijilulist);out.flush();out.close();5.2.5 考试管理子模块功能设计考试管理子模块:学生登录成功,进入系统进行测试。选择自己要考的试卷名,系统将从试卷信息表中读取试卷信息,学生开始进行考试。当提交时候生成成绩,系统自动评阅试卷的选择题和判断题,并显示选择题和判断题的分数,填空题和问答题,由教师进行批阅改卷后产生,并且把该学生的成绩提交到数据库。该模块是学生的主要功能。界面设计首先需要一个确定进入考试的页面,里面有选择你需要考的科目,然后是选考卷的页面,在这个页面,你选择你所考的试卷,然后是进入考卷了,考卷上面是考试的信息,主体部分是试题,最下面是交卷按钮。如下图 5-15-abc 所示:第 页图 5-15-a 选择科目界面图 5-15-b 选择试卷界面第 页图 5-15-c 开始考试界面部分实现代码学生用户登录成功,进行考试,首先取出数据库中的试题,取出试题的部分代码如下:public List selectBeanList(final int start,final int limit,final String where) return (List)this.getHibernateTemplate().executeFind(new HibernateCallback() public Object doInHibernate(final Session session)throws HibernateException, SQLException List list = session.createQuery(from Kaoshi +where).setFirstResult(start).setMaxResults(limit).list();return list;第 页6 系统测试6.1 开发期测试Junit 单元测试,主要是系统开发期间编写方法时,对开发者编写的方法进行白盒测试,运行成功并返回预想的值,那么说明该方法是正确的,这样可以加快系统的开发进度。Junit 测试(模块测试)是程序开发者编写的一小段代码,主要功能是用于检查被测代码的一个很具体的功能是否正确。一般来说,单元测试是判断某个特定条件下某个特定函数的功能是否正确或者符合预期。单元测试工作一般由程序员自己来完成,在这个过程中,程序员也是受益者。也就是说,程序员有责任编写功能代码,同时也就有义务为自己开发的软件代码编写单元测试软件。进行单元测试,就是为了证明这段代码的行为和我们期望的一致。将 JUnit4 单元测试包引入这个项目:在该项目上点右键,点“buil path” ,再点”add libraries”,如下 6-1 图所示:图 6-1 添加 JUnit4 测试环境然后新建一个 test 包,再建一个 test 类。右击 test 类,点”Run As”,再点”JUnit Test”,开始测试。如下 6-2 图所示:第 页图 6-2 开始测试如果运行成功,会
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


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

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


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