资源描述:
《骑士游历、骑士巡游(C语言)课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、存档资料成绩: 华东交通大学理工学院课程设计报告书所属课程名称数据结构题目 骑士游历 分院 专业班级学 号 学生姓名黄锦辉 指导教师 2012年6月15日目录第1章课程设计内容及要求1第2章功能的说明与实现22.1程序功能模块22.2程序功能模块图2第3章程序功能的具体实现33.1主函数main()的执行流程33.2系统测试与调试3第4章源代码6第5章课程设计心得9第6章参考文献10华东交通大学理工学院第1章课程设计内容及要求运行程序设置一个8行8列的棋盘,在国际象棋的原则下,任意的输入一个存在的点,这个被视为骑士(马)的初始位置,让马通过这个
2、点走完棋盘上的每一个点,并且不重复。在对已经走过的路线里,采用标志矩阵进行记录。标志矩阵的引入利用了数据的线性存储。这个称为骑士游历算法。本课程设计所采用的计算机语言是C语言,所使用的软件是使用比较普遍的MicrosoftVisualC++软件。第9页华东交通大学理工学院第2章功能的说明与实现2.1程序功能模块总共分为三个模块,分别是创建棋盘模块,位置设置模块和显示结果模块1.创建棋盘模块:此时我们使用矩阵设计一个模拟的棋盘。其关键代码如下:intf[11][11];/*定义一个矩阵来模拟棋盘*/intadjm[121][121];/*于上述棋盘,标志矩阵*/voidcreata
3、djm(void)/*创建标志矩阵函数声明*/voidmark(int,int,int,int);/*将标志矩阵相应位置置1*/voidtravel(int,int);/*巡游函数声明*/intn,m;/*定义矩阵大小及标志矩阵的大小*/2.位置设置模块:输入任意一个在8行8列棋盘中的一个点,其格式表示为:mn(m表示行,n表示列)。3.显示结果模块:将起始位置设定好了,将在这个模拟棋盘中用数字显示马走过的每一步。2.2程序功能模块图总共有三个模块,如下图所示:骑士游历创建棋盘显示结果位置设置创建矩阵进行游历显示结果图2.2—1第9页华东交通大学理工学院第3章程序功能的具体实现3
4、.1主函数main()的执行流程1.运行了主函数main()之后,马上执行了菜单,输入了行列数,在这里我们采用的是8行8列的棋盘2.执行流程图,如下所示是否再是否次运行输入模拟棋盘行列数判断棋盘输入起点位置判断棋子输出结果结束开始图3.1—13.2系统测试与调试1.程序代码的输入和运行新建C文件并输入代码到工作界面当中,仔细检查,运行代码,如下图所示,图3.2-1表示程序的输入和运行,图3.2-2表示运行出错:第9页华东交通大学理工学院图3.2—1图3.2—22.程序代码的调试经过老师和同学的讨论,自己上网查阅资料,修改了程序出错的地方,是由于自己的粗心,忘记写入标点符号,这才导
5、致了错误,然后又仔细的检查了一遍程序,程序运行成功,没有错误了。图3.2-3第9页华东交通大学理工学院3程序的显示结果在命令窗口中输入了棋子的不同起点,运行都成功了。如下图所示:图3.2-4以(2,3)为起点图3.2-5以(4,5)为起点图3.2-6以(6,6)为起点第9页华东交通大学理工学院第4章源代码#includeintf[11][11];/*定义一个矩阵来模拟棋盘*/intadjm[121][121];/*标志矩阵,即对于上述棋盘,依次进行编号*/voidcreatadjm(void);/*创建标志矩阵函数声明*/voidmark(int,int,int
6、,int);/*将标志矩阵相应位置置1*/voidtravel(int,int);/*巡游函数声明*/intn,m;/*定义矩阵大小及标志矩阵的大小*//***********主函数********************/intmain(){inti,j,k,l;printf("Pleaseinputsizeofthechessboard:");/*输入矩阵的大小值*/scanf("%d",&n);m=n*n;creatadjm();/*创建标志矩阵*/puts("Thesignmatrixis:");for(i=1;i<=m;i++)/*打印输出标志矩阵*/{for(j=1;
7、j<=m;j++)printf("%2d",adjm[i][j]);printf("");}printf("Pleaseinputtheknight'sposition(i,j):");/*输入骑士初始位置*/scanf("%d%d",&i,&j);l=(i-1)*n+j;/*骑士当前位置对应的标志矩阵的横坐标*/while((i>0)
8、
9、(j>0))/*对骑士位置的判断*/{for(i=1;i<=n;i++)/*棋盘矩阵初始化*/for(j=1;j<=n;j++)f[i][