数据结构自动出题管理系统的设计与实现毕业设计论文_第1页
数据结构自动出题管理系统的设计与实现毕业设计论文_第2页
数据结构自动出题管理系统的设计与实现毕业设计论文_第3页
数据结构自动出题管理系统的设计与实现毕业设计论文_第4页
数据结构自动出题管理系统的设计与实现毕业设计论文_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、 单位代码 10 学 号 4 分 类 号 tp315 密 级_ _ _毕业设计说明书数据结构自动出题管理系统 院(系)名称专 业 名 称学 生 姓 名指 导 教 师2012年5月15日数据结构自动出题管理系统的设计与实现摘 要高新科技和计算机的飞速发展,给人们带来了更多的便利。电脑普及时代即将到来,网络技术也在逐渐完善,人们的生活已经开始发生重要的变革。信息时代对人才素质的结构提出了更新,更高的要求,开展自动出题系统这种方式是教育面临信息时代的必然选择。为了实现数据结构题库管理的信息化而开发了这个数据结构自动出题系统。本系统实现了难度管理、题库管理、学生管理、试卷管理、评分老师管理等基本功能。

2、同时,本系统有三种登录权限,分别是管理员,考生和评分老师。系统采用b/s开发模式,以myecipse8.6作为开发平台,结合jsp、javascript、html等语言,以tomcat为服务器和sql server 2005为后台数据库。整个系统层次结构简单,操作容易,并具备一定的安全性。考生借助此系统,可以随时随地的进行课程测试,同样,老师使用该系统能更高效、便捷的组织在线考试。关键词:jsp,my eclipse,在线考试,题库the data structure to be automatic set the system development and implementation a

3、uthor:li kun tutor:zhao wen an abstractan applet is a mini-program that will run only under a web browser. the applet is downloaded automatically as part of a web page (just as, for example, a graphic is automatically downloaded). when the applet is activated it executes a program. this is part of i

4、ts beautyit provides you with a way to automatically distribute the client software from the server at the time the user needs the client software, and no sooner. the user gets the latest version of the client software without fail and without difficult reinstallation. because of the way java is des

5、igned, the programmer needs to create only a single program, and that program automatically works with all computers that have browsers with built-in java interpreters. (this safely includes the vast majority of machines.) since java is a full-fledged programming language, you can do as much work as

6、 possible on the client before and after making requests of the server. you wont need to send a request form across the internet to discover that youve gotten a date or some other parameter wrong, and your client computer can quickly do the work of plotting data instead of waiting for the server to

7、make a plot and ship a graphic image back to you. not only do you get the immediate win of speed and responsiveness, but the general network traffic and load on servers can be reduced, preventing the entire internet from slowing down.key words: applet, java, internet目 录1.绪 论11.1.背景11.2.系统开发技术11.2.1.

8、java server page11.2.2.jsp工作原理11.2.3.jsp体系结构21.2.4.sqlserver 2005 数据库连接21.3.论文内容概要介绍52.可行性研究62.1.项目要求62.2.系统的主要开发目标72.3.开发的可行性73.需求分析83.1.市场需求83.2.软件功能分析83.3.软件的非功能性需求94.系统设计104.1.总体设计104.1.1.基本简介104.1.2.运行环境104.2.系统模块结构图104.3.详细设计124.3.1.用户信息设计124.3.2.数据库中表的设计124.3.3.登录设计154.3.4.管理员对题库的管理和维护164.3.5

9、.对题库中试卷的修改175.系统实现185.1.系统登录界面185.2.管理员管理界面185.3.管理员添加组卷界面195.4.管理员上传最新试题界面195.5.考生界面195.6.评分老师界面206.软件测试216.1.测试结果分析与调试21结 论24致 谢25参考文献26附 录271. 绪 论1.1. 背景近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,学校的教学管理都受到了极大的挑战。internet技术持续迅猛的发展,也给传统的教学提出了新的模式。以现代计算技术、网络技术为基础的数字化教学主要是朝着信息化、网络化、现代化

10、的目标迈进。作为新型的办学模式,它们具有对于教育、教学过程来说极为宝贵的特性,可以为新型教学模式的建构提供理想的环境。在此开发的数据结构自动出题系统,旨在探索一种以互联网为基础的教学模式。通过这种新的模式,使学生通过自测及时的掌握学过的知识,为学校营造一种新的教学环境,从而提高工作效率和教学水平。1.2. 系统开发技术1.2.1. java server pagejsp(java server page服务器网页)是从1998年开始出现的新技术。由sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于javaservlet以及整个java体系的web开发技术。在传统的网页html文

