鏈表基本操作動(dòng)畫演示畢業(yè)論文_第1頁(yè)
鏈表基本操作動(dòng)畫演示畢業(yè)論文_第2頁(yè)
鏈表基本操作動(dòng)畫演示畢業(yè)論文_第3頁(yè)
鏈表基本操作動(dòng)畫演示畢業(yè)論文_第4頁(yè)
鏈表基本操作動(dòng)畫演示畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

******學(xué)院

畢業(yè)設(shè)計(jì)(論文)學(xué)生工作手冊(cè)擬定題目:鏈表基本操作動(dòng)畫演示姓名學(xué)號(hào)院(系)專業(yè)指導(dǎo)教師年月日摘要隨著科技的發(fā)展,教學(xué)方式也越來越先進(jìn),現(xiàn)在已經(jīng)不止有傳統(tǒng)課本教學(xué)方式,還有多媒體教學(xué)方式。這樣一種情況下,動(dòng)畫教學(xué)更受大眾親睞。動(dòng)畫的直觀和方便更能清楚明白的表達(dá)人們用言語(yǔ)闡述不清的一些理論和算法。這樣,設(shè)計(jì)好一個(gè)動(dòng)畫演示就非常的有意義。本設(shè)計(jì)主要研究的是鏈表基本操作的動(dòng)畫演示,通過用flashbuilder中的actionscript編程做一個(gè)鏈表基本操作的交互式動(dòng)畫,能夠幫助我們更直觀的理解鏈表的一些基本操作,主要是刪除節(jié)點(diǎn)、插入節(jié)點(diǎn),很多復(fù)雜的數(shù)據(jù)結(jié)構(gòu)都包含鏈表結(jié)構(gòu)。關(guān)鍵詞:flash,鏈表,刪除,插入,動(dòng)畫AbstractWiththedevelopmentofscienceandtechnology,isbecomingmoreandmoreadvancedteachingmethods,nowhasmorethanthetraditionaltextbookteachingmethods,andmultimediateachingmethods.Suchacase,theanimationteachingmorefavorbythepublic.Animationintuitiveandconvenientandcanclearlyunderstandtheexpressionofpeoplewithwordsofsometheoriesandalgorithms.Inthisway,designagoodanimationdemoisverymeaningfulWidespreadunderstandingalgorithmdifficultiesinteaching,insuchacase,thisdesignresearchisalistofthebasicoperationofananimateddemo,throughtheuseofflashinalistofbasicoperationofinteractiveanimation,canhelpusmoreintuitiveunderstandingoflinkedlistssomeofthebasicoperation,mainly,insert,deletenode,manycomplicateddatastructurecontainsliststructure.Keywords:flash,list,delete,insert,animation目錄TOC\o"1-3"\h\u20273前言 前言數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)學(xué)科中一門重要的基礎(chǔ)課程,是進(jìn)行程序設(shè)計(jì)的理論和技術(shù)基礎(chǔ),學(xué)好該課程對(duì)于計(jì)算機(jī)其他課程的學(xué)習(xí)有著深遠(yuǎn)的意義。但在教學(xué)中普遍存在對(duì)算法理解上的困難,在這樣一種情況下,本設(shè)計(jì)主要研究的是鏈表基本操作的動(dòng)畫演示,它能夠幫助我們更直觀的理解鏈表的一些基本操作,比如刪除節(jié)點(diǎn)、插入節(jié)點(diǎn)、修改節(jié)點(diǎn)、鏈表的逆置等等,很多復(fù)雜的數(shù)據(jù)結(jié)構(gòu)都包含鏈表結(jié)構(gòu),因此,學(xué)好鏈表對(duì)于我們學(xué)習(xí)其他數(shù)據(jù)結(jié)構(gòu)有很大的幫助。同時(shí),在進(jìn)行設(shè)計(jì)的同時(shí),讓我們能夠?qū)W會(huì)如何獨(dú)立的設(shè)計(jì)一個(gè)完整的演示動(dòng)畫,也對(duì)我們編程技術(shù)的一種鍛煉。在做這次畢業(yè)設(shè)計(jì)之前,本人在圖書館借閱了《FlashBuilder4&Flex4寶典》、《FlashActionScript3殿堂之路》、《動(dòng)畫制作與創(chuàng)意典型實(shí)例》《數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言版》等書。在這次的畢業(yè)設(shè)計(jì)過程中,吳海濤老師給了我很大的幫助,在此表示感謝。本設(shè)計(jì)主要是基于FlashBuilder平臺(tái)的動(dòng)畫設(shè)計(jì),就是用Flash將鏈表生動(dòng)的表現(xiàn)出來。用Flash做出來的鏈表能夠更加生動(dòng)地反映出鏈表的構(gòu)成,和對(duì)鏈表的刪除操作。做好這次的畢業(yè)設(shè)計(jì),本人認(rèn)為是非常有必要的。在進(jìn)行設(shè)計(jì)的時(shí),讓我們能夠?qū)W會(huì)如何獨(dú)立的設(shè)計(jì)一個(gè)完整的演示動(dòng)畫,也對(duì)我們編程技術(shù)的一種鍛煉。Flashbuilder是集動(dòng)畫、聲音和交互于一體的軟件,因此在做這個(gè)設(shè)計(jì)的時(shí)候,要考慮到動(dòng)畫的播放模式,以及交互的應(yīng)用,加入按鈕可以與瀏覽者互動(dòng),在此過程中我們又可以學(xué)會(huì)按鈕的創(chuàng)建、按鈕中的動(dòng)畫以及加入到按鈕中的ActionScript代碼知識(shí)。在遇到不會(huì)的時(shí)候,一方面向指導(dǎo)老師詢問,另一方面,自己也可以到網(wǎng)上去查閱。畢業(yè)設(shè)計(jì)是每個(gè)專業(yè)的學(xué)習(xí)、實(shí)踐和創(chuàng)新的實(shí)踐性教學(xué)環(huán)節(jié),做好畢業(yè)設(shè)計(jì),也是對(duì)自己所學(xué)的知識(shí)的一次系統(tǒng)性的總結(jié)。有助于對(duì)自己經(jīng)行查漏補(bǔ)缺,鞏固以前所學(xué)的知識(shí),這樣,也是對(duì)自身的一次升華。選題意義及背景動(dòng)畫演示這種教學(xué)方式的出現(xiàn)使我們的教學(xué)進(jìn)入了一個(gè)全新的時(shí)代,動(dòng)畫教學(xué)的交互性的控制性強(qiáng),能夠使我們直接參與進(jìn)去。使我們的教學(xué)變得更加的輕松。在其他教學(xué)方式中具有無法比擬的優(yōu)勢(shì)。傳統(tǒng)的教學(xué)方式與動(dòng)畫教學(xué)方式相比,有很多的缺點(diǎn),比如在傳統(tǒng)的教學(xué)過程中,一切都是由教師決定的從教學(xué)內(nèi)容、教學(xué)策略、教學(xué)方法、教學(xué)步驟甚至學(xué)生做的練習(xí)都是教師事先安排好的,學(xué)生只能被動(dòng)地參與這個(gè)過程,即處于被灌輸?shù)臓顟B(tài)。將動(dòng)畫結(jié)合到教學(xué)中,可以避免傳統(tǒng)教學(xué)的一些缺點(diǎn)。使學(xué)生能夠主動(dòng)接受,慢慢理解。動(dòng)畫演示鏈表的基本操作對(duì)于我們對(duì)于鏈表的結(jié)構(gòu)和基本操作算法有非常大的幫助,另外,鏈表是數(shù)據(jù)結(jié)構(gòu)中比較基礎(chǔ)的一種結(jié)構(gòu),學(xué)好鏈表對(duì)于我們學(xué)習(xí)其他的結(jié)構(gòu)有很大的幫助。方案及論證一)、動(dòng)畫軟件FlashBuilder概述1、FlashBuilder簡(jiǎn)介這款軟件是由Adobe公司開發(fā)的。它對(duì)軟件開發(fā)人員使用開放源Flex框架快速開發(fā)跨平臺(tái)富Internet應(yīng)用程序(RIA)和內(nèi)容起到了一定的幫助作用。這個(gè)軟件包含了對(duì)智能編碼、調(diào)試及可視設(shè)計(jì)的支持,提供功能非常強(qiáng)大的測(cè)試工具,而這些工具的使用可以提高開發(fā)速度并創(chuàng)建出性能更高的應(yīng)用程序。Flex是FlashBuilder中的一個(gè)高效、免費(fèi)的開放源框架,軟件開發(fā)人員可以將其用于構(gòu)建具有表現(xiàn)力的Web應(yīng)用程序,這些web應(yīng)用程序利用AdobeFlashPlayer和AdobeAIR運(yùn)行時(shí)可以實(shí)現(xiàn)跨瀏覽器、桌面和操作系統(tǒng)實(shí)現(xiàn)一致的部署。09年5月,下一代FlexBuilder,即FlexBuilder4.0(是IDE,而非SDK)改名為FlashBuilder。雖然只能使用Flex框架構(gòu)建Flex應(yīng)用程序,開發(fā)人員利用AdobeFlashBuilder軟件可以通過智能編碼、交互式遍歷調(diào)試以及可視設(shè)計(jì)用戶界面布局等功能加快開發(fā)。腳本語(yǔ)言ActionScript簡(jiǎn)介ActionScript腳本語(yǔ)言已經(jīng)廣泛的應(yīng)用到FlashCS、FlashBuilder中。應(yīng)用ActionScript編程可以實(shí)現(xiàn)動(dòng)畫的交互性。ActionScript腳本語(yǔ)言是一種針對(duì)AdobeFlashPlayer運(yùn)行時(shí)環(huán)境的編程語(yǔ)言,它面向?qū)ο?,功能?qiáng)大、具有業(yè)界標(biāo)準(zhǔn)素質(zhì),實(shí)現(xiàn)了交互性、數(shù)據(jù)處理以及其它許多功能ActionScript腳本語(yǔ)言功不可沒。ActionScript編寫的代碼是由FlashPlayer播放器中的ActionScript虛擬機(jī)(AVM)來編譯執(zhí)行的。ActionScript代碼通常被編譯器編譯成"字節(jié)碼格式"(是一種由計(jì)算機(jī)編寫且能夠?yàn)橛?jì)算機(jī)所理解的編程語(yǔ)言),字節(jié)碼嵌入SWF文件中,SWF文件由運(yùn)行時(shí)環(huán)境FlashPlayer執(zhí)行。ActionScript3.0版本的腳本語(yǔ)言向我們提供了可靠的編程模型,開發(fā)人員在進(jìn)行面向?qū)ο蟮木幊虝r(shí)對(duì)此模型會(huì)感到似曾相識(shí)。在ActionScript面向?qū)ο缶幊讨?,任何類都可以包?種類型的特性:屬性、方法、事件。這些元素共同用于管理程序使用的數(shù)據(jù)塊,并用于確定執(zhí)行哪些動(dòng)作以及動(dòng)作的順序。ActionScript3.0中的常用的一些函數(shù)介紹:獲得某個(gè)實(shí)例對(duì)象的類名:getQualifiedClassName(實(shí)例名字符串表達(dá)式);Math.random();

