1、實現的功能
使用Java技術編寫的Java applet 程序,在網頁上發布,可以方便與用戶交互,用戶可以初始化算法元素,可以選擇執行方式(自動執行或單步執行);可以起止程序的執行;顯示當前程序運行的狀態;同步顯示算法描述與算法過程的變化。這里我們以直接選擇排序(升序)為例子,來分析采用Java技術實現算法的摸擬演示。效果圖:
說明:"直接排序數據",文本框用來接收用戶輸入的數據。"排序數據個數",顯示用戶輸入的數據數。"當前最小值",當前程序執行時的最小值。"運行狀態",顯示當前程序運行狀態。"確定輸入",接收用戶的輸入。"自動執行",根據用戶的輸入自動進行排序演示。"單步執行",根據用戶的輸入,用戶可以手動控制程序的執行過程。"結束演示",結束演示,等待下一次演示。"列表框",在程序執行過程中與圖形變化同步顯示相對應的算法描述。

向上箭頭前面為已排好序的數據,為一有序表;向上箭頭后面的數據為待排序區間,是一無序表;雙向向下箭頭表示兩數據交換。根據對排序過程分析,可以用下面圖形符號表示算法中的元素:

其中,向下箭頭表示當前正在排序區間內查找的元素,向上箭頭為當前排序區間的開始位置。
3、輸入輸出處理的實現
為了增強模擬程序的交互性,在程序中將引入元素的用戶輸入、程序執行過程中算法描述同步執行、程序運行狀態的顯示。在程序界面上定義一個單行文本框來讓用戶輸入元素,并將定義初始元素(定義可以放在init()中):
在程序中定義StreamTokenizer類和array[]數組來接收用戶輸入的數據。 StreamTokenizer即令牌化輸入流的作用是將一個輸入流變成令牌流。這里使用的是StreamTokenizer.TT_NUMBER: 表示讀到的令牌是數字,數字的值是double型,可以從實例變量nval中讀取。
新聞熱點
疑難解答