java+排序算法动画演示系统Word文档格式.docx
- 文档编号:6228767
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:76
- 大小:385.64KB
java+排序算法动画演示系统Word文档格式.docx
《java+排序算法动画演示系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《java+排序算法动画演示系统Word文档格式.docx(76页珍藏版)》请在冰点文库上搜索。
2.1系统范围3
2.2用例分析3
2.2.1识别参与者3
2.2.2识别用例4
2.2.3构建用例图3
2.2.4细化用例图4
3构建类模型5
3.1确定类5
3.1.1寻找类5
3.1.2筛选类5
3.1.3准备数据字典5
3.2确定属性5
3.4继承分析6
3.5构建系统包图6
4状态模型7
4.1确定状态7
4.2构建事件跟踪图7
4.2.1准备交互式脚本7
4.2.2确定事件8
4.2.3事件跟踪图8
4.3构建状态图9
5交互模型10
5.1构建顺序模型10
5.1.1准备场景10
5.1.2顺序图10
5.2构建活动模型11
5.2.1确定活动11
5.2.2活动图12
6定义服务13
6.1服务分析13
6.2系统最终类图14
7系统实现14
7.1系统设计14
7.1.1优化分析模型14
7.1.2系统体系结构设计16
7.1.3用户界面设计16
7.2类设计17
8系统测试18
8.1测试环境18
8.2用户界面测试18
9系统使用及说明19
结束语21
参考文献21
附录23
谢辞54
排序算法动画演示系统
第1章系统概述
1.1项目概述
1.1.1项目简介
排序在人们的日常生活和学习、科研、生产等各个方面有着重要的应用。
此次毕业设计拟开发一个排序算法动画演示系统,以提高对排序算法的掌握程度。
本系统实现八种不同排序算法即:
用户可以选择排序算法以演示输入数据在该排序算法下的排序过程。
1.1.2项目开发的意义
随着计算机技术的发展,各种排序算法不断的被提出。
排序算法在计算机科学中有非常重要的意义,且应用很广泛。
在以后的发展中排序对我们的学习和生活的影响会逐渐增大,很有必要学习排序知识。
因此此次毕业设计一方面使自己掌握排序的知识,另一方面锻炼一下独立开发系统的能力。
1.2系统需求描述
1.2.1功能需求
本系统结构简单,主要有排序算法演示处理和代码显示。
该系统的功能结构图如下:
图1.1系统功能图
1)排序算法演示处理
排序算法演示模块能够根据用户选择的排序算法对数据进行排序,动态的显示出排序过程。
2)代码显示
用于显示用户选择的排序算法的代码。
1.3系统环境设计
1.3.1硬件环境
A.一台奔腾系列微机
B.内存要求在512M及其以上
C.光栅显示器或液晶显示器或等离子显示器一台
1.3.2软件环境
A.Windows2000或WindowsXP及其以上操作系统
B.安装有JDK6及其以上开发包
1.3.3系统接口
本系统要求有JDK6及其以上开发包就行,所以在实现上不是很复杂不需要什么系统接口。
第2章系统陈述
2.1系统范围
对于排序算法演示,本系统用用户输入的数据进行各种排序,并显示各排序算法的代码。
2.2用例分析
2.2.1识别参与者
参与者就是系统在执行的过程中不可缺少的且与系统有交互行为的外部实体、对象或系统。
1.用户打开系统界面进行想要的操作或不进行任何操作。
2.用户输入数据。
3.用户可以从界面上选择所要进行排序演示。
4.系统将数据的排序演示过程和用户所选的排序算法的代码呈现给用户。
5.系统退出。
经过上述分析,发现系统在执行的过程中只有两个参与者,它们是用户和界面。
图2.1显示了这两个参与者。
图2.1参与者
2.2.2识别用例
用例是系统执行的外部可见的产生对参与者有价值结果的动作序列。
基于问题陈述给出以下分析并从中发现系统用例。
1.使用者打开系统界面,输入数据并从中选择排序算法。
2.系统显示相应排序演示操作并显示相应排序算法的代码。
从上述分析中我们可以初步识别出系统用例:
输入数据、选择排序算法、排序演示、显示代码,图2.2给出了这四个用例。
图2.2系统用例
2.2.3构建用例图
图2.3系统用例图
(一)
2.2.4细化用例图
将用例细化可得到分解的用例:
将“排序演示”用例分解为:
A:
选择排序算法从界面上选择要进行排序的排序算法
B:
确定数据移动顺序根据选择的排序算法确定数据移动顺序
C:
演示排序过程显示选择的排序算法对输入数据的排序过程和排序算法代码
图2.4系统用例图
(二)
第3章构建类模型
3.1确定类
3.1.1寻找类
根据名词识别法从需求陈述中获取如下类与对象:
系统界面输入数据数据排序代码排序演示算法演示过程用户代码。
3.1.2筛选类
1.无关删除
本系统进行特征提取只关心数据、算法、排序代码、算法演示过程等处理过程,其它的都不是本系统关心的。
在上面获取的对象中‘系统’和‘用户’和本系统内部处理无关,所以需要删除。
2.与实现相关的删除
用户输入的数据,并不能作为一个独立的类进行操作,所以需要删除。
3.重复删除
排序代码和代码在此都表示排序算法代码,所以删除排序代码。
4.最终确定的类
经过以上几步的筛选且由于功能简单确定为一个类:
排序演示。
3.1.3准备数据字典
上一步确定了一个类,对这个类进行介绍:
排序演示:
该类主要是呈现给用户的图像界面,把数据排序的演示过程和排序算法的代码呈现给用户。
3.2确定属性
属性是对象或类的数值特性及对象或类的性质,借助属性能够对对象和类的结构有更清晰的认识,以下来分析本系统所属类的属性。
本系统有一个类:
排序演示。
根据问题陈述,首先要的把本系统所具有的功能呈现给用户,其次需要用户选择排序算法,把输入的数据按照选择的排序算法得到的排序过程和排序代码显示给用户。
具有的属性为排序算法名(即用户选择的排序算法的名字,由用户按按钮获得)。
所以属性可以说是排序算法选择按钮。
其次在演示过程用于对数据进行排序,确定数据移动的顺序,具有的属性为:
速度。
显示用户选择的排序算法的代码。
具有的属性为:
排序算法名(同上)。
所以排序演示类具有的属性为:
排序算法选择按钮、速度。
经过上述分析给出带有属性的类图:
图3.2含属性的类图
3.4继承分析
在本系统中有一个类:
排序演示类。
所以本系统不存在泛化关系。
3.5构建系统包图
包是将有着公共主题的一组元素,本系统含有一个类。
所以将本系统的类为一个包:
排序演示包。
图3.3显示了本系统的包图。
图3.3系统包图
图3.4描述了排序演示包的构成。
排序演示包构成
图3.4演示过程包的构成
第4章状态模型
4.1确定状态
状态是对象的生命周期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。
当用户启动本系统的界面时系统开始运行,经过显示排序过程和显示排序算法的代码结束本次处理。
在这个过程中具有多个状态,首先用户需要启动界面,接着接受用户输入的数据,接受用户的选择,然后显示排序过程和排序算法的代码,下一次开始或结束。
排序演示类有如下状态:
开始(用户启动界面),运行状态(接受用户输入、选择开始处理)结束状态(传递处理结果)。
4.2构建事件跟踪图
4.2.1准备交互式脚本
脚本是指系统在某一次执行期间出现的一系列事件,即序列事件。
每当系统进行一次执行时系统中对象与外界用户交换信息即产生一个事件开始,继而产生一系列事件触发整个过程的执行直到结束。
系统一次执行过程中的正常脚本:
1.用户启动系统界面
2.系统界面要求用户输入待排序的数据
3.系统界面接受用户输入的数据
4.系统界面要求用户选择排序算法
5.系统界面接受用户选择的排序算法,并传递排序算法名进行处理
6.系统界面接受处理结果
7.系统界面显示演示过程和用户选择的排序算法的代码
8.下一次运行或系统退出
系统一次执行过程中的异常脚本:
1.用户启动系统界面
2.系统界面要求用户输入数据
3.系统界面要求用户选择排序算法
4.系统界面结束用户选择排序算法
5.系统界面确认出错,系统内部处理出错
6.系统界面取消此次操作
7.系统界面请求用户输入数据
8.系统界面请求选择排序算法
4.2.2确定事件
根据脚本确定如下事件:
启动界面、要求输入、要求选择、接受选择、传递排序算法名、接受处理结果、显示演示过程和用户选择的排序算法的代码、等待下一次运行或系统退出等。
4.2.3事件跟踪图
从上一节中找出了该系统在一次执行过程中的所发生的事件,和这些事件相关的对象为用户、界面、演示过程、代码等。
那么此节的事件跟踪图就是把这些事件和相应的对象清晰的表示出来,竖线代表对象,箭头代表发生的事件。
事件跟踪图如图4.1所示:
图4.1系统事件跟踪图
4.3构建状态图
下面给出了排序演示类的状态图:
图4.2排序演示类的状态图
第5章交互模型
本章主要用顺序图、活动图来描述交互模型。
顺序图显示交互的对象和交互的时间顺序,而活动图显示计算的处理步骤之间的控制流。
5.1构建顺序模型
顺序建模用于描述对象之间的动态交互关系,着重体现了对象间消息传递的时间顺序。
顺序模型包括俩部分:
一是场景的准备,二是构建顺序图。
5.1.1准备场景
场景包含对象之间的消息以及对象所执行的活动,每条消息把信息从一个对象传递到另一个对象。
以下是本系统的一个与实际用户交互的场景:
1.某一用户启动系统界面
2.系统显示系统界面
3.系统等待用户输入数据
4.用户输入数据
5.系统等待用户选择排序算法
6.用户选择排序算法
7.系统接受用户选择排序算法
8.系统界面把处理结果显示出来,并呈现给用户
9.系统等待下一次运行或关闭界面
10.用户关闭界面
11.系统退出
5.1.2顺序图
顺序图描述了对象随时间的推移相互之间交互信息的过程,其中显示的对象沿竖轴排列,而交互的信息沿水平轴按时间的顺序排序。
图5.1系统顺序图
5.2构建活动模型
5.2.1确定活动
一个活动是一个状态机中进行的非原子的执行单元,活动的执行最终会演化成一系列独立的动作的执行。
而每个动作的执行将会改变系统的状态和消息的传递。
一个动作可以调用另一个动作,同时也可以发送一个信号。
以下是本系统某一次执行过程,可以从中活动系统一次执行过程中的活动。
1.用户要求进行排序算法演示并显示排序代码
2.用户需要启动系统
3.用户输入数据
4.用户选择排序算法
5.系统对数据进行排序处理
6.系统对数据进行移动处理
7.系统对排序算法进行显示处理
8.系统显示排序演示过程和排序算法的代码
9.系统等待下一次运行或此次处理结束,活动终止
5.2.2活动图
活动图主要用于描述系统在一次执行过程中各种活动的执行顺序,即描述一个操作中的所要进行的各种活动的执行流程。
一个活动图一般包括动作、活动节点、流和对象值。
图5.2给出了本系统在一次执行过程的活动图。
图5.2系统活动图
第6章定义服务
在第三章中的类模型无法完全确定各个类的服务,而建立的状态模型和交互模型之后,才能最终确定服务,因为这两个模型确定了系统各类应具有的服务。
6.1服务分析
确定服务需要从两个方面进行:
一是类实体的常规行为,二是系统中特殊需要的行为。
1.常规行为
直接从类中导出操作,一般类都定义了属性,而每个属性都是可以被访问的,即每个含有属性的类应该定义能够访问该类属性的服务。
排序演示类含有两个属性,定义访问排序算法名和数据移动的速度的服务。
2.从状态模型中导出操作
第四章确定了如下事件:
要求输入、接受输入、要求选择、接受选择、传递排序算法名、接受处理结果、显示演示过程和排序算法的代码、系统退出。
我们可以从中导出如下服务:
选择排序算法、传递排序算法名、显示演示过程和排序算法的代码、系统退出等服务。
3.从交互模型中导出操作
顺序图描述了对象之间动态的交互关系,并且描述了这些对象随时间的推移相互之间交互信息的过程。
对象之间的交互信息必须启动相应的操作来完成。
我们可以从顺序图得出如下服务:
显示界面、输入数据、选择排序算法、传递排序算法名、显示演示过程和排序算法的代码、关闭界面等。
我们从活动图中可得到如下操作:
输入数据、选择排序算法、对数据进行排序处理、对数据进行移动处理、排序算法进行显示处理、显示排序演示过程、显示排序算法的代码。
4.确定服务
从上面得出了两个服务,因为速度服务可以用休眠时间控制,经过对得到的服务进行筛选和合并相同服务,得出如下最终服务:
获得排序算法名,即获得用户选择的按钮。
6.2系统最终类图
经过以上分析我们得出了类以及类的属性和操作,下面对各类进行描述和建立含属性、操作的类图。
(1)类描述
1.排序演示类
属性:
排序算法选择按钮
服务:
获得排序算法名、显示排序演示过程、显示排序算法代码
作用:
接受用户选择的排序算法名、使数据移动、显示排序演示过程、显示排序算法代码等。
(2)最终类图
图6.1最终类图
第7章系统实现
在分析阶段已经明确系统应该做那些内容,本章系统实现就是把系统应该做的事情转变成系统的实现方案。
7.1系统设计
7.1.1优化分析模型
本系统的功能就是将用户输入的数据在用户选择的排序算法下的排序过程经过一系列的处理最后将得到的排序演示和排序算法的代码显示给用户。
所以可以将本系统划分为四个子系统:
输入子系统、选择子系统、处理子系统和显示子系统。
输入子系统主要实现待排序数据的输入、选择子系统主要实现排序算法的选择;
处理子系统主要是处理数据排序、数据移动处理等;
显示子系统主要是把最后得到的排序演示和排序算法的代码显示在界面上。
图7.1给出了本系统的子系统之间的关系。
图7.1子系统图
输入子系统主要是当用户输入数据时接受数据;
选择子系统主要是当用户选择排序算法时接受选择;
处理子系统主要使数据的移动和排序算法的代码显示出来;
显示子系统将得到的排序演示过程和排序算法的代码显示出来。
图7.2给出了系统的架构:
图7.2子系统架构图
7.1.2系统体系结构设计
本系统经过用户选择排序算法开始执行,只能由用户激发系统开始执行,一次只能处理一种排序算法演示,一次处理完成之后,然后系统将处理的结果反馈给用户。
由用户和系统交互来支配系统的运行。
下图给出了本系统的交互图:
图7.4系统体系结构图
7.1.3用户界面设计
本系统功能简单,没有高复杂性。
只要求能够使用户选择排序算法和将最终的排序演示和排序算法的代码显示出来,需要用户操作的只有选择排序算法,之后就可看到结果。
本系统只要有供选择排序算法的按钮就行了
图7.5系统界面图
7.2类设计
在分析模型中找出的类有如下特点:
(1)该类是根据系统所具备的功能得到的比较理想的类。
(2)类中的属性和操作也只是实现系统功能的主要的一部分。
(3)类之间的联系比较模糊不利于实际中编码。
针对这些特点本节继续对分析模型找到的类进行优化以使利于编码。
1.对类编码化
对分析模型中到的和前一节中增添的类进行程序化。
①排序演示类(SortCartoonDemo)
属性:
Button//排序算法按钮名
操作:
kuaiShuSort()//显示演示过程
maoPaoSort()
duiSort()
zhiJieChaRuSort()
shellSort()
zhiJieXuanZheSort()
guiBingRort()
jiShuSort()
ScoreTextArea.insert(string,sp)//显示排序算法代码
2.优化类联系
由于本系统只有一个类,所以不存在类联系。
3.类描述
⑴排序演示类
publicclassSortCartoonDemoextendsJFrame{
privateJButtonkuaisuButton;
//快速排序按钮
privateJButtonmaoPaoButton;
//冒泡排序按钮
privateJButtonduiButton;
//堆排序按钮
privateJButtonzhiJieChaRuButton;
//直接插入排序按钮
privateJButtonshellButton;
//希尔排序按钮
privateJButtonzhiJieXuanZheButton;
//直接选择排序按钮
privateJButtonguiBingButton;
//归并排序按钮
privateJButtonjiShuButton;
//基数排序按钮
privateTextAreaScoreTextArea;
//显示各种排序算法代码的显示框
privatevoidkuaiShuSort();
privatevoidmaoPaoSort()
privatevoidduiSort()
privatevoidzhiJieChaRuSort()
privatevoidshellSort()
privatevoidzhiJieXuanZheSort()
privatevoidguiBingSort()
privatevoidjiShuSort()
}
第8章系统测试
8.1测试环境
软件测试环境:
WindowsXP操作系统,编程工具选用JDK6
硬件测试环境:
内存要求在512M及其以上奔腾系列机
8.2用户界面测试
用户界面是用户和系统的接口,一个好的用户界面不仅要求能够方便用户使用而且美观。
所以用户界面测试的主要任务是测试用户界面是否友好,界面上的各个控件是否好用。
启动应用程序,选择一个排序算法对界面进行测试,测试发现界面未发现不友好现象。
8.1系统测试图
(一)
第9章系统使用及说明
本系统使用说明如下:
1.启动应用程序,会出现如下系统界面
9.1系统说明图
(一)
2.按下八个排序算法按钮中的一个。
9.2系统说明图
(二)
3.显示数据在该排序算法下的排序演示和该排序算法的代码。
9.3系统说明图(三)
4.关闭窗口
9.4系统说明图(四)
结束语
排序算法是计算机科学中一个重要的部分,掌握好它对以后的学习有很大的帮助。
大学期间只学习了几种基本的排序算法,还有更多的排序算法需要学习。
通过此次毕业设计,第一使我进一步学习了排序算法。
了解到排序算法应用广泛。
及排序技术在现实生活中的重要性。
第二使我感到自己知识的不足,Java中有很多东西,自己只略懂皮毛,尤其对于线程方面的知识很缺乏。
还有就是发现软件工程学得很差,很多地方感到无从下手。
第三使我意识到做事情要认真,要坚持。
由于疏忽和马虎浪费了很多时间。
开始做的时候遇到了一些困难,我放弃了,中间有好长一段时间没理它。
如果坚持一下,可能很快就会解决。
最后我要感谢我的指导老师,在做毕业设计的过程中不仅给我提供了宝贵的资料和还给我提供了很多指导和建议,使我能够顺利的完成毕业设计。
参考文献
[1]朱战立.数据结构使用C语言[M].(第三版).西安:
西安交通大学出版社,2004.234-257
[2]BruceEckel.Java编程思想[M].(第四版).北京:
机械工业出版社,2007.6.669-672
[3]IanSommerville.软件工程[M].(第八版).北京:
机械工业出版社,2006.9.245-260
[4]王克宏、董丽、朱家维.Java技术及其应用[M].(第一版).北京:
高等教育出版社,1999.125-138
[5]张海藩.软件工程导论[M].(第三版).北京:
清华大学出版社,1998.38-41
[6]MarkAllenWeiss.数据结构与算法分析[M].(第二版).北京:
机械工业出版社,2008.3.183-195
[7]张曜、张青、郭立山.Java程序设计教程[M].(第一版).北京:
清华大学出版社,2002.11.38-41
[8]JamesC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 排序 算法 动画 演示 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)