1、实现的功能
使用Java技术编写的Java applet 程序,在网页上发布,可以方便与用户交互,用户可以初始化算法元素,可以选择执行方式(自动执行或单步执行);可以起止程序的执行;显示当前程序运行的状态;同步显示算法描述与算法过程的变化。这里我们以直接选择排序(升序)为例子,来分析采用Java技术实现算法的摸拟演示。效果图:
说明:"直接排序数据",文本框用来接收用户输入的数据。"排序数据个数",显示用户输入的数据数。"当前最小值",当前程序执行时的最小值。"运行状态",显示当前程序运行状态。"确定输入",接收用户的输入。"自动执行",根据用户的输入自动进行排序演示。"单步执行",根据用户的输入,用户可以手动控制程序的执行过程。"结束演示",结束演示,等待下一次演示。"列表框",在程序执行过程中与图形变化同步显示相对应的算法描述。
向上箭头前面为已排好序的数据,为一有序表;向上箭头后面的数据为待排序区间,是一无序表;双向向下箭头表示两数据交换。根据对排序过程分析,可以用下面图形符号表示算法中的元素:
其中,向下箭头表示当前正在排序区间内查找的元素,向上箭头为当前排序区间的开始位置。
3、输入输出处理的实现
为了增强模拟程序的交互性,在程序中将引入元素的用户输入、程序执行过程中算法描述同步执行、程序运行状态的显示。在程序界面上定义一个单行文本框来让用户输入元素,并将定义初始元素(定义可以放在init()中):
在程序中定义StreamTokenizer类和array[]数组来接收用户输入的数据。 StreamTokenizer即令牌化输入流的作用是将一个输入流变成令牌流。这里使用的是StreamTokenizer.TT_NUMBER: 表示读到的令牌是数字,数字的值是double型,可以从实例变量nval中读取。
新闻热点
疑难解答