900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > c语言骑士游历优化算法 骑士游历 骑士巡游(C语言)课程设计.doc

c语言骑士游历优化算法 骑士游历 骑士巡游(C语言)课程设计.doc

时间:2023-06-29 01:45:10

相关推荐

c语言骑士游历优化算法 骑士游历 骑士巡游(C语言)课程设计.doc

存档资料 成绩:

华东交通大学理工学院

课 程 设 计 报 告 书

所属课程名称 数据结构

题 目 骑士游历

分 院

专业班级

学号

学生姓名 黄锦辉

指导教师

年 6月 15 日

目 录

第1章 课程设计内容及要求1

第2章 功能的说明与实现2

2.1 程序功能模块2

2.2 程序功能模块图2

第3章 程序功能的具体实现3

3.1 主函数main()的执行流程3

3.2 系统测试与调试3

第4章 源代码6

第5章 课程设计心得9

第6章 参考文献10

第1 章 课程设计内容及要求

运行程序设置一个8行8列的棋盘,在国际象棋的原则下,任意的输入一个存在的点,这个被视为骑士(马)的初始位置,让马通过这个点走完棋盘上的每一个点,并且不重复。在对已经走过的路线里,采用标志矩阵进行记录。标志矩阵的引入利用了数据的线性存储。这个称为骑士游历算法。

本课程设计所采用的计算机语言是C语言,所使用的软件是使用比较普遍的Microsoft Visual C++ 软件。

第2章 功能的说明与实现

2.1 程序功能模块

总共分为三个模块,分别是创建棋盘模块,位置设置模块和显示结果模块

1.创建棋盘模块:此时我们使用矩阵设计一个模拟的棋盘。其关键代码如下:

int f[11][11] ; /*定义一个矩阵来模拟棋盘*/

int adjm[121][121]; /*于上述棋盘,标志矩阵*/

void creatadjm(void) /*创建标志矩阵函数声明*/

void mark(int,int,int,int); /*将标志矩阵相应位置置1*/

void travel(int,int); /*巡游函数声明*/

int n,m; /*定义矩阵大小及标志矩阵的大小*/

2.位置设置模块:输入任意一个在8行8列棋盘中的一个点,其格式表示为:m n (m表示行,n表示列)。

3.显示结果模块:将起始位置设定好了,将在这个模拟棋盘中用数字显示马走过的每一步。

2.2 程序功能模块图

总共有三个模块,如下图所示:

图2.2—1

第3章 程序功能的具体实现

3.1 主函数main()的执行流程

1.运行了主函数main()之后,马上执行了菜单,输入了行列数, 在这里我们采用的是8行8列的棋盘

2.执行流程图,如下所示

图3.1—1

3.2 系统测试与调试

1.程序代码的输入和运行

新建C文件并输入代码到工作界面当中,仔细检查,运行代码,如下图所示,图3.2-1表示程序的输入和运行,图3.2-2表示运行出错:

图3.2—1

图3.2—2

2.程序代码的调试

经过老师和同学的讨论,自己上网查阅资料,修改了程序出错的地方,是由于自己的粗心,忘记写入标点符号,这才导致了错误,然后又仔细的检查了一遍程序,程序运行成功,没有错误了。

图3.2-3

3 程序的显示结果

在命令窗口中输入了棋子的不同起点,运行都成功了。如下图所示:

图3.2-4 以(2,3)为起点

图3.2-5 以(4,5)为起点

图3.2-6 以(6,6)为起点

第4章 源代码

#include

int f[11][11] ; /*定义一个矩阵来模拟棋盘*/

int adjm[121][121];/*标志矩阵,即对于上述棋盘,依次进行编号*/

void creatadjm(void); /*创建标志矩阵函数声明*/

void mark(int,int,int,int); /*将标志矩阵相应位置置1*/

void travel(int,int); /*巡游函数声

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。