11、件(*.htm,*.html)中加入脚本片段和jsp标记(tag),构成jsp网页(*.jsp)。jsp技术为创建显示动态生成内容的web页面提供了简便的方法。jsp作为java家族的一员,承袭了java的特点,即跨平台的特性,也即一次编译,到处运行。13在国外,己经大量使用jsp作为网络应用程序的开发工具,而在国内,尽管jsp还不是主流开发技术,但是由于jsp的强大优势,许多网站都已经准备转向jsp,利用jsp来开发动态网站。 1.2.2. jsp工作原理jsp是面向服务器的,因此支持任何浏览器。当web服务器和jsp引擎遇到访问jsp网页的请求时,jsp引擎将请求对象发送给服务器端的相关组

12、件,比如javabean组件、servlet或ejb等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回jsp引擎。jsp引擎将响应对象传递给jsp页面,根据jsp页面的html格式完成数据编排,最后web服务器和jsp引擎将格式化后的jsp页面以html格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器web服务器后台数据库的三层架构模式。因为jsp所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。1.2.3. jsp体系结构jsp网站开发标准给出了两种使用jsp的技术,可以归纳为模式一、模式二。模式一:jsp+ja

13、vabeans技术在这种模式中,jsp页面独自响应请求并将处理结果返回给客户。bean处理所有数据访问,jsp实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以模式一可用于小型应用,不能够满足大型应用的需要。模式二:jsp+servlet+javabeans技术servlet技术是一种采用java技术来实现cgi功能的一种技术,servlet技术非常适于服务器端的处理和编程,并且servlet会长期驻留在内

14、存。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的mvc结构(model/view/controller),其中servlet对应controller,处于控制者的位置,处理http请求,负责生成jsp中使用的beans组件或对象,并判断应将请求传递给哪个jsp等,jsp对应view,负责生成最终的动态网页并返回给浏览器。而javabeans对应的是model,实现各个具体的应用逻辑与功能。1.2.4. sqlserver 2005 数据库连接数据库方面用spring+hibernate dao 持久层开发,spr

15、ing 用hibernate 访问数据库的方式:1、dao开发需要在spring xml配置文件中,注册bean(实现类)来依赖注入sessionfactory.。spring 中进行事务管理的通常方式是利用aop(面向切片编程)的方式,为普通java类封装事务控制,它是通过动态代理实现的,由于接口是延迟实例化的, spring在这段时间内通过拦截器,加载事务切片。原理就是这样,具体细节请参考jdk中有关动态代理的文档。46 动态代理的一个重要特征是,它是针对接口的,所以我们的dao要通过动态代理来让spring接管事务,就必须在dao前面抽象出一个接口. 当然如果没有这样的接口,那么spri

16、ng会使用cglib来解决问题,但这不是spring推荐的方式。1、直接使用hibernate api (不推荐使用)public class daoimp implate daoprivate sessionfactory sessionfactory;private static string hql = from user u where u.username=? ;public void setsessionfactory(sessionfactory sessionfactory)this.sessionfactory=sessionfactory public boolean is

17、validuser(string username) trylist userlist = sessionfactory.getcurrentsession().creatquery(hql).setparameter(0,username).list();if (userlist.size() 0) return true; catch (hibernateexception ex)throw converhibernateraccessexception(ex); 优点:与spring框架完全分离。缺点:(1)无法使用spring框架封装所提供的额外功能.如,直接使用hibernate a

