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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)中典型算法的動(dòng)態(tài)演示畢業(yè)設(shè)計(jì)論文(參考版)

2025-08-09 07:22本頁面
  

【正文】 /*出棧,原來地方的 top 減 1*/
。/*入棧,目標(biāo)點(diǎn)的 top 加 1*/ num[y97].data[num[y97].top]=num[x97].data[num[x97].top]。/*把原來的地方移去涂黑*/ bar(100+150*(x97)(333*num[x97].data[num[x97].top]),2940020*num[x97].top8,100+150*(x97)+(333*num[x97].data[num[x97].top]),40020*num[x97].top+8)。 settextstyle(0,0,2)。/*輸出移動(dòng)過程*/ outtextxy(200,30,)。 setcolor(RED)。 setfillstyle(SOLID_FILL,BLACK)。 sprintf(num1,%c,x32)?!? 移盤、顯示移盤步驟接下來要做的解決移盤問題并顯示移盤步驟,這個(gè)過程的代碼如下:…int i。 /*塔座標(biāo)志*/ outtextxy(240,420,B)。 settextstyle(0,0,2)。 /*畫矩形*/ } setcolor(YELLOW)。/*盤子的顏色代碼為棧頂盤子代號加 1*/ setfillstyle(SOLID_FILL,color)。/*棧的高度加 1*/ num[0].data[num[0].top]=i。in。i++) num[i].top=1。/*越界的話 n 當(dāng) 10 處理*/…下面來開始畫盤子:首先初始化三個(gè)地方塔的高度,代碼如下:…for(i=0。/*全局變量 speed 主要是演示過程的速度*/然后要處理輸入數(shù)據(jù)越界的情況,因?yàn)楸P子個(gè)數(shù)過多,將很難實(shí)現(xiàn),因此這里以 0n10 為界限,越界的話 n 當(dāng) 10 處理。/*三個(gè)塔*/接下來要定義一些標(biāo)志變量來判斷運(yùn)行方式,比如:int puter=1。/*存放每個(gè)盤的代號*/ int top。關(guān)鍵技術(shù):畫盤子 、移盤、顯示移盤步驟實(shí)現(xiàn)步驟:畫盤子; 移盤、顯示移盤步驟。 第三步:將“上面的N-1個(gè)圓盤”看成一個(gè)整體,為了解決N個(gè)圓盤的漢諾塔,可以按下面圖示的方式逕行操作: 將A桿上面的N-1個(gè)盤子,借助B桿,移到C桿上;圖 54 漢諾塔解決方法示意圖(1) 將A桿上剩余的N號盤子移到B桿上;圖 55 漢諾塔解決方法示意圖(2) 將C桿上的N-1個(gè)盤子,借助A桿,移到B桿上。假設(shè)A桿上只有一個(gè)圓盤,即漢諾塔只有一層N 1,則只要將1號盤從A桿上移到B桿上即可。算法演示思想 [10]:設(shè)要解決的的漢諾塔共有N個(gè)圓盤,對A桿上的全部N個(gè)圓盤從小到大順序編號,最小的圓盤為1號,次之為2號,依次類推,則最下面的圓盤的編號為N?!菔拘Ч鐖D 53:圖 53 冒泡排序演示 漢諾塔模塊編碼26漢諾塔問題是一個(gè)經(jīng)典的遞歸問題。 setfillstyle(SOLID_FILL,BLACK)。 a[j+1]=t。 t=a[j]。 outtextxy(100+j*50,i*40+80,num1)。 /*置交換標(biāo)志*/ DrawChange(i*40+80,j)。 bar(0,i*40+60,640,i*40+100)。 sleep(1)。25 sprintf(num2,%d,a[j+1])。/*輸出要比較的兩個(gè)數(shù)*/ sprintf(num1,%d,a[j])。j++) { Pr(a,i*40+80)。 /*設(shè)置數(shù)據(jù)交換標(biāo)志*/ for(j=0。in1。 char num1[5],num2[5]。}? 清除交換區(qū)域數(shù)據(jù)交換過程中要注意的問題:因?yàn)槿绻麅蓚€(gè)數(shù)發(fā)生交換的話,首先將這兩個(gè)數(shù)加亮顯示。 line(j*50+140,i+8,j*50+1405,i+4)。 /*按給出的坐標(biāo)位置畫直線 */ line(j*50+120,i+8,j*50+120+5,i+4)。 /*輸出字符串*/ }}? 畫交換箭頭這里用畫線函數(shù)畫五根線組成一雙向箭頭線來表示兩個(gè)數(shù)發(fā)生交換,代碼如下:void DrawChange(int i,int j)/*畫交換箭頭*/{ setcolor(6)。i+=50)/*i 控制顯示位置和計(jì)算數(shù)組下標(biāo)*/ { sprintf(num,%d,a[(i100)/50])。 /*設(shè)置輸出顏色*/24 for(i=100。 settextstyle(0,0,2)。? 實(shí)現(xiàn)數(shù)組的輸出顯示 專門定義一個(gè)函數(shù)來解決數(shù)組顯示的問題,主要代碼如下:void Pr(int a[],int n)/*輸出數(shù)組*/{ int i。/*退出選項(xiàng)*/ }/*endswitch*/… 菜單界面效果如圖 52:23圖 52 主界面 冒泡排序模塊編碼本模塊要實(shí)現(xiàn)冒泡排序的演示過程,因此在算法執(zhí)行過程中,每發(fā)生一次交換,都將在屏幕上顯示出來。/*調(diào)用系統(tǒng)介紹*/ case 350: yes=0。yes=0。break。/*調(diào)用鏈表 */ case 270:system(tree)。yes=0。break。/*調(diào)用起泡排序*/ case 190:system(hanoi)。yes=0。/*新位置輸出球*/ } …? 實(shí)現(xiàn)對各模塊的調(diào)用接下來的事情是對各模塊的調(diào)用,先將各模塊代碼編譯成可執(zhí)行文件,然后用函數(shù) system()調(diào)用這些可執(zhí)行文件就行了。 else keyy=150。/*新位置輸出球*/ } if(key==DOWN)/*下鍵盤操作*/ { DrawBall(keyx,keyy,BLACK)。/*球的縱坐標(biāo)*/ else keyy=350。 if(key==UP)/*上鍵盤操作*/ [12] { DrawBall(keyx,keyy,BLACK)。/*系統(tǒng)介紹*/ HZ16(200,350,30,5,結(jié)束程序 )。 /*單鏈表的建立*/ HZ16(200,270,30,14,二叉樹遍歷 )。/*起泡排序*/ HZ16(200,190,30,1,漢諾塔 )。 settextstyle(0,0,2)。 settextstyle(0,0,3)。 rectangle(40,40,600,440)。 fillellipse(x,y+10,10,10)。21 下面我們來畫選擇的小球體 [14]:我們先定義一個(gè)畫球體的函數(shù) void DrawBall(int x,int y,int color)/* x 和 y 為坐標(biāo),color 為球的顏色*/{ setcolor(0)。 關(guān)鍵技術(shù):畫選擇菜單、模塊調(diào)用 模塊實(shí)現(xiàn)步驟:1、畫選擇菜單;2、實(shí)現(xiàn)對各模塊的調(diào)用。歡迎界面效果如圖 51。 }}20? 實(shí)現(xiàn)字體閃爍并循環(huán)變色這個(gè)問題相對來說比較簡單,我們能夠用 if 語句來實(shí)現(xiàn)對字體顏色的變化:首先我們定義一個(gè)變量 j,初始化為零,假設(shè)我們要使字體在三種顏色之間循環(huán)變化的話,我們可以這樣做,讓 j%3 這個(gè)式子作為 if 語句的基本判斷條件,我可以設(shè)定:j%3=0,字體顯示藍(lán)色;j%3=1 ,字體顯示紅色;j%3=2,字體顯示黃色。 putimage(snow[i].x,snow[i].y,save1,COPY_PUT)。isnownum。 setfillstyle(SOLID_FILL,15)。i++)/*去雪*/ putimage(snow[i].x,snow[i].y,save2,COPY_PUT)。 } for(i=0。 snow[snownum].x=sx[i]。 while(!kbhit()) { if(snownum!=100)/*生成新的雪花*/ { snow[snownum].speed=12+random(5)。i++) /*定義雪花的 x 坐標(biāo)*/ sx[i]=(i+2)*10。 for(i=0。 int sx[62]。/*保存區(qū)域的大小*/然后自定義一個(gè)具體的畫雪函數(shù)來實(shí)現(xiàn)畫雪景:void DrawSnow(void){ int j=0。 /*保存背景黑色 */}? 開始正式畫雪花19首先來做一些初始工作,定義幾個(gè)變量: int snownum=0。 getimage(196,196,204,204,save1)。/*定義保存圖象區(qū)域大小 */ save1=malloc(size)。 fillellipse(200,200,4,4)。void Copy(void)/*保存區(qū)域*/{ setcolor(0)。? 實(shí)現(xiàn)對雪花的保存首先定義兩個(gè)指針變量來作為保存空間:void *save1,*save2。 int speed。關(guān)鍵技術(shù):畫雪景、讓字循環(huán)變色模塊實(shí)現(xiàn)步驟:1、定義雪花的結(jié)構(gòu)及其一些基本參數(shù) 2、保存雪花 3、畫雪花 4、讓字閃爍并循環(huán)變色核心代碼實(shí)現(xiàn)如下:? 定義雪花的結(jié)構(gòu)及其一些基本參數(shù) struct Snow/*雪花的一些參數(shù)*/{ int x。該算法流程圖如圖 44。該演示算法流程圖如圖 43。圖 42 漢諾塔演示流程 二叉樹演示流程圖16該演示程序的思想是:用戶在運(yùn)行程序后,可選擇系統(tǒng)隨機(jī)生成二叉樹或者手動(dòng)產(chǎn)生,若是手動(dòng)的話用戶自己輸入結(jié)點(diǎn)數(shù)值;然后用戶可以選擇系統(tǒng)自動(dòng)和手動(dòng)兩種遍歷方式 。該演示程序的思想是:用戶在進(jìn)入程序后,先輸入想要演示的盤子個(gè)數(shù),然后再選擇是否自動(dòng)演示,若選擇自動(dòng)演示的話,輸入演示速度;若是手動(dòng)執(zhí)行的話,移盤一次程序暫停一下,然后按任意鍵繼續(xù)執(zhí)行直到完成。該演示算法流程圖如圖 41。此演示流程中將每一趟排序后的數(shù)據(jù)都顯示在屏幕上,通過每一趟的數(shù)據(jù)對比,讓人容易理解排序過程中數(shù)據(jù)怎么一步一步交換的,數(shù)據(jù)是怎么樣變成有序的。當(dāng)發(fā)現(xiàn)相鄰兩個(gè)數(shù)據(jù)的次序與排序要求的大小次序不符合時(shí),即將這兩個(gè)數(shù)據(jù)進(jìn)行互換。由此,該算法要設(shè)置三個(gè)標(biāo)志變量,分別用來判斷數(shù)據(jù)產(chǎn)生方式、排序演示方式和排序是否完成。該演示算法的基本思想是:用戶進(jìn)入程序后,可選擇系統(tǒng)隨機(jī)產(chǎn)生待排序的數(shù)據(jù)或者是自己手動(dòng)輸入數(shù)據(jù)(當(dāng)然不能超過個(gè)數(shù)限制,否則超出部分會(huì)無效) ;然后用戶還可以選擇系統(tǒng)自動(dòng)排序或者是手動(dòng)單步執(zhí)行排序,這兩種方式的區(qū)別在于選擇了前者排序?qū)⒆詣?dòng)進(jìn)行直到結(jié)束,而選擇后者的話每進(jìn)行完一趟排序程序暫停,等待用戶按任意鍵繼續(xù)執(zhí)行下一趟排序,直到全部排序結(jié)束退出。退出界面:星空燦爛,標(biāo)題漢字顯示并閃爍,顏色循環(huán)改變,并在一次循環(huán)之后退出系統(tǒng)。系統(tǒng)介紹:系統(tǒng)簡單介紹。在數(shù)據(jù)選擇和輸入方面,系統(tǒng)提供兩種方式:一是系統(tǒng)自動(dòng)隨機(jī)產(chǎn)生,二是用戶手動(dòng)輸入數(shù)據(jù)并支持自動(dòng)執(zhí)行和單步操作。調(diào)速的話還要用到延遲函數(shù),還有系統(tǒng)自動(dòng)12產(chǎn)生演示數(shù)據(jù)的話需要使用隨機(jī)數(shù)發(fā)生函數(shù),所有的算法演示均調(diào)用此類函數(shù)完成,使編程統(tǒng)一,方便。 算法演示子模塊中要注意的問題 對一個(gè)具體的算法演示子模塊,須滿足單步執(zhí)行,連續(xù)執(zhí)行,速度可調(diào),任意時(shí)刻復(fù)位等復(fù)雜功能,設(shè)計(jì)一個(gè)接收鍵盤輸入的字符函數(shù) [7 ]實(shí)現(xiàn)。 系統(tǒng)介紹的模塊:對系統(tǒng)簡單的介紹。 二叉樹遍歷模塊實(shí)現(xiàn)的功能:完成二叉樹遍歷算法的演示。冒泡排序模塊實(shí)現(xiàn)的功能:完成冒泡算法的演示。11圖 31 數(shù)據(jù)結(jié)構(gòu)算法動(dòng)態(tài)演示系統(tǒng)結(jié)構(gòu)總框圖 模塊功能說明對本系統(tǒng)的功能進(jìn)行分析后可做如下的模塊化設(shè)計(jì):主程序模塊實(shí)現(xiàn)的功能:完成選項(xiàng)菜單的顯示,及對各模塊的調(diào)用。有了系統(tǒng)總體結(jié)構(gòu)圖,我們就可以逐個(gè)模塊的詳細(xì)設(shè)計(jì),直至所有的模塊完全實(shí)現(xiàn)。當(dāng)需要加入新模塊時(shí),將程序加入到系統(tǒng)文件中,編譯即可 [3]。對每一個(gè)演示模塊,系統(tǒng)定義了公用的接口,每編寫一個(gè)新模塊,只需要連接到主界面模塊即可。本系統(tǒng)采用結(jié)構(gòu)化編程,編寫主模塊來調(diào)用不同的演示模塊。對各種有意或無意的誤操作,系統(tǒng)能正確處理,不會(huì)自動(dòng)中止。系統(tǒng)演示插入了適當(dāng)?shù)恼f明和注釋信息,以幫助使用者對演示過程的理解,為滿足各種不同層次用戶的要求,各種提示信息用中文方式。系統(tǒng)具備鍵盤接口,接受鍵盤輸入。D. 二叉樹算法 ①選擇系統(tǒng)自動(dòng)產(chǎn)生隨機(jī)二叉樹和手動(dòng)輸入數(shù)據(jù)產(chǎn)生兩種方式; ②選擇電腦自動(dòng)演示和手動(dòng)單步執(zhí)行兩種方式; ③屏幕上顯示算法執(zhí)行過程并輸出三種遍歷序列。B. 漢諾塔遞歸算法 ①任意輸入演示的個(gè)數(shù); ②選擇電腦自
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1