c语言骑士游历优化算法,骑士游历、骑士巡游(C语言)课程设计.doc
存檔資料 成績:
華東交通大學(xué)理工學(xué)院
課 程 設(shè) 計(jì) 報(bào) 告 書
所屬課程名稱 數(shù)據(jù)結(jié)構(gòu)
題 目 騎士游歷
分 院
專業(yè)班級(jí)
學(xué) 號(hào)
學(xué)生姓名 黃錦輝
指導(dǎo)教師
2012 年 6月 15 日
目 錄
第1章 課程設(shè)計(jì)內(nèi)容及要求1
第2章 功能的說明與實(shí)現(xiàn)2
2.1 程序功能模塊2
2.2 程序功能模塊圖2
第3章 程序功能的具體實(shí)現(xiàn)3
3.1 主函數(shù)main()的執(zhí)行流程3
3.2 系統(tǒng)測試與調(diào)試3
第4章 源代碼6
第5章 課程設(shè)計(jì)心得9
第6章 參考文獻(xiàn)10
第1 章 課程設(shè)計(jì)內(nèi)容及要求
運(yùn)行程序設(shè)置一個(gè)8行8列的棋盤,在國際象棋的原則下,任意的輸入一個(gè)存在的點(diǎn),這個(gè)被視為騎士(馬)的初始位置,讓馬通過這個(gè)點(diǎn)走完棋盤上的每一個(gè)點(diǎn),并且不重復(fù)。在對(duì)已經(jīng)走過的路線里,采用標(biāo)志矩陣進(jìn)行記錄。標(biāo)志矩陣的引入利用了數(shù)據(jù)的線性存儲(chǔ)。這個(gè)稱為騎士游歷算法。
本課程設(shè)計(jì)所采用的計(jì)算機(jī)語言是C語言,所使用的軟件是使用比較普遍的Microsoft Visual C++ 軟件。
第2章 功能的說明與實(shí)現(xiàn)
2.1 程序功能模塊
總共分為三個(gè)模塊,分別是創(chuàng)建棋盤模塊,位置設(shè)置模塊和顯示結(jié)果模塊
1.創(chuàng)建棋盤模塊:此時(shí)我們使用矩陣設(shè)計(jì)一個(gè)模擬的棋盤。其關(guān)鍵代碼如下:
int f[11][11] ; /*定義一個(gè)矩陣來模擬棋盤*/
int adjm[121][121]; /*于上述棋盤,標(biāo)志矩陣*/
void creatadjm(void) /*創(chuàng)建標(biāo)志矩陣函數(shù)聲明*/
void mark(int,int,int,int); /*將標(biāo)志矩陣相應(yīng)位置置1*/
void travel(int,int); /*巡游函數(shù)聲明*/
int n,m; /*定義矩陣大小及標(biāo)志矩陣的大小*/
2.位置設(shè)置模塊:輸入任意一個(gè)在8行8列棋盤中的一個(gè)點(diǎn),其格式表示為:m n (m表示行,n表示列)。
3.顯示結(jié)果模塊:將起始位置設(shè)定好了,將在這個(gè)模擬棋盤中用數(shù)字顯示馬走過的每一步。
2.2 程序功能模塊圖
總共有三個(gè)模塊,如下圖所示:
圖2.2—1
第3章 程序功能的具體實(shí)現(xiàn)
3.1 主函數(shù)main()的執(zhí)行流程
1.運(yùn)行了主函數(shù)main()之后,馬上執(zhí)行了菜單,輸入了行列數(shù), 在這里我們采用的是8行8列的棋盤
2.執(zhí)行流程圖,如下所示
圖3.1—1
3.2 系統(tǒng)測試與調(diào)試
1.程序代碼的輸入和運(yùn)行
新建C文件并輸入代碼到工作界面當(dāng)中,仔細(xì)檢查,運(yùn)行代碼,如下圖所示,圖3.2-1表示程序的輸入和運(yùn)行,圖3.2-2表示運(yùn)行出錯(cuò):
圖3.2—1
圖3.2—2
2.程序代碼的調(diào)試
經(jīng)過老師和同學(xué)的討論,自己上網(wǎng)查閱資料,修改了程序出錯(cuò)的地方,是由于自己的粗心,忘記寫入標(biāo)點(diǎn)符號(hào),這才導(dǎo)致了錯(cuò)誤,然后又仔細(xì)的檢查了一遍程序,程序運(yùn)行成功,沒有錯(cuò)誤了。
圖3.2-3
3 程序的顯示結(jié)果
在命令窗口中輸入了棋子的不同起點(diǎn),運(yùn)行都成功了。如下圖所示:
圖3.2-4 以(2,3)為起點(diǎn)
圖3.2-5 以(4,5)為起點(diǎn)
圖3.2-6 以(6,6)為起點(diǎn)
第4章 源代碼
#include
int f[11][11] ; /*定義一個(gè)矩陣來模擬棋盤*/
int adjm[121][121];/*標(biāo)志矩陣,即對(duì)于上述棋盤,依次進(jìn)行編號(hào)*/
void creatadjm(void); /*創(chuàng)建標(biāo)志矩陣函數(shù)聲明*/
void mark(int,int,int,int); /*將標(biāo)志矩陣相應(yīng)位置置1*/
void travel(int,int); /*巡游函數(shù)聲
總結(jié)
以上是生活随笔為你收集整理的c语言骑士游历优化算法,骑士游历、骑士巡游(C语言)课程设计.doc的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言 队列 游戏,循环队列实现约瑟夫游
- 下一篇: c语言输入十个英文国名,c语言程式设计