范圍為0~1的隨機(jī)值;取出方法getter;設(shè)定方法setter;addEventListener()添加點(diǎn)擊響應(yīng)件;stop();gotoAndPlay();等等,ActionScript3.0中常用的類:Tweener用于過度與切換的一組動(dòng)畫;FlexLib一套開源的Flex界面組件庫(kù)。ActionScript3.0中常用的屬性:X屬性主要用于設(shè)置對(duì)象在舞臺(tái)中的水平坐標(biāo);Y屬性主要用于設(shè)置對(duì)象在舞臺(tái)中的垂直坐標(biāo);scaleX屬性用于設(shè)置對(duì)象的水平縮放比例,其默認(rèn)值為1,表示按100%縮放;alpha屬性用于設(shè)置對(duì)象的透明度;visible設(shè)置對(duì)象可見度,事實(shí)上可以將屬性視為包含在對(duì)象中的子變量。事件:是確定計(jì)算機(jī)執(zhí)行哪些指令以及何時(shí)執(zhí)行的機(jī)制。從本質(zhì)上來說,事件就是所發(fā)生的、ActionScript能夠識(shí)別并可響應(yīng)的事情。ActionScript3.0的優(yōu)點(diǎn)完全支持面向?qū)ο缶幊蹋∣OP)語(yǔ)言。核心語(yǔ)言基于ECMAScript(ECMA262)標(biāo)準(zhǔn),對(duì)OOP架構(gòu)深層優(yōu)化。徹底更新的顯示對(duì)象系統(tǒng)架構(gòu)。引入了封裝的概念,使得程序安全性大大提高,各個(gè)對(duì)象之間的關(guān)系也通過封裝,訪問控制而得以確定,避免了不可靠的訪問給程序帶來的意外產(chǎn)生。它旨在方便創(chuàng)建擁有大型數(shù)據(jù)集和面向?qū)ο蟮目芍赜么a庫(kù)的高度復(fù)雜應(yīng)用程序。采用了先進(jìn)的E4X,使XML成為ActionScript3語(yǔ)言的內(nèi)建數(shù)據(jù)類型(nativesupport)。操作直白、簡(jiǎn)單。與ActionScript2比較,極大地減輕了XML數(shù)據(jù)處理工作量。全面支持正則表達(dá)式。正則表達(dá)式也成了ActionScript3的內(nèi)建數(shù)據(jù)類型,ActionScript3對(duì)字符串的處理能力空前增強(qiáng)。AS3采用了容器的思想,告別了as2一個(gè)MovieClip打天下的局面。異常處理機(jī)制。異常包括信息全面、易于調(diào)試和處理。FlashAPI全面支持異常處理機(jī)制。數(shù)據(jù)結(jié)構(gòu)之鏈表1、鏈表概述鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(diǎn)(鏈表中每一個(gè)元素稱為結(jié)點(diǎn))組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。每個(gè)結(jié)點(diǎn)包括兩個(gè)部分:一個(gè)是存儲(chǔ)數(shù)據(jù)元素的數(shù)據(jù)域,另一個(gè)是存儲(chǔ)下一個(gè)結(jié)點(diǎn)地址的指針域。它可以和隨意的在其任意一個(gè)位置進(jìn)行插入和刪除操作,這對(duì)于動(dòng)態(tài)的數(shù)據(jù)處理十分的有利。比如,有的班級(jí)有200人,而有的班只有30人,如果要用同一個(gè)數(shù)組先后存放不同班級(jí)的學(xué)生數(shù)據(jù),則必須定義長(zhǎng)度為200的數(shù)組。如果實(shí)現(xiàn)難以確定一個(gè)班的最多人數(shù),則必須把數(shù)組定得足夠大,以能存放任何班級(jí)的學(xué)生數(shù)據(jù),數(shù)組大小確定后不可改變,需要連續(xù)的內(nèi)存空間,顯然這將會(huì)浪費(fèi)內(nèi)存。然而鏈表則沒有這種缺點(diǎn),它并不需要連續(xù)的內(nèi)存空間,它是根據(jù)需要開辟內(nèi)存單元。圖2.1.1表示最簡(jiǎn)單的一種鏈表的結(jié)構(gòu)。圖2.1.1鏈表的結(jié)構(gòu)可以看到鏈表中各元素在內(nèi)存中可以不是連續(xù)存放的。要找到某一元素,必須先找到上一個(gè)元素,根據(jù)它提供的下一元素地址才能找到下一元素。如果不提供“頭指針”(head),則整個(gè)鏈表都無法訪問。2、鏈表的插入操作鏈表能夠方便地實(shí)現(xiàn)結(jié)點(diǎn)的插入操作,這也是鏈表結(jié)構(gòu)具有動(dòng)態(tài)分配存儲(chǔ)空間的體現(xiàn),也是它優(yōu)于數(shù)組的地方之一。還是舉小朋友排隊(duì)的例子來說明鏈表的插入是怎樣實(shí)現(xiàn)的。在這個(gè)比喻里面,每一個(gè)小朋友相當(dāng)于一個(gè)結(jié)點(diǎn),一個(gè)小朋友的手拉著另一個(gè)小朋友的手,相當(dāng)于一個(gè)結(jié)點(diǎn)的指針域指向下一個(gè)結(jié)點(diǎn)。如圖2.2.1假設(shè)現(xiàn)有一對(duì)按大小個(gè)排好隊(duì)的小朋友,又來一個(gè)小朋友“C”需要加入該隊(duì)列。這時(shí)候,他需要插入B于D兩個(gè)小朋友之間。然后,把這兩個(gè)小朋友的手分開,讓前一個(gè)小朋友的手該拉著新來小朋友的一只手,新來小朋友的另一只手拉著后一個(gè)小朋友的一只手。這樣,新來的小朋友就被插入到這個(gè)隊(duì)伍里面了,并且這個(gè)隊(duì)伍的小朋友還是按照身高順序排列的,如圖2.2.2。實(shí)際鏈表的插入操作也就可以類似地實(shí)現(xiàn)。圖2.2.1原來的隊(duì)伍圖2.2.2C插入后的隊(duì)伍算法的C語(yǔ)言描述//在帶頭結(jié)點(diǎn)的單鏈線性表L中第i個(gè)位置之前插入元素eintListInsert(LinkList*L,inti,ElemTypee){intj=0;LinkListp=*L,s;while(p&&j<i-1)//尋找第i-1個(gè)結(jié)點(diǎn){p=p->next;j++;}if(!p||j>i-1)//i小于1或者大于表長(zhǎng)return0;s=(LinkList)malloc(sizeof(structLNode));//生成新結(jié)點(diǎn)s->data=e插入L中s->next=p->next;p->next=s;return1;}3、鏈表的刪除操作還是舉小朋友排隊(duì)的例子來說明鏈表的刪除是怎樣實(shí)現(xiàn)的。在這個(gè)比喻里面,每一個(gè)小朋友相當(dāng)于一個(gè)結(jié)點(diǎn),一個(gè)小朋友的手拉著另一個(gè)小朋友的手,相當(dāng)于一個(gè)結(jié)點(diǎn)的指針域指向下一個(gè)結(jié)點(diǎn)。如圖2.3.1假設(shè)現(xiàn)有一對(duì)按大小個(gè)排好隊(duì)的小朋友,小朋友“C”需要離開該隊(duì)列。這時(shí)候,他需要讓前一個(gè)小朋友的手該拉著他后面小朋友的一只手,自己放開手。這樣,C小朋友就被從隊(duì)伍里面刪除了,并且這個(gè)隊(duì)伍的小朋友還是按照身高順序排列的,如圖2.3.2。實(shí)際鏈表的刪除操作也就可以類似地實(shí)現(xiàn)。圖2.3.2C刪除前的隊(duì)伍圖2.3.2C刪除后的隊(duì)伍算法的C語(yǔ)言描述//在帶頭結(jié)點(diǎn)的單鏈線性表L中,刪除第i個(gè)元素,并由e返回其值intListDelete(LinkList*L,inti,ElemType*e){intj=0;LinkListp=*L,q;while(p->next&&j<i-1)//尋找第i個(gè)結(jié)點(diǎn),并令p指向其前趨{p=p->next;j++;}if(!p->next||j>i-1)//刪除位置不合理return0;q=p->next;//刪除并釋放結(jié)點(diǎn)p->next=q->next;*e=q->data;free(q);return1;}4、單鏈表的特點(diǎn)鏈表的鏈接方向是單向的,對(duì)鏈表的訪問要通過順序讀取從頭部開始;鏈表是使用指針進(jìn)行構(gòu)造的列表;又稱為結(jié)點(diǎn)列表,因?yàn)殒湵硎怯梢粋€(gè)個(gè)結(jié)點(diǎn)組裝起來的;其中每個(gè)結(jié)點(diǎn)都有指針成員變量指列表中的下一個(gè)結(jié)點(diǎn)。設(shè)計(jì)的功能描述利用FlashBuilder軟件,制作一個(gè)動(dòng)畫,完成鏈表的刪除、插入操作過程的演示。用戶可以通過點(diǎn)擊插入按鈕,進(jìn)入到插入主頁(yè)面,頁(yè)面中提示用戶需要手動(dòng)的輸入要插入的位置和數(shù)據(jù),輸入之后,點(diǎn)擊插入就可以觀看到整個(gè)插入過程,如果輸入節(jié)點(diǎn)和位置不正確也會(huì)出現(xiàn)相關(guān)的提醒,點(diǎn)擊確定按鈕,再重來。同樣的道理,用戶可以通過點(diǎn)擊刪除按鈕,進(jìn)入到刪除的主頁(yè)面,頁(yè)面中提示用戶需要手動(dòng)的輸入要?jiǎng)h除的位置,輸入之后,點(diǎn)擊插入就可以觀看到整個(gè)插入過程,如果輸入節(jié)點(diǎn)和位置不正確也會(huì)出現(xiàn)相關(guān)的提醒,點(diǎn)擊確定按鈕,再重來。四)設(shè)計(jì)思想利用MornBuilder編輯資源,發(fā)布代碼后,進(jìn)入Flashbuilder軟件編輯代碼。實(shí)現(xiàn)插入,刪除動(dòng)畫。ActionScript腳本語(yǔ)言得到完善,提供了按鈕和MC兩種可以出發(fā)事件的基本對(duì)象,使得我們做的動(dòng)畫能夠?qū)崿F(xiàn)與用戶的交互。用戶與Flash動(dòng)畫的交互體現(xiàn)在用戶能夠直接對(duì)動(dòng)畫的播放進(jìn)行控制和影響動(dòng)畫的內(nèi)容。用戶對(duì)動(dòng)畫的播放進(jìn)程的控制是比較容易實(shí)現(xiàn)的,主要是借助按鈕對(duì)象以及在按鈕上添加的動(dòng)作語(yǔ)句來實(shí)現(xiàn)即可。但是要實(shí)現(xiàn)用戶對(duì)的輸入對(duì)動(dòng)畫的影響必須考慮以下兩個(gè)問題:用戶控制動(dòng)畫改變的權(quán)限不宜過大,也不可過小。如果過大的話,那么實(shí)現(xiàn)過程就很困難,但是過小則無法體現(xiàn)交互性。應(yīng)該結(jié)合具體情況來制定相應(yīng)的實(shí)現(xiàn)策略。固定的實(shí)現(xiàn)部分應(yīng)采用模板組件或者庫(kù)構(gòu)件等可重用元素實(shí)現(xiàn),來達(dá)到代碼重用和可移植的目的。在本設(shè)計(jì)中,是通過按鈕按鍵來控制動(dòng)畫的播放效果,鏈表的插入動(dòng)畫中主要有三個(gè)按鈕,插入按鈕,重來按鈕和當(dāng)插入地址越界時(shí)的提醒知道了按鈕。為按鈕添加ActionScript控制動(dòng)畫的播放,是在按鈕動(dòng)作面板中添加相應(yīng)的動(dòng)作腳本來實(shí)現(xiàn)的。五)設(shè)計(jì)中的主要難點(diǎn)1、鼠標(biāo)點(diǎn)擊事件當(dāng)點(diǎn)擊插入按鈕時(shí),要完成插入動(dòng)畫,當(dāng)點(diǎn)擊刪除按鈕時(shí),相應(yīng)的進(jìn)行刪除操作,當(dāng)點(diǎn)擊退出時(shí)返回上層。2、指針的移動(dòng)當(dāng)點(diǎn)擊刪除或者插入按鈕時(shí),如何自動(dòng)生成節(jié)點(diǎn),和調(diào)用什么函數(shù)能夠使指針的自動(dòng)移動(dòng),以什么樣的速度移動(dòng),移動(dòng)范圍。過程論述《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)專業(yè)的重要課程之一,但是教學(xué)中普遍存在對(duì)算法理解上的困難,特別是以類C語(yǔ)言寫的算法程序過程復(fù)雜,難以掌握,在這樣一種情況下,本設(shè)計(jì)主要研究的是鏈表基本操作的動(dòng)畫演示,它能夠幫助我們更直觀的理解鏈表的一些基本操作。體現(xiàn)多媒體教學(xué)的重要意義。目前的一些高校和教學(xué)網(wǎng)站,出現(xiàn)的類似算法動(dòng)畫演示課件大多可分為兩類:一類是采用專用語(yǔ)言,如C或JAVA來開發(fā),另一類則采用一些多媒體制作工具來設(shè)計(jì),如PowerPoint,Authorware等.前者用程序設(shè)計(jì)語(yǔ)言來開發(fā),周圖1單鏈表的插入算法的動(dòng)畫界面期長(zhǎng),成本大,難以推廣和維護(hù);后者雖易開發(fā),易使用,但因受其功能限制并不能制作出真正意義上的動(dòng)畫影片.而通常上述方法開發(fā)出的可執(zhí)行文件尺寸較大,不宜于遠(yuǎn)程網(wǎng)絡(luò)下的CAI教學(xué).近年來,由于認(rèn)識(shí)到Flash在制作網(wǎng)頁(yè)動(dòng)畫中的突出性能,也出現(xiàn)了許多利用其開發(fā)的教學(xué)課件,不過這些教學(xué)課件通常只利用了Flash的動(dòng)畫制作能力,并未充分挖掘和實(shí)現(xiàn)ActionScript腳本的強(qiáng)大控制功能,所實(shí)現(xiàn)的均是同一種動(dòng)畫流程的播放:即動(dòng)畫過程不能交互改變,動(dòng)畫內(nèi)容在反復(fù)播放中也不能有所變化.本文介紹的《數(shù)據(jù)結(jié)構(gòu)》中的鏈表操作動(dòng)畫演示課件利用了ActionScript腳本編程的控制功能,來實(shí)現(xiàn)動(dòng)畫與用戶的交互。這個(gè)動(dòng)畫不緊需要我們了解鏈表基本操作的過程,而且需要將這個(gè)過程通過動(dòng)畫形象生動(dòng)地表現(xiàn)出來,并實(shí)現(xiàn)與用戶的交互性,使學(xué)者對(duì)算法過程得到全面深刻的理解。下面以《數(shù)據(jù)結(jié)構(gòu)》鏈表的插入和刪除算法動(dòng)畫為例,說明其具體實(shí)現(xiàn)過程和步驟。一)平臺(tái)搭建和初步準(zhǔn)備工作1、環(huán)境要求WindowsXp以上cpu1g內(nèi)存2g2、準(zhǔn)備工具編程工具:flashbuilder4.6素材編輯工具:MornBuilder類庫(kù)swc:greensock.swc和MornUILib.swc圖片資源:略3、創(chuàng)建項(xiàng)目打開flashbuilder-->文件-->新建actionscript項(xiàng)目-->項(xiàng)目名寫入zuoye-->文件夾d:/-->應(yīng)用程序類型選擇web(在AdobeFlashPlayer中運(yùn)行)-->FlexSDk版本選擇使用flex4.6.0-->下一步-->添加swc把準(zhǔn)備的greensock.swc和MornUILib.swc添加進(jìn)來-->完成4、編輯資源 打開MornBuilder-->項(xiàng)目-->新建項(xiàng)目-->項(xiàng)目名稱-->寫上Zuoye-->項(xiàng)目位置瀏覽到你剛才用flashbuilder新建項(xiàng)目的根目錄下-->確定 將你準(zhǔn)備的圖片資源導(dǎo)入到項(xiàng)目根目錄\morn\assets\comp下-->刷新資源列表 頁(yè)面-->新建頁(yè)面-->寬高設(shè)置為750*550,新建Main、Insert、Delete、Cell、UpArrow這幾個(gè)頁(yè)面,主界面見圖示3.1圖3.1插入操作界面如圖3.2圖3.2刪除操作界面如圖3.3圖3.3Cell如圖3.4圖3.4UpArrow如圖3.5圖3.5動(dòng)畫實(shí)現(xiàn)除了主類ZuoYe.as已存在,另外還要新建其他幾個(gè)類MainView.as對(duì)插入按鈕和刪除按鈕進(jìn)行控制,點(diǎn)擊插入按鈕進(jìn)入“單鏈表節(jié)點(diǎn)的插入”界面,點(diǎn)擊刪除按鈕進(jìn)入“單鏈表節(jié)點(diǎn)的刪除”界面InsertView.as此為“單鏈表節(jié)點(diǎn)的插入”界面DeleteView.as此為“單鏈表節(jié)點(diǎn)的刪除”界面CellView.as此為單元鏈表界面UpArrowView.as此為向上箭頭的界面主類ZuoYe.as中先初始化整個(gè)項(xiàng)目App.init(this);//啟動(dòng)項(xiàng)目App.loader.loadAssets(["assets/comp.swf"],newHandler(loaded),newHandler(loading));在資源加載完成事件中添加顯示對(duì)象MainViewview=newMainView();//新建主界面addChild(view);//在舞臺(tái)上加載主界面1、主界面代碼設(shè)計(jì) MainView.as中先初始化并為InsertView類和DeleteView類實(shí)例化對(duì)象,然后為兩個(gè)按鈕添加鼠標(biāo)click事件,以達(dá)到點(diǎn)擊按鈕進(jìn)入某個(gè)界面的效果。核心代碼如下:overrideprotectedfunctioninitialize():void { view_insert=newInsertView();//新建一個(gè)插入視圖 addChild(view_insert);//把插入視圖添加到主界面中 view_delete=newDeleteView();//新建一個(gè)刪除操作 addChild(view_delete);//把刪除視圖添加到主界面中 view_insert.visible=view_delete.visible=false;//設(shè)置初始可見度 view_insert.addEventListener(ChildClassEvent.Back,showSth); //為插入視圖添加按鈕點(diǎn)擊事件 view_delete.addEventListener(ChildClassEvent.Back,showSth);//為刪除視圖添加按鈕點(diǎn)擊事件 btn_1.addEventListener(MouseEvent.CLICK,onClicked); btn_2.addEventListener(MouseEvent.CLICK,onClicked); }2、插入操作代碼設(shè)計(jì)(1)在InsertView.as初始化方法中對(duì)元件初始化核心代碼如下:for(vari;inti=0;i<5;i++){arrArrow.push(this[“arrow_”+i]);//將五個(gè)箭頭push到arrArrow數(shù)組中}arrow_up.scaleX=0;//設(shè)置朝上箭頭元件為0arrow_p.visible=false;//設(shè)置指針元件不可見btn_insert.addEventListener(MouseEvent.CLICK.onClicked);btn_redo.addEventListener(MouseEvent.CLICK.onClicked);btn_return.addEventListener(MouseEvent.CLICK.onClicked);timer.addEventListener(TimeEvent.TIMER.onTimer);timer.addEventListener(TimeEvent.TIMER_COMPLETE.timerCompleteEvent);在鼠標(biāo)事件方法中對(duì)插入按鈕作相應(yīng)效果,如果點(diǎn)擊插入按鈕,就進(jìn)行指針的動(dòng)畫過程,如果點(diǎn)擊重來按鈕,就重新返回插入的主界面。核心代碼如下:switch(e.target) { casebtn_insert: doAction();//播放動(dòng)畫 break; casebtn_redo://當(dāng)按下“重來”按鈕時(shí),初始化整個(gè)舞臺(tái) timeLineLite.kill();//停止播放器 icon.alpha=1;//設(shè)置角元件為可見 arrow_up.scaleX=0;//設(shè)置朝上箭頭的水平比例為0 arrow_p.x=arrPosX_arrow_p[0];//初始化指針的坐標(biāo) arrow_p.visible=false;//設(shè)置指針為不可見 input_1.text=input_2.text="";//清空輸入框文本 if(index<5) { arrArrow[index].rotation=0;//初始化箭頭角度 arrArrow[index].scaleX=1;//初始化箭頭比例 } if(contains(cell))removeChild(cell);//清除鏈表單元 btn_insert.mouseEnabled=btn_return.mouseEnabled=true;//設(shè)置按鈕為可用 break; casebtn_return: visible=false;//隱藏Insert界面 dispatchEvent(newChildClassEvent(ChildClassEvent.Back));//派發(fā)返回主界面事件 break; default: break;鼠標(biāo)點(diǎn)擊之后,對(duì)插入的地址做出相應(yīng)的判斷,如果地址小于5,使用appen函數(shù)指針做出緩動(dòng),生成一個(gè)節(jié)點(diǎn),完成插入過程。核心代碼:privatefunctiontimerCompleteEvent(e:TimerEvent):void { cell.alpha=1;//設(shè)置鏈表單元透明度為最大 timeLineLite=newTimelineLite();//創(chuàng)建播放器實(shí)例 timeLineLite.append(newTweenLite(cell,2,{y:PosY_cell}));//鏈表單元從存儲(chǔ)池下降到這個(gè)位置 timeLineLite.append(newTweenLite(cell,index*1,{x:arrPosX_cell[--index]}));//鏈表單元左移 if(index<5) { timeLineLite.append(newTweenLite(cell.arrow,2,{scaleX:1}));//設(shè)置鏈表單元箭頭的水平比例為1 timeLineLite.append(newTweenLite(arrArrow[index],2,{scaleX:0,onComplete:function():void{(arrArrow[index]asImage).rotation=-90}}));//將鏈表單元的箭頭角度改為-90,使其朝上 timeLineLite.append(newTweenLite(arrArrow[index],2,{scaleX:1}));//設(shè)置前一個(gè)鏈表箭頭的水平比例為1 } else { timeLineLite.append(newTweenLite(cell.icon,1,{alpha:1}));//設(shè)置鏈表單元角的透明度為最大 timeLineLite.append(newTweenLite(icon,1,{alpha:0}));//設(shè)置前一個(gè)鏈表角的透明度為最小 timeLineLite.append(newTweenLite(arrow_up,2,{scaleX:1}));//設(shè)置朝上箭頭的水平比例為最大 } }3、刪除操作的代碼設(shè)計(jì)(1)界面初始化,在InsertView.as初始化方法中對(duì)元件初始化,生成各節(jié)點(diǎn)核心代碼如下:for(varj:int=0;j<arrCell.length;j++) { cell=arrCell[j];//存儲(chǔ)五個(gè)鏈表單元的引用 cell.txt.text="a"+String(j+1);//初始化五個(gè)鏈表單元的文本內(nèi)容 cell.icon.visible=j>2;//后面兩個(gè)鏈表單元的角元件可見 if(j==3)cell.icon.alpha=0;//第四個(gè)鏈表單元的角設(shè)為透明 cell.arrow.visible=cell.img.visible=false;//隱藏鏈表單元不相關(guān)的元件 cell.arrow_right.visible=j!=4;//設(shè)置最后一個(gè)鏈表單元的箭頭為可見 } btn_delete.addEventListener(MouseEvent.CLICK,onClicked); btn_recome.addEventListener(MouseEvent.CLICK,onClicked); btn_return.addEventListener(MouseEvent.CLICK,onClicked); timer.addEventListener(TimerEvent.TIMER,onTimer); timer.addEventListener(TimerEvent.TIMER_COMPLETE,timerCompleteEvent);(2)在鼠標(biāo)事件方法中對(duì)插入按鈕作相應(yīng)效果,如果點(diǎn)擊刪除按鈕,則進(jìn)行指針動(dòng)作,完成刪除動(dòng)畫。如果點(diǎn)擊重來按鈕,返回到主刪除界面。核心代碼如下:privatefunctiononClicked(e:MouseEvent):void { switch(e.target) { casebtn_delete: doAction();//播放動(dòng)畫 break; casebtn_recome: vara:Array=[,0,1,2,3,4];//設(shè)置索引器 timeLinelite.kill();//停止播放器的工作 arrow_P.visible=false;//隱藏指針 arrow_P.x=arrPosX_arrow_P[0];//初始化指針坐標(biāo) arrow_curve.scaleX=0;//初始化彎曲箭頭的水平比例 if(index>1)(arrCell[a[index-1]]asCellUI).arrow_right.scaleX=1;//初始化鏈表單元朝右箭頭的水平比例 (arrCell[a[index]]asCellUI).arrow_right.scaleX=1;//設(shè)置鏈表單元右箭頭的水平比例 (arrCell[a[index]]asCellUI).alpha=1;///設(shè)置鏈表單元右箭頭的透明度 (arrCell[a[index]]asCellUI).x=arrPosX_cell[a[index]];//初始化X坐標(biāo) (arrCell[a[index]]asCellUI).y=146;//初始化Y坐標(biāo) (arrCell[a[index]]asCellUI).txt.alpha=1;//顯示鏈表單元文本內(nèi)容 container.alpha=1;//設(shè)置容器的透明度 container.scaleY=0;//設(shè)置容器的水平比例 container.y=228;//設(shè)置容器的Y坐標(biāo) arrow_0.scaleX=1;//初始化第一個(gè)鏈表單元的水平比例 btn_delete.mouseEnabled=btn_return.mouseEnabled=true; //將按鈕設(shè)為可用 break; casebtn_return: visible=false;//設(shè)置當(dāng)前界面不可見 dispatchEvent(newChildClassEvent(ChildClassEvent.Back));//派發(fā)返回主界面事件 break; default: break; } }(3)指針移動(dòng)動(dòng)畫實(shí)現(xiàn):privatefunctiontimerCompleteEvent(e:TimerEvent):void { vara1:Array=[,,0,1,2,3,4];//前一個(gè)單元鏈表的索引(對(duì)要移除的單元鏈表而言) vara2:Array=[,0,1,2,3,4];//要移除的單元鏈表的索引 varoffsetPoint:Point=newPoint(); timeLinelite=newTimelineLite();//創(chuàng)建播放器 container.x=arrPosX_container[a2[index]];//初始化容器的坐標(biāo) offsetPoint.x=container.x-arrCell[a2[index]].x;//設(shè)定箭頭容器的x坐標(biāo)(要移除的單元鏈表下面的) offsetPoint.y=container.y-arrCell[a2[index]].x-24; timeLinelite.append(newTweenLite(container,2,{scaleY:1})); if(index==5)timeLinelite.append(newTweenLite((arrCell[a2[index]]asCellUI).icon,1,{alpha:0}));//最后一個(gè)單元鏈表的角消失 if(index==1) { timeLinelite.append(newTweenLite(arrow_0,2,{scaleX:0}));//如果移除的是第一個(gè)單元鏈表將前面棕色的單元鏈表的指向右的箭頭縮短 } else { timeLinelite.append(newTweenLite((arrCell[a1[index]]asCellUI).arrow_right,2,{scaleX:0})); } if(index==5)timeLinelite.append(newTweenLite((arrCell[a1[index]]asCellUI).icon,1,{alpha:1}));//倒數(shù)第二個(gè)單元鏈表的角顯示 if(index!=5)timeLinelite.append(newTweenLite(arrow_curve,2,{scaleX:1,onStart:function():void{arrow_curve.x=arrPosX_curveArrow[index]}}));//上面那個(gè)大的彎曲的箭頭伸展 if(index!=5)timeLinelite.append(newTweenLite((arrCell[a2[index]]asCellUI).arrow_right,2,{scaleX:0}));//除最后一個(gè)其他的單元鏈表指向右的箭頭縮短 timeLinelite.appendMultiple([newTweenLite(arrCell[a2[index]],1,{y:PosY}),newTweenLite(container,1,{y:PosY+78})]);}//要移除的單元鏈表連同下面黃色彎曲的箭頭一起向下移動(dòng)timeLinelite.appendMultiple([new

