freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

算法可視化演示軟件開發(fā)畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-07-24 12:52 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 描述本系統(tǒng)的主要是由四個(gè)算法來(lái)實(shí)現(xiàn)的,: 系統(tǒng)結(jié)構(gòu)圖系統(tǒng)總的來(lái)說(shuō)包括兩個(gè)部分:一個(gè)是基于排序算法的演示系統(tǒng),一個(gè)是基于二叉查找樹的排序系統(tǒng)。在排序算法的系統(tǒng)中主要是冒泡排序模塊、插入排序模塊、選擇排序模塊,實(shí)現(xiàn)排序算法的演示,而二叉查找樹模塊主要是實(shí)現(xiàn)二叉查找樹的插入、刪除、排序功能。在開啟算法可視化演示系統(tǒng)之后,用戶可以選擇排序系統(tǒng)或者二叉查找樹系統(tǒng)進(jìn)行演示,如果選擇的是排序系統(tǒng),就會(huì)出現(xiàn)三個(gè)子系統(tǒng),然后可以對(duì)三個(gè)系統(tǒng)進(jìn)行演示。如果選擇的是二叉查找樹系統(tǒng)就可以對(duì)該系統(tǒng)進(jìn)行插入、刪除、排序操作。第二節(jié) 模塊設(shè)計(jì)一、算法模塊設(shè)計(jì)排序算法模塊設(shè)計(jì)Sort類定義了排序算法的參數(shù),數(shù)組的長(zhǎng)度,排序前的數(shù)組,以及排序后的數(shù)組,獲取排序參數(shù),打印排序前后的數(shù)組等一系列操作,是冒泡、選擇、插入的父類,: 排序類冒泡排序模塊設(shè)計(jì)BubbleSort類是從排序類繼承而來(lái)的,完成對(duì)冒泡排序的排序、:. 冒泡排序類選擇排序模塊設(shè)計(jì)SelectSort類是從排序類繼承而來(lái)的,完成對(duì)選擇排序的排序、:. 選擇排序類插入排序模塊設(shè)計(jì)InsertSort類是從排序類繼承而來(lái)的,完成對(duì)選插入序的排序、:二、界面模塊設(shè)計(jì)界面所含的主要繼承的類此次設(shè)計(jì)我們使用面向?qū)ο蟮脑O(shè)計(jì)模式,算的實(shí)現(xiàn)和可視化的部分寫在各自的類里面,可視化是采用圖形界面寫的。雖然算法不同,但它們之間還是有很多的共同之處。比如:在排序的時(shí)候需要的排序?qū)ο蟮臄?shù)組是整形的,它們必須給外界提供一個(gè)公共的排序方法接口;和它們?cè)谂判蜻^(guò)程中所需要的適配器來(lái)進(jìn)控制,: 界面類的繼承關(guān)系從上圖我們可以清楚的看到類TreeControl和類TreeView都繼承了類JPanel,類而類JPanel又繼承了JComponent。他們既有共性又有特性,如果只考慮他們的共性,而不考慮他們的特性,就不能反映出他們之間的層次關(guān)系,不能完整、正確地對(duì)客觀世界,進(jìn)行抽象的描述,類TreeControl和類TreeView都有類JPanel的所有的特征,即有他們的共性。同時(shí)這三個(gè)類都有JComponent的性質(zhì),而反過(guò)來(lái)則不一定成立。本次設(shè)計(jì)我們所用的算法最多的就是排序算法,類SelectSort 和 BubbleSort 以及類InsertSort都繼承了Sort。它們都有公共的算法,有交換,和開始時(shí)間,結(jié)束時(shí)間,都需要一個(gè)數(shù)組來(lái)存放這些值,Sort就含有它們的公共屬性,而選擇排序,插入排序金額冒泡排序都各自有自己的實(shí)現(xiàn)方法,:主界面模塊的設(shè)計(jì)VisualFrame類是該系統(tǒng)的主界面,該類主要定義了界面的按鈕,以及生成界面的方法和響應(yīng)方法,: VisualFrame類的類圖排序界面模塊的設(shè)計(jì)MainSortApp類是實(shí)現(xiàn)排序算法的界面,在此界面上可以選擇三種排序中的一種進(jìn)行排序,:排序時(shí)彈出界面模塊的設(shè)計(jì)OutPutFrame類是實(shí)現(xiàn)具體排序算法的界面,當(dāng)選擇三種排序的一種算法時(shí)就會(huì)出現(xiàn)彈出的界面,:二叉查找樹界面模塊的設(shè)計(jì)TreeControl的類是實(shí)現(xiàn)二叉查找樹的界面,在此類中定義了插入、刪除、查找等按鈕,將這些按鈕都加入監(jiān)聽,:第三節(jié) 系統(tǒng)流程圖當(dāng)打開演示系統(tǒng)后,顯示的界面上有兩個(gè)按鈕,選擇演示類型,如果是選擇排序,就可以輸入數(shù)據(jù),選擇排序插入排序,或者冒泡排序,或者選擇排序,之后就展示演示過(guò)程,演過(guò)示完后可以選擇繼續(xù)排序,也可以退出循環(huán),結(jié)束此過(guò)程。如果在第一個(gè)分支時(shí)不是選擇的是排序演示,則輸入節(jié)點(diǎn)值,選擇插入、刪除、排序三種方式中的一種,然后展示相應(yīng)的效果,完了之后我們也可以繼續(xù)此操作,也可以結(jié)束此操作。在對(duì)系統(tǒng)進(jìn)行了需求分析和概要設(shè)計(jì)之后的,對(duì)系統(tǒng)進(jìn)行了詳細(xì)的設(shè)計(jì),分析了各個(gè)模塊的流程和步驟,并進(jìn)行了流程的系統(tǒng)分析,繪出的本系統(tǒng)總體工作流程圖。 算法可視化演示軟件開發(fā)總體流程圖第四節(jié) 本章小結(jié)本章主要是對(duì)算發(fā)可視化演示系統(tǒng)進(jìn)行總體設(shè)計(jì),設(shè)計(jì)了程序?qū)?yīng)的模塊,并畫了相應(yīng)的流程圖,為接下來(lái)的系統(tǒng)實(shí)現(xiàn)打下了堅(jiān)實(shí)的基礎(chǔ)。 第五章 系統(tǒng)實(shí)現(xiàn)第一節(jié) 可視化主界面的實(shí)現(xiàn)本段代碼實(shí)現(xiàn)的算法可視化的主界面,當(dāng)開始運(yùn)行時(shí),系統(tǒng)就會(huì)判斷選擇的哪個(gè)按鈕,然后做相應(yīng)的響應(yīng),如果是選擇的排序按鈕,就會(huì)把排序按鈕設(shè)置為不可見(jiàn)的,如果是選擇的二叉查找樹的按鈕那么,這個(gè)按鈕也會(huì)被設(shè)置為不可見(jiàn)的按鈕,也就是界面會(huì)顯示“排序可視化”和“二叉查找樹”兩個(gè)互斥按鈕。首先定義排序可視化和二叉查找樹演示兩個(gè)按鈕:public class VisualFrame extends JFrame{ private JButton sort=new JButton(排序可視化)。 private JButton tree=new JButton(二叉查找樹演示)。 private ActionListener arg0=new ActionListener() { public void actionPerformed(ActionEvent arg0) {//實(shí)現(xiàn)按鈕操作的響應(yīng)方法// TODO Autogenerated method stub if(()==sort){ //用來(lái)判斷發(fā)起事件的控件是不是sort (new Runnable() { // 導(dǎo)致 runnable 的 run 方法在 EventQueue 的指派線程上被調(diào)用 public void run() { try { MainSortApp window = new MainSortApp()。 (true)。 } catch (Exception e) { ()。 } }})。 (false)。//按鈕不可用 (true)。//按鈕可用} if(()==tree){//用來(lái)判斷發(fā)起事件的控件是不是tree DisplayBinaryTree frame = new DisplayBinaryTree()。 (二叉查找樹演示)。 (500, 500)。 (true)。(false)。 (true)。//按鈕 }}}。 public VisualFrame(){ setLayout(new FlowLayout())。 (sort)。 (tree)。 (arg0)。//將排序按鈕加監(jiān)聽 (arg0)。//將樹的按鈕加監(jiān)聽 setSize(200,200)。//設(shè)置界面的大小 setLocationRelativeTo(null)。//使窗口顯示在屏幕中央 (EXIT_ON_CLOSE)。//設(shè)置關(guān)閉動(dòng)作 setVisible(true)。//設(shè)置為可見(jiàn)的public static void main(String[] args) { new VisualFrame()。 }}第二節(jié) 排序算法界面所實(shí)現(xiàn)的功能接下來(lái),將詳細(xì)介紹排序算法界面所實(shí)現(xiàn)的功能:①創(chuàng)建createContents的方法,定義框架并且創(chuàng)建JFrame對(duì)象,設(shè)置內(nèi)容框格的布局,設(shè)置框格中的標(biāo)題文字,并設(shè)置組件的大小和位置。其創(chuàng)建的方法如下:private void createContents() { frame = new JFrame()。 (false)。 ().setLayout(null)。 (排序演示程序)。 (100, 100, 530, 570)。②定義菜單,并創(chuàng)建菜單對(duì)象,設(shè)置文本框,并定義獲得隨機(jī)菜單項(xiàng)對(duì)象:final JMenu menu = new JMenu()。 (其他途徑獲取數(shù)據(jù))。 (menu)。final JMenuItem openFileItemMenuItem = new JMenuItem()。 final JMenuItem getRandomItemMenuItem = new JMenuItem()。③在可視化的演示的時(shí),我們可隨機(jī)生成15個(gè)隨機(jī)數(shù):public void mousePressed(final MouseEvent e) { //隨機(jī)生成15個(gè)數(shù) Random rnd = new Random()。 int[] nums = new int[15]。 for (int i=0。 i15。 i++) { int p = (650)。 if (nums[i] != 0) i。 else nums[i] = p。 } String data=。 for(int i=0。i15。i++){ data=data+nums[i]+,。 } (data)。 }④定義鼠標(biāo)被按下調(diào)用時(shí)的方法:public void mousePressed(final MouseEvent e) { File file = (new String[] { txt }, Text Files(*.txt), null)。 String data = (file)。 (data)。 }⑤定義單選按鈕組件,并創(chuàng)建對(duì)象,設(shè)置組件的名字,分別設(shè)置文本的單選組件按鈕,設(shè)置初始狀態(tài)為選中,并將相應(yīng)的單選按鈕加入到面板中:BubbleSortRadioButton = new JRadioButton()。 (sortRadio)。//定義按鈕 (冒泡排序)。//定義按鈕 (true)。//判斷按鈕是否可選 (BubbleSortRadioButton)。//將冒泡排序按鈕添加到面板InsertSortRadioButton = new JRadioButton()。 (sortRadio)。 (插入排序)。 (InsertSortRadioButton)。SellectionSortRadioButton = new JRadioButton()。 (sortRadio)。 (選擇排序)。 (SellectionSortRadioButton)。⑥設(shè)置“輸入數(shù)據(jù)”,“為保證演示效果”,“請(qǐng)輸入少于20個(gè)小于650的整數(shù)排序結(jié)果”設(shè)置它們的背景顏色為紅色,并將這些標(biāo)簽加入到內(nèi)容窗格,并設(shè)置組件大小和位置:final JLabel label = new JLabel()。 final JLabel label_2 = new JLabel()。 (輸入數(shù)據(jù)( , 隔開):)。 (10, 53, 120, 18)。 ((為保證演示效果,請(qǐng)輸入少于20個(gè)小于650的整數(shù)))。 ()。(120, 53, 300, 18)。().add(label_2)。 final JLabel label_1 = new JLabel()。 (排序結(jié)果:)。 (10, 172, 66, 18)。 ().add(label_1)。第三節(jié) 二叉查找樹可視化功能的實(shí)現(xiàn)當(dāng)從主界面選擇的是“二叉查找樹”時(shí)就會(huì)從main方法開始執(zhí)行:public static void main(String[] args) { DisplayBinaryTree frame = new DisplayBinaryTree()。 (二叉查找樹演示)。 (500, 500)。//設(shè)置框架的大小 (null)。 //窗口顯示在屏幕中央 ()。 (true)。}}//窗口設(shè)置為可見(jiàn)的實(shí)例化“插入”、“刪除”、“查找”這三個(gè)對(duì)象,并將這三個(gè)按鈕添加到 jpcontrol中:private BinaryTreeInteger tree 。 private JTextField jtfKey = new JTextField(5)。 private TreeView jpview = new TreeView()。 private JButton jbtInsert = new JButton(插入)。 private JButton jbtDelete = new JButton(刪除) private JButton jbtSearch = new JButton(查找)。 private JLabel jlbl = new JLabel(輸入一個(gè)節(jié)點(diǎn)值: )。 = outtree。setLayout(new BorderLayout())。//設(shè)置邊界布局 add(jpview, )。 JPanel jpcontrol = new JPanel()。 (jlbl)。 (jtfKey)。 (jbtInsert)。 (jbtDelete)。 (jbtSearch)。 add(jpcontrol, )。插入按鈕事件監(jiān)聽器的實(shí)現(xiàn),輸入的數(shù)據(jù)不能為空,并且只能輸入整數(shù)的數(shù)據(jù):(new ActionListener(){public void actionPerformed(ActionEvent e){ String temp = ()。 ()。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1