18、pi 需用try.catch()处理hibernateexception异常。(2)需在实现类中加入setsessionfactory(sessionfactory sessionfactory)属性,接收依赖注入的sessionfactory。2、继承 spring 的 hibernatedaosupport 使用 hibernatetemplate (不推荐使用getsession()。public class daoimp extend hibernatedaosupport implates daoprivate static string sql = from user u wher

19、e u.username=? ;public boolean isvaliduser(string username) list userlist = gethibernatetemplate().find(sql,username);if (userlist.size() 0) return true; public boolean isvaliduser(string username,string password) throw dataaccessexception session session = getsession();/不推荐使用,用完后需手动关闭string userlis

20、t=new string2;userlist0=username;userlist1=password;trylist userlist = session.find(hql,userlist); /hibernate语句; session.close();if (userlist.size() 0) return true; catch (hibernateexception ex)throw converhibernateraccessexception(ex); 特点:对hibernatetemplate没有提供的功能,可以直接调用hibernatedaosuppor对象的getsess

21、ion()方法(极其不推荐使用)得到session对象实例用try hibernate api catch (hibernateexception ex )操作。.3、对 hibernatetemplate 没有提供的功能, 还可以用hibernatecallback 回调的方法管理数据库. (极其推荐)。/* 使用 sql 语句进行操作* param sql hsql 查询语句* param offset 开始取数据的下标* param length 读取数据记录数* return list 结果集*/public list getlistforpage ( final string hql

22、 , final int offset , final int length ) list list = gethibernatetemplate().executefind ( new hibernatecallback ( )public object doinhibernate ( session session ) throws hibernateexception, sqlexception query query = session.createquery ( hql ) ;query.setfirstresult ( offset ) ;query.setmaxresults (

23、 length ) ;/query.setcacheable(false); /for(inti=0;ivalues.length;i+) /query.setparameter(i,valuesi); / list list = query.list ( ) ; return list ; ) ; return list ;1.3. 论文内容概要介绍严格依照软件工程的思想,本软件分为可行性研究,需求分析,概要设计,详细设计,软件测试这些步骤,其中本文的第二章对本软件的可行性研究进行讨论,包括评价尺度,技术可行性和经济可行性。第三章主要对软件进行需求分析,这一章详细就软件应该达到的功能进行说明

24、。第四章是本文最重要的一章,这一章是对软件的整体设计,包括概要设计和详细设计,概要设计主要对于系统中用到的数据结构和类进行说明,以及对于用户使用界面的设计,包括系统的布局。详细设计对于需求分析中定义出的功能进行说明,具体到使用的技术和解决思想。第五章是对系统的简要运行界面的展示和说明。最后是对于系统软件测试的结果的过程说明,以及解决在测试中发现的软件中系统的错误的方法,分为本地测试和联机测试,最后是对于这篇论文的结语,总结了在设计和开发过程中的收获和缺憾。2. 可行性研究可行性分析(feasibility analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性

25、和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容:1、经济可行性:主要是对项目的经济效益进行评价,本系统开发经费在经济上是可以接受的,并且本系统实施后可以显著提高工作效率,提高教学质量。所以本系统在经济上是可行的。2、技术上的可行性:技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该管理系统采用了browser/server模式进行开发。browser/server体系结构紧密的结合了int

26、ernet/intranet技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器sql数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。 2.1. 项目要求(1) 由于系统登录对应的是特定的对象,所以系统需要经过有效的身份

27、验证才可以登录。(2)系统的权限一般分为两种:管理员、学生和评分老师。不同的身份使用不同的权限和功能。(3)管理员需要对试题、考生和评分老师进行有效的管理,负责试题的录入及更新和修改,对试题的分类,每次考试前,需要对试场环境和考生状态进行考前初始化工作。(4)系统要有良好的试卷上传和回收功能,确保信息传送的正确性。(5)系统要有一个友善的界面,确保考生考试的顺利进行。 (6)系统提供对考生成绩的查询等管理功能。(7)系统应具有良好的安全性管理。2.2. 系统的主要开发目标首先,因为自动出题系统是面向特定的某些对象的,所以要将整个系统的角色分为三种,分别是管理员,评分老师和考生。这样将不同的权限

28、分给不同的角色。然后,考生需要自测科目和题库的来源,所以管理者需要对考试科目和试题库进行维护,最后自测者需要选择试卷进行自测。2.3. 开发的可行性1、经济方面的可行性由于该软件是一个小型的数据结构自动出题系统,所以进行该软件的开发经费和投资较少,只需学校现有机房即可,系统的开发并不太复杂和繁琐,操作尽可能简单易行。在开发过程中,由一个人独立开发,用时三个月左右,所需成本费用主要为人工费用,再加上计算机和软件等构成该系统的开发成本。2、技术方面的可行性由于该系统是小型的数据结构自动出题系统,采用b/s模式,开发难度适中。通过对各种开发工具和数据库之间进行比较以及指导老师的建议,最终确定采用js

29、p。数据库方面则选用了sql server2005进行设计。b/s结构的最大优点是具有强大的使用和处理数据的能力,它将数据处理任务分开在客户端和数据库服务器上进行,有利于充分利用网络的计算资源,该操作还大大减少了网络的传输量,从客户发往数据库服务器的只是查询请求,从数据库传回的只是查询的结果。以简单的两层客户机/服务器系统而言,客户端是指应用软件以图形接口显示数据并让用户进行添加、修改等并行输入输出作业的部分,也就是用户接口负责向后端的数据库索取数据,执行客户端软件的工作。服务器所执行的后端数据库服务器,则专门执行数据的存储、检索、管理、备份等种种关键操作。3. 需求分析需求分析就是发现、求精

30、、建摸、规格说明和复审的过程。为了发现用户的真正需求,首先应该从宏观角度调查、分析用户所面临的问题。也就是说,需求分析的第一步是尽可能了解当前用户的情况和需要解决的问题。3.1. 市场需求当前考试系统中,仍有许多是基于c/s模式的,每一次伴随着系统的升级,都要在每个客户端更新软件,耗时耗力。可喜的是,随着技术的发展,基于b/s模式的在线考试系统越来越多,逐渐占据了主导地位。它克服了c/s模式下的许多缺点,从传统的基于c/s模式的考试系统转变到基于b/s模式的考试系统,可以使用户在任何一台电脑上,只要可以上网,就可以使用该服务,大大简化了操作,为用户提供了方便。另一方面,也为教师的管理和批阅工作

31、提供了方便,提高了效率。但是据我多方的观察和研究,发现大多数的在线考试系统都是采用基于页面的模式开发,每个页面中都包含了要用到的所有功能逻辑,导致代码重复率高,结构不够清晰,维护升级起来也很费时间和人力。鉴于这种情况,所以我们将j2ee的概念加入到在线考试系统中来,使得该系统更易于升级和维护。3.2. 软件功能分析根据自动出题系统的实际要求,结合现在的实际操作过程,系统应该实现以下功能:针对管理员角色:(1) 管理员维护:对现有管理员进行管理和添加新的管理员。(2) 难度管理:要对课程难度进行控制。(3) 题库管理:录入新的试题和管理现有试题。(4) 试卷管理:录入新的试卷和管理现有试卷。(5

32、) 考生管理:添加新的考生和管理现有的考生。(6) 评分老师管理:对系统的评分老师进行添加和管理。(7) 考生分数查看:对于已经选择题目参与过自测的考试分析进行查看。针对考生角色:(1)在线自测:考试选择试题进行自测。(2)在线考试:查自己自测的分数。针对评分老师角色:(1) 在线评分:学生提交试题之后老师对其评分。除了实现上述功能以外,数据结构自动出题系统还应该具有友好、简洁的界面,安全性高,稳定性强的特点。3.3. 软件的非功能性需求作为一种软件产品,除了在功能方面必须达到用户的基本要求以外,还必须在意一些非功能方面的因素,诸如:软件的用户操作界面的美观和简洁,以及界面图标的标准化和规范化

33、。软件要有一定的兼容性,应该兼容当前的主流操作系统平台,象windows 98/nt/me/2000/xp/2003 等。硬件方面应当要求配置低一点,保证程序运行所占用的资源尽量少,像这样的小型开发软件应该适用于现大多数的计算机平台。4. 系统设计4.1. 总体设计4.1.1. 基本简介该系统是专门用于用户注册、登录、试题查询的应用web程序。它应该具有开放性、方便性和灵活性。管理员可以轻松地向题库添加、修改和删除试题。4.1.2. 运行环境为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即internet,也可适用于内

34、部的局域网。其运行要求如下:客户端: windows95/98/2000/xp,internet explorer(ie)等服务器端: windows2000/xp,ie,jdk,tomcat等。数据库:sql server,运行于服务器端。开发平台:my eclipse4.2. 系统模块结构图根据需求分析,在线自测系统的功能结构图如下:数据结构自动出题系统管理员维护难度管理题库管理生端试卷管理考生管理评分老师管理考生分数查询图4.1 管理员端系统结构图数据结构自动出题系统生端在线考试分数查询在线自测图4.2 考生端系统结构图评分老师只能对学生所完成的自测题目进行评分功能。数据结构自动出题系统

35、评分老师阅卷图4.3 教师端系统结构图系统的流程图如下:图4.4 题库流程图根据数据结构自动出题系统的业务需求而对数据库进行了设计,具体数据库设计的e-r图如下:图4.5数据库设计e-r图4.3. 详细设计 详细设计是整个设计过程中,最重要的步骤之一。下面就分如下几个部分对系统进行详细设计:(1) 用户个人信息设计(2)数据库中表的设计(3)功能模块的详细设计。4.3.1. 用户信息设计用户个人信息设计,首先应该实现用户名和密码的设计。用户名要求不能为空、重复,密码输入的两次信息应该一致,然后应该实现用户名密码的修改,最后要求管理员对注册用户的维护操作。4.3.2. 数据库中表的设计(1)数据

36、库名称为 db_exam(2)数据库中的关键数据库表格设置下表为管理员表,主要用于存储管理员编号、管理登录名和管理员登录密码。表4.1 t_admin序号字段名称类型长度标志描述1useridint4主键2usernamevarchar503userpwvarchar50下表为学生信息表,主要用于存储学生编号、学号、真实姓名、性别、年龄、登录账号、登录密码以及是否删除标示。表4.2 t_stu序号字段名称类型长度标志描述1stu_idint4主键2stu_xuehaovarchar503stu_realnamevarchar504stu_sexvarchar505stu_agevarchar5

37、06login_namevarchar507login_pwvarchar508delvarchar50下表为评分教师表,主要用于存储教师编号、真实姓名、性别、年龄、登录账号、登录密码以及是否删除标示。表4.3 t_tea序号字段名称类型长度标志描述1tea_idint4主键2tea_realnamevarchar503tea_sexvarchar504tea_agevarchar505login_namevarchar506login_pwvarchar507delvarchar50下表为试题难度表,包括难度编号、难度级别以及是否删除标示。表4.4t_nandu序号字段名称类型长度标志描述1

38、nandu_idint4主键2nandu_namevarchar503delvarchar50下表为该系统核心表题目表,其包括试题编号、试题内同、试题类型、选项内容、试题难度以及试题是否删除标示。表4.5t_timu序号字段名称类型长度标志描述1timu_idint4主键2timu_namevarchar503timu_leixingvarchar504timu_xuanxiangavarchar505timu_xuanxiangbvarchar506timu_xuanxiangcvarchar507timu_xuanxiangdvarchar508timu_daanvarchar509tim

39、u_fenshuint410nandu_idint411delvarchar50下表为试题上传表,主要用于记录通过上传而得到的试题的名字。表4.6files序号字段名称类型长度标志描述1fileidint4主键2filenamevarchar50下表为试题介绍表包括试题编号、试题介绍、创建时间及试题是否删除标示。表4.7t_shiti序号字段名称类型长度标志描述1shiti_idint4主键2shiti_namevarchar503shiti_jieshaovarchar504shiti_shijianvarchar505delvarchar504.3.3. 登录设计在用户登录时检查用户名和密

40、码是否有填写,如果未填写则提示并返回,检查通过之后把数据提交给服务器,打开数据库检查用户填写的信息是否正确,登录名称、密码是否相符合,若符合管理员登录信息则登录成功,进入主界面。此模块用于验证用户的信息,保证了系统内部资料的安全性。其流程图如下图4.6登录模块流程图该模块的java类设计:实现该模块的java类为:ui.loginframe和app.dbaccess类ui.loginframe类:该类用于显示教师登录窗口,并且负责判断用户输入的用户名密码是否正确。主要方法介绍:okbutton_actionperformed(actionevent e):该方法在用户点击确定按钮时被调用,取得

41、界面上输入的用户名和密码,如果用户名或者密码不正确,则提示用户重新输入。若用户为系统合法用户,则允许用户登录系统,打开系统主界面。app.dbaccess类:该类为底层数据库操作类。实现基本的数据库操作,如插入,删除,修改。主要方法介绍:getconnection():用于返回一个与数据库连接(connection)对象。executeupdate(connection conn, string sql):执行insert、delete和update语句。对数据库表进行插入删除和更新。executequery(connection dbcon, string querysql )根据给定的sq

42、l语句,进行查询,返回 defaulttablemodel对象。4.3.4. 管理员对题库的管理和维护若要添加试题,先点击添加按钮,然后在上面的试题信息部分填入试题的内容,填写好后,点击保存按钮即可将试题保存到数据库。若要修改试题,在下面的表格中选择要修改的试题,修改上面的试题内容,然后点击保存按钮即可将修改后的试题保存到数据库。若要删除试题,在下面的表格中选择要删除的试题,然后点击删除按钮,如果确认删除,系统将会把指定的试题删除。其流程图如下:图4.7题库维护模块流程图4.3.5. 对题库中试卷的修改在该功能模块中可以对试卷的基本信息进行修改,同时也可以打开试题查询界面,将试题手动添加到选中

43、的试卷中。其流程图如下:图4.8 题库试题修改5. 系统实现5.1. 系统登录界面在登录界面,可以实现选择不同的身份进行登录。其角色分为:管理员、评分老师、考生。并在登录的同时用javascript实现了对是否输入用户名、是否输入密码以及身份是否选择进行了验证。图5.1登录界面5.2. 管理员管理界面此为管理员登录后的界面,在该界面管理员能够进行对管理员管理,考生管理,评分老师管理,最重要的是对题库经行管理。可以添加试题难度;根据不同难度进行搜索试题;可以添加试卷;并根据不同的难度组建试卷。图5.2管理员管理界面5.3. 管理员添加组卷界面此为管理添加试卷组成试卷界面,在此界面管理员能够通过手

44、动添加组成不同难度的试题供学生考试和平时练习。图5.3管理员添加组卷界面5.4. 管理员上传最新试题界面在此界面管理员可以通过上传功能实现上传最新试题或者老师提交的试卷以供学生平时练习。图5.4管理员上传试题界面5.5. 考生界面此为考生登录后界面,在此界面考生能够进行在线考试;查询自己的考试分数;同时还能够在平时登录系统进行自我测试对数据结构的学习情况。图5.5考生界面5.6. 评分老师界面此界面为评分老师登录后的界面,在此界面评分老师能够对选择性的对所参加考试的学生试卷进行评阅,并给出学生的成绩。图5.6 评分老师界面6. 软件测试在基本完成了程序的详细设计和编码,剩下的工作就是对软件进行

45、测试。软件测试是发现软件中错误和缺陷的主要手段。在一般情况下,软件测试的过程与整个软件开发过程基本上是平行进行的。软件测试是非常重要的因为测试是为了及时发现应用程序中的错误而执行程序的过程,它的目标是暴露程序中的错误,及时发现问题,提出相应的修改方案,及时解决问题,使系统更加完善。单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也

46、称程序调试。156.1. 测试结果分析与调试首先,我对这个毕业设计程序的每个模块和方法都进行了单体测试,由于第一次正式的按照软件工程的开发流程开发一套软件程序,在测试时感触颇深。感叹自己编写的程序在测试环节的时候问题出现之多。其中有些问题很棘手,感到很莫名其妙,但后来经过查阅书籍和相关资料,都依依得到了顺利解决,其中大部分感觉莫名其妙的问题的产生是因为自己对相关技术掌握的不够扎实和细致,同时也感叹到编写出一套商用的软件是多么的不容易。在调试和测试的过程中,在老师和同学的帮助下,在查阅了一些书籍后,慢慢学会了myeclipse的调试功能,提高了测试的效率。下面简单的介绍一下,测试过程中都遇到了哪

47、些典型的问题,以及解决的办法。从数据库中读出数据后,以object类型返回,直接调用object.tostring()方法输出该对象的字符串表示。该错误在调试的过程中没有发现,但是在真正测试的时候,java的控制台抛出了nullpointerexception,后来查找到原因:因为数据库表中某些字段可以为null,所以数据库表中相应的字段可以没有数据,所以返回的object是null,这样在调用object.tostring()的时候,就发生了空指针异常,后来在调用object.tostring()之前,加了if判断,问题得以解决。在生成试卷的程序里,需要取得数据库表的结构,刚开始编写了一个方

48、法getresultsetmetadata ()返回resultsetmetadata对象,然后将该参数传递给另外一个方法genpaper(),但在取得字段的名字和类型时,控制台抛出了数据库连接已关闭的异常信息。后来通过查阅资料和书籍,发现在getresultsetmetadata方法里面关闭了数据库连接(connection),所以出现了该异常,后来将这两个方法合并,问题得到了解决。在生成试卷的程序里,需要先生成sql的插入语句,在测试时抛出了sqlexception异常,后来我检查了一下插入语句,问题出在插入语句上,生成了下面的形式insert into 试卷(试卷名称,试卷名称,) va

49、lues(名称1,考试,)这样的语句,在字段名的位置,第一个字段重复出现,经过认真调试和检查,发现取得字段的语句在循环的外面,所以取得的是第一个字段的名称,将其放到循环的里面问题就解决了。其次,我对整个程序做了整体测试,经过前一阶段的单体测试,本以为整体测试不会发生什么问题,但结果出乎了我的意料。在整体测试过程中暴露了设计过程中的一些问题,比如预先设计的方法参数不足,导致前端用户界面输入的数据没办法发挥作用。还有发现设计中漏写了一些方法,导致整个系统不能正常运行,后来发现问题一一修正后,系统得以完好运行。调试和测试阶段是软件工程开发过程中很重要的一个阶段,没有测试就没有可以健壮运行的软件,如果

50、一套软件不能有一定的容错能力,就没有办法正式的投入使用。调试和测试的过程是需要耐心和严谨的,一个小小的误差往往是需要反复测试才能得以改正的。最后经过调试和测试,系统全部功能运行完好,实现了数据库之间利用xml文件进行数据交互。通过以上的测试方案和测试方法,对该系统的各个细节的功能进行了详细的测试,得出以下的测试结果。本系统已基本上实现来题目要求的各项功能。本系统的界面友好,可以很快的掌握操作方法。系统的优点:(1) 界面友好,操作简单。接触计算机较少的操作人员也能根据菜单项提示进行操作。(2) 信息管理详细,提供了强大查询功能。(3) 业务流程合理安排方便用户使用。系统基本上达到了设计要求,基

51、本功能已经实现,但系统仍存在不足之处,某些细节和内容上有待改进和加强。结 论刚开始拿到设计题目时感觉很盲目。但在老师的指导下,自己硬着头皮,从一点一滴学起,编写和调试一个个简单的例子程序。按照软件工程的开发流程从需求分析开始,查阅相关资料,对系统进行概要分析、设计,熟悉软件的开发环境、界面,到编码、测试,调试,直至各个功能的最终实现,毕业论文的撰写。为将来的工作打下了坚实基础,让我对实际软件的开发工作有了深刻的认识,也按时顺利地完成毕业设计这个项目。由于自己经历了软件开发的全过程,所以也体会到了软件开发的创造性和严谨性,在此过程中我受益匪浅。与此同时通过对系统的需求分析和在编码中对错误的处理,

52、培养了自己的自学能力和独立分析、解决问题的能力,这对我以后的学习和生活都有相当大的影响。毕业设计真的是一件辛苦的事,但在这之中所得到的知识是无穷尽的,所学到的一些方法是书本上没有的,是靠自己一点点总结出来的。但由于自己的能力有限,做出的程序还不够完善。可是在这一段时间内自己从各方面都得到了锻炼和提高。今后我会更加严格的要求自己,找出自己的不足来完善自己。致 谢毕业设计要结束了,在这里我要感谢帮助过我的老师和同学们。真的谢谢你们!在毕业设计的这段时间里,我得到了指导老师的大力指导和热心的帮助。从而使我能够顺利的完成此次的毕业设计。赵老师从毕业设计一开始就严格的要求我们,在需求分析阶段,赵老师给我

53、提出了许多的宝贵意见,指明了毕业设计的大体方向,使得我避免陷入迷茫状态。也少走了很多弯路节省了很多的时间。同时,赵老师也提供给我一些关键的参考资料,并给予我耐心的指导,帮助我更深入的了解本题目隐藏的各种问题。对于我所不明白的问题耐心的多次讲解,所有的这些指导与帮助,在毕业设计期间都成为了我进行下去的强大的动力和支持。在论文的撰写阶段,赵老师及时的指出我论文的错误,并且放弃了周末的休息时间来检查我们论文,找出论文的不足,并且批改的极为细致,好多我没有注意到的小细节赵老师也给我指出来了,使我能够及时的发现错误并能马上将其改正。正因为这些原因,在此,我要对赵老师表示我深深的谢意。并且我谨代表我自己对赵老师说一声:“谢谢您!”。同时,我也要衷心的感谢在毕业设计期间给予我关心和帮助我的同学,他们在毕业设计

温馨提示

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

评论

0/150

提交评论