TweenLite(arrCell[a2[index]],2,{alpha:0,y:389}),new

TweenLite((arrCell[a2[index]]

as

CellUI).txt,0.5,{alpha:0}),new

TweenLite(container,2,{alpha:0,y:389+78})]);//要移除的單元鏈表連同下面黃色彎曲的箭頭一起向下移動(dòng)至存儲(chǔ)池動(dòng)畫運(yùn)行在2位置插入數(shù)據(jù)為5的節(jié)點(diǎn)之后,我們能夠觀看到的動(dòng)畫是插入節(jié)點(diǎn)的指針先指向a2節(jié)點(diǎn),a1的后繼指向插入節(jié)點(diǎn),整個(gè)插入操作就完成了,完成后的界面如圖3.6圖3.6刪除第三個(gè)位置上的節(jié)點(diǎn),首先P指針找到第二個(gè)節(jié)點(diǎn),然后a2的后繼指向它后繼的后繼,刪除后的節(jié)點(diǎn)進(jìn)入存儲(chǔ)池,整個(gè)刪除操作完成之后的界面如圖3.7圖3.7四、存在的問題和不足在整體設(shè)計(jì)中,界面設(shè)計(jì)不是那么美觀,有待改進(jìn)。動(dòng)畫中沒能實(shí)現(xiàn)聲音功能,在教學(xué)演示中如果邊演示動(dòng)畫邊有聲音播放,對(duì)于理解會(huì)有很大的幫助,由于本次設(shè)計(jì)時(shí)間和能力有限,未能夠?qū)崿F(xiàn)這部分的功能。當(dāng)插入的位置越界時(shí),沒有提醒插入位置不正確提示框彈出。只能進(jìn)行一次性的插入和刪除操作。五、結(jié)語(yǔ) 教學(xué)動(dòng)畫的制作仍有不足的地方,但經(jīng)過這次的設(shè)計(jì),我學(xué)會(huì)了如何獨(dú)立的進(jìn)行一個(gè)動(dòng)畫設(shè)計(jì),了解了常見的圖形和動(dòng)畫程序的實(shí)現(xiàn)方法,并且實(shí)現(xiàn)了鏈表基本操作的動(dòng)畫演示,在此期間無論是對(duì)ActionScript腳本編程還是對(duì)數(shù)據(jù)結(jié)構(gòu)都有了更深的理解,編程能力有了很大的提高,對(duì)于MornBuilder和FlashBuilder軟件的使用更加的熟悉。在設(shè)計(jì)的過程中遇到過很多問題,比如安裝MornBuilder時(shí)不能正常運(yùn)行,需要安裝Java之后才能正常運(yùn)行,timeLinelite類中的append、insert等方法是使用不是太會(huì),這些問題都是以前沒有遇到過的,通過查閱書籍和詢問同學(xué)老師解決,這次的畢業(yè)設(shè)計(jì)進(jìn)行的時(shí)間比較長(zhǎng),主要是因?yàn)閷?duì)于as3.0語(yǔ)言不太熟悉,并且沒有用過FlashBuilder軟件,但最終還是設(shè)計(jì)出來了。本論文對(duì)于鏈表操作的動(dòng)畫演示在教學(xué)中能夠幫助我們更好的學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),在未來的教學(xué)過程中會(huì)有很大的發(fā)展前景,作者會(huì)對(duì)其繼續(xù)研究和探討,相信在未來還可以做得更好。此類動(dòng)畫演示必將隨著自身技術(shù)和設(shè)計(jì)上的更大的進(jìn)步,展現(xiàn)出更為廣闊的前景和未來。六、謝辭在本論文的寫作過程中,遇到過很多問題,比如,鏈表操作演示動(dòng)畫用哪種軟件設(shè)計(jì),開始繞了很多彎路,后來確定用FlashBuilder做之后進(jìn)行得也不太順利,對(duì)于ActionScript腳本語(yǔ)言的不熟悉,也使得畢業(yè)設(shè)計(jì)進(jìn)行的比較慢,在這樣一種情況下,多虧指導(dǎo)老師吳海濤對(duì)我的詳細(xì)指導(dǎo)和耐心溝通,使得我能夠比較順利地完成本次的畢業(yè)設(shè)計(jì),無論是從選題到開題報(bào)告,還是從寫作提綱到一遍又一遍的指出每稿中的具體問題指導(dǎo)老師都給予了我非常大的幫助,指導(dǎo)老師的嚴(yán)格把關(guān),循循善誘,嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。沒有這樣的關(guān)心幫助和熏陶,我是不會(huì)這么順利地完成畢業(yè)設(shè)計(jì),在此我向吳海濤指導(dǎo)老師表示衷心的感謝。同時(shí),我還要對(duì)在大學(xué)四年期間給我極大關(guān)心和支持的各位老師以及關(guān)心我的同學(xué)和朋友表示由衷的謝意,感謝四年來對(duì)我的關(guān)心和幫助。四年的交大生活給予我許多珍貴的財(cái)富,教會(huì)我許多難能的品質(zhì)。寫作畢業(yè)論文是一次再次系統(tǒng)學(xué)習(xí)的過程,畢業(yè)論文的完成,對(duì)于我們今后的工作會(huì)有很大的幫助,通過這次畢業(yè)設(shè)計(jì),我們不緊學(xué)會(huì)了很多的基礎(chǔ)知識(shí),編程知識(shí),更重要的是,我們學(xué)會(huì)了自主學(xué)習(xí)的能力,這種能力對(duì)于離開學(xué)校即將步入社會(huì)的大學(xué)生是非常重要的。畢業(yè)設(shè)計(jì)的完成不緊是對(duì)于整個(gè)大學(xué)的生活畫上的完美句號(hào),同樣意味著新的學(xué)習(xí)生活的開始。在今后的人生道路上,我們應(yīng)該秉著精勤求學(xué),敦篤勵(lì)志,果毅力行,忠恕任事,堅(jiān)持不懈,精益求精的態(tài)度勇敢地不斷前行。七、參考文獻(xiàn)[1]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).北京:清華大學(xué)出版社,2003.[2]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版).北京:清華大學(xué)出版社,2004.[3]NellB.Dale.C++PlusDataStructures,ThirdEdition.JonesandBartlettPublishers,Inc.,2003.[4]RickParent.劉祎譯.張鵬.計(jì)算機(jī)動(dòng)畫算法與技術(shù)(第2版).北京:清華大學(xué)出版社,2007.12[5]雍俊海.計(jì)算機(jī)動(dòng)畫算法與編程基礎(chǔ).北京:清華大學(xué)出版社,2008.7[6]DavidGeary.愛飛翔譯.HTML5Canvas核心技術(shù):圖形、動(dòng)畫與游戲開發(fā).北京:機(jī)械工業(yè)出版社,2013.2[8]黃同成,周紅波.程序設(shè)計(jì)基礎(chǔ)教程(c語(yǔ)言)[M].長(zhǎng)沙:湖南人民出版社,2012.1[9]黃同成,黃磊.程序設(shè)計(jì)實(shí)踐教程(c語(yǔ)言)[M].長(zhǎng)沙:湖南人民出版社,2012.1[10]譚浩強(qiáng).c程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005[11]耿國(guó)華.數(shù)據(jù)結(jié)構(gòu)--用c語(yǔ)言描述[M].北京:高等教育出版社,2011.6[12]唐策善.數(shù)據(jù)結(jié)構(gòu)--用c語(yǔ)言描述[M].北京:高等教育出版社,1995[13]蘇德富.數(shù)據(jù)結(jié)構(gòu)語(yǔ)言(C語(yǔ)言)[M].重慶:重慶大學(xué)出版社,2001[14]陳維興,林小茶.C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第三版)[M].清華大學(xué)出版社,2009[15]李根強(qiáng).數(shù)據(jù)結(jié)構(gòu)(第2版)[M].中國(guó)水利水電出版社,2009[16]AtallahBlanton.General_Concepts_and_Techniques_2nd,1995[17]AhoAV,HopcroftJE,UllmanJD.DataStructuresandAlgorithms[M].American:Addison-WesleyPublishingCompany,1983,18-96[18]BaronRJ,ShapiroLG.DataStructuresandtheirImplementation[M].American:VanNostrandReinholdCompany,1980:32-110.源文件聯(lián)系八幺零幺久久八八六(Q)基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量?jī)x的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論