九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

實驗報告 馬踏棋盤

上傳人:cjc****537 文檔編號:59714611 上傳時間:2022-03-04 格式:DOC 頁數(shù):8 大?。?32.55KB
收藏 版權(quán)申訴 舉報 下載
實驗報告 馬踏棋盤_第1頁
第1頁 / 共8頁
實驗報告 馬踏棋盤_第2頁
第2頁 / 共8頁

本資源只提供2頁預(yù)覽,全部文檔請下載后查看!喜歡就下載吧,查找使用更方便

10 積分

下載資源

資源描述:

《實驗報告 馬踏棋盤》由會員分享,可在線閱讀,更多相關(guān)《實驗報告 馬踏棋盤(8頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、2.4題馬踏棋盤題目:設(shè)計一個國際象棋的馬踏棋盤的演示程序班級:姓名:學(xué)號:完成日期:1 需求分析(1)輸入的形式和輸入值的范圍:輸入馬的初始行坐標(biāo)X和列坐標(biāo)Y,X和Y的范圍都是1,8。(2)輸出形式:以數(shù)組下表的形式輸入,i為行標(biāo),j為列標(biāo),用空格符號隔開。以棋盤形式輸出,每一格打印馬走的步數(shù),這種方式比較直觀(3)程序所能達(dá)到的功能:讓馬從任意起點出發(fā)都能夠遍歷整個8*8的棋盤。(4)測試數(shù)據(jù),包括正確輸入及輸出結(jié)果和含有錯誤的輸入及其輸出結(jié)果。數(shù)據(jù)可以任定,只要1=x,y=8就可以了。正確的輸出結(jié)果為一個二維數(shù)組,每個元素的值表示馬行走的第幾步,若輸入有錯,則程序會顯示:“輸入有誤!請重

2、新輸入”并且要求用戶重新輸入數(shù)據(jù),直至輸入正確為止。2 概要設(shè)計(1) 、位置的存儲表示方式(2) typedefstruct intx; inty; intfrom;Point;(2) 、棧的存儲方式#defineSTACKSIZE70#defineSTACKINCREASE10typedefstructStack Point*top; Point*base;intstacksize;(1)、設(shè)定棧的抽象數(shù)據(jù)類型定義:ADTStack數(shù)據(jù)對象:D=ai|aiElemSet,i=1,2,n,n0 數(shù)據(jù)關(guān)系:R1=|ai-1,aiD,i=2,n 約定an端為棧頂,ai端為棧頂。 基本操作:Ini

3、tStack(&s)操作結(jié)果:構(gòu)造一個空棧s,DestroyStack(&s)初始條件:棧s已存在。 操作結(jié)果:棧s被銷毀。 ClearStack(&s)初始條件:棧s已存在。 操作結(jié)果:棧s清為空棧。 StackEmpty(&s)初始條件:棧s已存在。 操作結(jié)果:若棧s為空棧,則返回TRUE,否則返回FALSE。 StackLength(s); 初始條件:棧s存在。操作結(jié)果:返回s的元素個數(shù),即棧的長度。GetTop(s,&e);初始條件:棧s已存在且非空。 操作結(jié)果:用e返回s的棧頂元素。Push(&s,e) 初始條件:棧s已存在。操作結(jié)果:插入元素e為新的棧頂元素。Pop(&s,&e)初

4、始條件:棧s存在且非空。操作結(jié)果:刪除棧頂元素,并用e返回。stackTraverse(s,visit() 初始條件:棧s存在且非空。操作結(jié)果:從棧底到棧頂依次對s的每個元素調(diào)用visit()。一旦visit()失敗, 則 操作失敗。ADTStack本程序包含模塊:1、 主程序模塊:voidmain()定義變量;接受命令;處理命令;退出;2、 起始坐標(biāo)函數(shù)模塊馬兒在棋盤上的起始位置;3、 探尋路徑函數(shù)模塊馬兒每個方向進(jìn)行嘗試,直到試完整個棋盤;4、 輸出路徑函數(shù)模塊輸出馬兒行走的路徑;3 詳細(xì)設(shè)計1.函數(shù)聲明Void InitLocation(int xi,intyi);/馬兒在棋盤上的起始位

5、置標(biāo)intTryPath(inti,intj);/馬兒每個方向進(jìn)行嘗試,直到試完整個棋盤voidDisplay();/輸出馬兒行走的路徑2.起始坐標(biāo)函數(shù)模塊voidInitLocation(intxi,intyi)intx,y;/定義棋盤的橫縱坐標(biāo)變量top+;/棧指針指向第一個棧首stacktop.i=xi;/將起始位置的橫坐標(biāo)進(jìn)棧stacktop.j=yi;/將起始位置的縱坐標(biāo)進(jìn)棧stacktop.director=-1;/將起始位置的嘗試方向賦初值boardxiyi=top+1;/標(biāo)記棋盤x=stacktop.i;/將起始位置的橫坐標(biāo)賦給棋盤的橫標(biāo)y=stacktop.j;/將起始位置的

6、縱坐標(biāo)賦給棋盤的縱坐標(biāo)if(TryPath(x,y)/調(diào)用馬兒探尋函數(shù),如果馬兒探尋整個棋盤返回1否則0Display();/輸出馬兒的行走路徑elseprintf(無解);3.探尋路徑函數(shù)模塊intTryPath(inti,intj)intfind,director,number,min;/定義幾個臨時變量inti1,j1,h,k,s;/定義幾個臨時變量inta8,b18,b28,d8;/定義幾個臨時數(shù)組while(top-1)/棧不空時循環(huán) for(h=0;h=0&i=0&j8)/如果找到下一位置for(k=0;k=0&i1=0&j18)/如果找到下一位置number+;/記錄條數(shù) ah=

7、number;/將條數(shù)存入數(shù)組a8中 for(h=0;h8;h+)/根據(jù)可行路徑條數(shù)小到大按下表排序放d8中 min=9;for(k=0;kak)min=ak;dh=k;/將下表存入數(shù)組d8中s=k; as=9;director=stacktop.director;if(top=63)/如果走完整個棋盤返回1return(1);find=0;/表示沒有找到下一個位置for(h=director+1;h=0&i=0&j8)/如果找到下一位置find=1;/表示找到下一個位置Break;if(find=1)/如果找到下一個位置進(jìn)棧stacktop.director=director;/存儲棧結(jié)點的

8、方向top+;/棧指針前移進(jìn)棧stacktop.i=i;stacktop.j=j;stacktop.director=-1;/重新初始化下一棧結(jié)點的嘗試方向boardij=top+1;/標(biāo)記棋盤 else/否則退棧 boardstacktop.istacktop.j=0;/清除棋盤的標(biāo)記top-;/棧指針前移退棧 return(0);4.輸出路徑函數(shù)模塊voidDisplay()inti,j;for(i=0;iN;i+)for(j=0;jN;j+)printf(t%d,boardij);/輸出馬兒在棋盤上走過的路徑printf(nn);printf(n);四、測試數(shù)據(jù)及測試結(jié)果測試數(shù)據(jù):x=2

9、,y=3測試結(jié)果如下:5 原程序代碼#include#defineMAXSIZE100#defineN8intboard88;/定義棋盤intHtry18=1,-1,-2,2,2,1,-1,-2;/*存儲馬各個出口位置相對當(dāng)前位置行下標(biāo)的*/intHtry28=2,-2,1,1,-1,-2,2,-1;/*存儲馬各個出口位置相對當(dāng)前位置列下標(biāo)的增量數(shù)組*/structStack/定義棧類型inti;/行坐標(biāo)intj;/列坐標(biāo)intdirector;/存儲方向stackMAXSIZE;/定義一個棧數(shù)組inttop=-1;/棧指針voidInitLocation(intxi,intyi);/馬兒在棋

10、盤上的起始位置坐標(biāo)intTryPath(inti,intj);/馬兒每個方向進(jìn)行嘗試,直到試完整個棋盤voidDisplay();/輸出馬兒行走的路徑voidInitLocation(intxi,intyi)intx,y;/定義棋盤的橫縱坐標(biāo)變量top+;/棧指針指向第一個棧首stacktop.i=xi;/將起始位置的橫坐標(biāo)進(jìn)棧stacktop.j=yi;/將起始位置的縱坐標(biāo)進(jìn)棧stacktop.director=-1;/將起始位置的嘗試方向賦初值boardxiyi=top+1;/標(biāo)記棋盤x=stacktop.i;/將起始位置的橫坐標(biāo)賦給棋盤的橫坐標(biāo)y=stacktop.j;/將起始位置的縱坐

11、標(biāo)賦給棋盤的縱坐標(biāo)if(TryPath(x,y)/調(diào)用馬兒探尋函數(shù),如果馬兒探尋整個棋盤返回1否則返回0Display();/輸出馬兒的行走路徑elseprintf(無解);intTryPath(inti,intj)intfind,director,number,min;/定義幾個臨時變量inti1,j1,h,k,s;/定義幾個臨時變量inta8,b18,b28,d8;/定義幾個臨時數(shù)組while(top-1)/棧不空時循環(huán)for(h=0;h=0&i=0&j8)/如果找到下一位置 for(k=0;k=0&i1=0&j18) /如果找到下一位置number+;/記錄條數(shù)ah=number;/將條

12、數(shù)存入數(shù)組a8中for(h=0;h8;h+)/根據(jù)可行路徑條數(shù)小到大按下表排序放入數(shù)組d8中min=9;for(k=0;kak) min=ak;dh=k;/將下表存入數(shù)組d8中s=k; as=9;director=stacktop.director;if(top=63)/如果走完整個棋盤返回1return(1);find=0;/表示沒有找到下一個位置for(h=director+1;h=0&i=0&j8)/如果找到下一位置 find=1;/表示找到下一個位置 break; if(find=1)/如果找到下一個位置進(jìn)棧 stacktop.director=director;/存儲棧結(jié)點的方向to

13、p+;/棧指針前移進(jìn)棧stacktop.i=i;stacktop.j=j;stacktop.director=-1;/重新初始化下一棧結(jié)點的嘗試方向boardij=top+1;/標(biāo)記棋盤else/否則退棧boardstacktop.istacktop.j=0;/清除棋盤的標(biāo)記top-;/棧指針前移退棧 return(0);voidDisplay() inti,j; for(i=0;iN;i+) for(j=0;jN;j+)printf(t%d,boardij);/輸出馬兒在棋盤上走過的路徑printf(nn); printf(n);intmain()inti,j;intx,y;for(i=0;iN;i+)/初始化棋盤for(j=0;jN;j+)boardij=0;for(;)printf(Pleaseinputimportpoint(1=x=8and1=y=1&x=1&y=8)break;printf(Yourinputisworng!n);printf(beginwith%dboard:nn,8*(x-1)+y);InitLocation(x-1,y-1);/調(diào)用起始坐標(biāo)函數(shù)

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!