存档资料 成绩:
华东交通大学理工学院
课 程 设 计 报 告 书
所属课程名称 数据结构
题 目 骑士游历
分 院
专业班级
学 号
学生姓名 黄锦辉
指导教师
2012 年 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); /*巡游函数声