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

正文內(nèi)容

算法可視化演示軟件開發(fā)畢業(yè)設(shè)計(jì)(完整版)

2025-08-02 12:52上一頁面

下一頁面
  

【正文】 agogical effectiveness when they are used alone without any help from a textbook or a lecturer. A large number of the experiments fail to show any significant difference in enhancing the learning ability of the students by using visualizations as pared to the textbook.Current research shows that by actively involving students [Hundhausen et al.,2002]as they are watching an algorithm visualization and making the students mentally analyze what they are doing, you can increase the pedagogical value of an algorithm visualization. We believe that besides mentally involving students with a visualization, you also need to be careful about certain other features which, if included while creating an algorithm visualization, would result in a significant increase in the pedagogical value of the algorithm visualization. The aim of our study is to identify these key features. To create the initial list of these features we looked at several algorithm visualizations (Chapter 2 amp。感謝每天陪我到圖書館做畢設(shè)的同學(xué)們,在我們的相互監(jiān)督和鼓勵(lì)下完成了畢設(shè)的作品和論文的撰寫?;赝^去,最難忘的還是是師生情、朋友情、室友情。可視化技術(shù)可以幫助我們理解大規(guī)模數(shù)據(jù)和復(fù)雜現(xiàn)象。})。 if(()){ (null,輸入不能為空)。 return。 (jbtDelete)。 private JLabel jlbl = new JLabel(輸入一個(gè)節(jié)點(diǎn)值: )。//設(shè)置框架的大小 (null)。().add(label_2)。 (SellectionSortRadioButton)。//判斷按鈕是否可選 (BubbleSortRadioButton)。 } (data)。 i15。②定義菜單,并創(chuàng)建菜單對(duì)象,設(shè)置文本框,并定義獲得隨機(jī)菜單項(xiàng)對(duì)象:final JMenu menu = new JMenu()。//設(shè)置關(guān)閉動(dòng)作 setVisible(true)。 public VisualFrame(){ setLayout(new FlowLayout())。//按鈕不可用 (true)。 第五章 系統(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è)置為不可見的,如果是選擇的二叉查找樹的按鈕那么,這個(gè)按鈕也會(huì)被設(shè)置為不可見的按鈕,也就是界面會(huì)顯示“排序可視化”和“二叉查找樹”兩個(gè)互斥按鈕。比如:在排序的時(shí)候需要的排序?qū)ο蟮臄?shù)組是整形的,它們必須給外界提供一個(gè)公共的排序方法接口;和它們?cè)谂判蜻^程中所需要的適配器來進(jìn)控制,: 界面類的繼承關(guān)系從上圖我們可以清楚的看到類TreeControl和類TreeView都繼承了類JPanel,類而類JPanel又繼承了JComponent。第三節(jié) 本章小結(jié)本章主要是對(duì)算發(fā)可視化演示系統(tǒng)的設(shè)計(jì)目標(biāo)和系統(tǒng)所所要實(shí)現(xiàn)的功能以及運(yùn)行環(huán)境進(jìn)行了分析。④ 實(shí)現(xiàn)對(duì)選擇排序排序進(jìn)行演示,并顯示排序前后的數(shù)組,排序所交換的次數(shù)、比較的次數(shù)、探測(cè)的次數(shù)及其所用的總的時(shí)間。最后還介紹了四種排序算法的概念,操作的實(shí)現(xiàn)以及算法的性能分析,通過此本章的學(xué)習(xí),能讓大家清楚排序算法的基本原理和具體實(shí)現(xiàn)過程,能在不同的情況下選擇適合的排序算法,能讓大家更好的掌握知識(shí)并運(yùn)用所學(xué)的知識(shí)解決問題。從排序過程看,二叉查找樹也二分排序相識(shí),就平均時(shí)間而言,二叉查找樹的排序和二分排序差不多,但二分排序的判定樹唯一,而二叉查找樹不唯一,相同的關(guān)鍵字,其插入順序不同可能生成不同的二叉查找樹。二叉查找樹的插入二叉樹是一種動(dòng)態(tài)的集合,它的特點(diǎn)是樹的結(jié)點(diǎn)往往不是僅以此就能生成的,而是在通過排序的過程中,當(dāng)且僅當(dāng)該關(guān)鍵值不等于樹中的時(shí)候才插入。簡單選擇排序的性能分析簡單選擇排序的性能分析如下:空間效率:僅使用了常數(shù)個(gè)輔助單元,因而空間復(fù)雜度為0(1)。在最壞的情況下:表中序列剛好與排序結(jié)果中元素順序相反(逆序)的的移動(dòng)次數(shù)為0,總的比較次數(shù)達(dá)到最大,為,總的移動(dòng)次數(shù)也達(dá)到最大,為。直接插入插入排序的概念直接插入排序是一種簡單的排序方法,它的基本操作是將一個(gè)記錄插入到已經(jīng)排好的有序表中,從而得到一個(gè)新的、記錄數(shù)增1的有序表。時(shí)間效率:當(dāng)初始序列有序時(shí),比較次數(shù)為n1次,移動(dòng)次數(shù)為0,從而最好情況下的時(shí)間復(fù)雜度為O(n);當(dāng)初始序列為逆序時(shí),需要進(jìn)行n1趟排序,第i趟需要進(jìn)行ni次關(guān)鍵字的比較,而且每次比較都需要移動(dòng)三次來交換元素位置。事件可以分為焦點(diǎn)事件、鍵盤事件、鼠標(biāo)事件。網(wǎng)格布局的每一個(gè)組件作為一個(gè)卡片,該容器只顯示多個(gè)卡片中的某一個(gè)。直接管理組件調(diào)用容器setLayout(null) 方法,關(guān)閉布局管理器?;痉椒ㄊ莚emove(Component它在布局管理上采用了容器和布局管理分離的方案。它提供了許總體上良好的性能。④標(biāo)準(zhǔn)的GUI庫:Swing和AWT一樣是JRE中的標(biāo)準(zhǔn)庫。許多商業(yè)或開源的Swing組件庫在開發(fā)多年后都已經(jīng)可以方便地獲取了。事件的監(jiān)聽程序可以定義在組件所在的類,也可以定義在其他的類里,而對(duì)事件的處理,則由組件委托給事件監(jiān)聽所在的類來完成。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個(gè)版本的JDK。Java語言的優(yōu)良特性使得Java應(yīng)用有很高的的可靠性和健壯性,同時(shí)應(yīng)用系統(tǒng)維護(hù)的費(fèi)用也相對(duì)減少了。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊的前景[4]。第六章,系統(tǒng)測(cè)試,以及在做畢設(shè)的過程中遇到的問題,最后對(duì)本次畢設(shè)進(jìn)行總結(jié)。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,人們提出了各種算法,算法可視化在計(jì)算機(jī)領(lǐng)域里有十分重要的意義,并且應(yīng)用廣泛。數(shù)據(jù)可視化有可能幫助人類在大量數(shù)據(jù)的分析和理解,并檢測(cè)模式[3]。在我們所學(xué)的數(shù)據(jù)結(jié)構(gòu)中了解到了排序算法的原理,以及實(shí)現(xiàn)過程,但是不清楚它的具體過程是怎么樣的。算法的概念極為抽象,算法有時(shí)也枯燥難懂,所以很多時(shí)候就提不起學(xué)生的興趣,此次的畢業(yè)設(shè)計(jì)所研究的就是在算法基礎(chǔ)上結(jié)合圖形界面動(dòng)態(tài)的演示排序算法的具體實(shí)現(xiàn)過程,從一定程度上也可以提起學(xué)生的興趣,讓讀者不僅從理論上理解它,更是從實(shí)踐過程去接受知識(shí),給學(xué)生更深的印象。近年來,各種可視化技術(shù)已經(jīng)擴(kuò)展到軍事、醫(yī)學(xué)、醫(yī)學(xué)研究、經(jīng)濟(jì)、解釋工程等各個(gè)領(lǐng)域。在當(dāng)今信息發(fā)達(dá)的時(shí)代,面對(duì)著海量的無序數(shù)據(jù)信息,如果沒有一個(gè)規(guī)則來編排和查詢,就會(huì)給我們的工作和信息帶來很大的不方便,所以利用計(jì)算機(jī)的高速運(yùn)行和計(jì)算能力,編寫出一種合適的排序軟件,是十分必要的。 第二章 相關(guān)知識(shí)概述第一節(jié) Java知識(shí)相關(guān)概述一、Java的發(fā)展史Java是由Sun公司1995年5月開發(fā)的新一代面向?qū)ο缶幊陶Z言(簡稱Java語言)和Java平臺(tái)的總稱。二、Java的主要特性Java的主要特性有平臺(tái)無關(guān)性、安全性、面向?qū)ο筇匦?、簡單性、?dòng)態(tài)特性、多線程性、健壯性等特性[5]。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能減少應(yīng)用系統(tǒng)的開發(fā)所需要的時(shí)間還能有效降低成本。因此掌握J(rèn)DK是學(xué)好Java的第一步。第二節(jié) Java圖形界面技術(shù)概述一、 Java Swing相關(guān)概述在Java中設(shè)計(jì)圖形界面程序時(shí),通常選用AWT組件和Swing組件。②豐富的組件特性:Swing不僅包含了所有平臺(tái)上的特性,它還支持根據(jù)程序所運(yùn)行的平臺(tái)來添加額外特性。因此,你不用單獨(dú)地將它們隨你的應(yīng)用程序一起分發(fā)。Swing也有著許多不足之處:比如Swing比AWT和SWT更多的內(nèi)存消耗。也就是說,容器只管將其他組件放入其中,而不管這些組件是如何放置的。p) 刪除指定組件、add(Component p) 將指定組件放到容器中、add(Component p,int index), setLayout(LayoutManager調(diào)用每一個(gè)組件的setLocation()方法決定組件位置。setLayout(new GridLayout(行數(shù), 列數(shù)))。事件源:有自己的方法,通過它像其注冊(cè)事件監(jiān)聽器,事件監(jiān)聽器是一個(gè)實(shí)例。這種情況下:元素的比較次數(shù)==n(n1)/2元素的移動(dòng)次數(shù):==3n(n1)/2從而最壞情況下時(shí)間復(fù)雜度為O(n*n)。例如,已知待排序的一組記錄的初始序列如下所示:有序序列L[1…i1]L(i)無序序列L[i+1…n]為了實(shí)現(xiàn)將元素L(i)插入到已有序的子序列L[1.......i1]中我們需要執(zhí)行以下操作(為避免混淆,下面用”L[]”表示一個(gè)表,而L()表示一個(gè)元素排序L(i)在L[1.......i1中的出入位置k。平均情況下,考慮待排序元素是隨機(jī)的,此時(shí)可以取上述最好與最壞情況的平均值作為平均情況下的時(shí)間復(fù)雜度,總的比較次數(shù)與總的移動(dòng)次數(shù)約為n*n/4。時(shí)間效率:元素的移動(dòng)操作很少不會(huì)超過3(n1)次,最好情況下移動(dòng)次數(shù)為0,此時(shí)對(duì)應(yīng)的表已經(jīng)有序;但元素間比較的次數(shù)與元素的初始序列無關(guān),始終是n(n1)/2;所以時(shí)間復(fù)雜度始終是O(n*n)。因?yàn)槎娌檎覙涫堑亩x是遞歸的,那么插入結(jié)點(diǎn)的過程是,如果原來的二叉樹是空的,就可以把結(jié)點(diǎn)直接插入進(jìn)去,如果不是空的,若關(guān)鍵字的值比根結(jié)點(diǎn)小,就將其出入到左子樹中,如果比根結(jié)點(diǎn)的值大,就要將其插入到右子樹中。就維護(hù)表而言,二叉查找樹無須移動(dòng)結(jié)點(diǎn),只需修改指針即可,插入和刪除操作,其平均執(zhí)行時(shí)間為0(log2n)。 第三章 需求分析需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的工作是軟件工程生命周期中的第一步,也是起決定性的一步,在需求分析階段我們需要全面了解整個(gè)系統(tǒng)的功能和性能方面的要求,為軟件設(shè)計(jì)打下堅(jiān)實(shí)的基礎(chǔ)[14]。⑤ 可以生成隨機(jī)數(shù),然后進(jìn)行插入、選擇、冒泡三種排序演示。需求分析在軟件的開發(fā)中是很關(guān)鍵的一步,一個(gè)軟件開發(fā)成功與否需求分析起著十分重要的作用,所以我們?cè)陂_發(fā)一個(gè)軟件前,一定要做好需求分析。他們既有共性又有特性,如果只考慮他們的共性,而不考慮他們的特性,就不能反映出他們之間的層次關(guān)系,不能完整、正確地對(duì)客觀世界,進(jìn)行抽象的描述,類TreeControl和類TreeView都有類JPanel的所有的特征,即有他們的共性。首先定義排序可視化和二叉查找樹演示兩個(gè)按鈕:public class VisualFrame extends JFrame{ private JButton sort=new JButton(排序可視化)。//按鈕可用} if(()==tree){//用來判斷發(fā)起事件的控件是不是tree DisplayBinaryTree frame = new DisplayBinaryTree()。 (sort)。//設(shè)置為可見的public static void main(String[] args) { new VisualFrame()。 (其他途徑獲取數(shù)據(jù))。 i++) { int p = (650)。 }④定義鼠標(biāo)被按下調(diào)用時(shí)的方法:public void mousePressed(final MouseEvent e) { File file = (new String[] { txt }, Text Files(*.txt), null)。//將冒泡排序按鈕添加到面板InsertSortRadioButton = new JRadioButton()。⑥設(shè)置“輸入數(shù)據(jù)”,“為保證演示效果”,“請(qǐng)輸入少于20個(gè)小于650的整數(shù)排序結(jié)果”設(shè)置它們的背景顏色為紅色,并將這些標(biāo)簽加入到內(nèi)容窗格,并設(shè)置組件大小和位置:final JLabel label = new JLabel()。 final JLabel label_1 = new JLabel()。 //窗口顯示在屏幕中央 ()。 = outtree。 (jbtSearch)。} int key = (temp)。return。第四節(jié) 本章小結(jié)本章主要介紹了算法可視化的具體實(shí)現(xiàn)過程,以及所實(shí)現(xiàn)的功能給大家展示了一些主要實(shí)現(xiàn)過程代碼的,能讓大家清楚算法可視化的過程,對(duì)以后的學(xué)習(xí)也打下了基礎(chǔ)。并且運(yùn)用在了各個(gè)領(lǐng)域,在未來會(huì)用得更多。這次畢業(yè)設(shè)計(jì)我得到了很多老師和同學(xué)的幫助,我最要感謝的是我的導(dǎo)師王剛老師,自從畢業(yè)設(shè)計(jì)選定題目后,王剛老師通過電話,小會(huì)議,郵箱,群消息、在線等不同指導(dǎo)方式引導(dǎo)我解決在這個(gè)過程中所遇到的問題。希望
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1