马的遍历课程设计报告文档格式.docx
- 文档编号:14864183
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:24
- 大小:149.30KB
马的遍历课程设计报告文档格式.docx
《马的遍历课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《马的遍历课程设计报告文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
3、主要参考文献
[1]《数据结构》(C语言版),严蔚敏,清华大学出版社,2003.
[2]《数据结构题集》,严蔚敏,清华大学出版社,2005.
[3]《数据结构》(C语言版),刘大有,高等教育出版社,2004.
[4]《DataStructurewithC++》,WilliamFord.WilliamTopp,清华大学出版社,2003.
4、课程设计工作进度计划
第1天完成方案设计与程序框图
第2、3天编写程序代码
第4天程序调试分析和结果
第5天课程设计报告和总结
指导教师(签字)
日期
年月日
教研室意见:
学生(签字):
接受任务时间:
年月日
注:
任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表
题目名称
评分项目
分值
得分
评价内涵
工作
表现
20%
01
学习态度
6
遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。
02
科学实践、调研
7
通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。
03
课题工作量
按期圆满完成规定的任务,工作量饱满。
能力
水平
35%
04
综合运用知识的能力
10
能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。
05
应用文献的能力
5
能独立查阅相关文献和从事其他调研;
能提出并较好地论述课题的实施方案;
有收集、加工各种信息及获取新知识的能力。
06
设计(实验)能力,方案的设计能力
能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;
研究思路清晰、完整。
07
计算及计算机应用能力
具有较强的数据运算与处理能力;
能运用计算机进行资料搜集、加工、处理和辅助设计等。
08
对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)
具有较强的数据收集、分析、处理、综合的能力。
成果
质量
45%
09
插图(或图纸)质量、篇幅、设计(论文)规范化程度
符合本专业相关规范或规定要求;
规范化符合本文件第五条要求。
设计说明书(论文)质量
30
综述简练完整,有见解;
立论正确,论述充分,结论严谨合理;
实验正确,分析处理科学。
11
创新
对前人工作有改进或突破,或有独特见解。
成绩
指导教师评语
指导教师签名:
年 月 日
摘要
马步遍历问题与骑士巡游(knight'
stour)问题是指在有8×
8方格的国际象棋棋盘上进行奇异的骑士"
L型"
(L-shaped)移动的问题。
而骑士巡游问题实际是带有约束条件的马步遍历问题,因此在用程序求解的时候可以一并求解。
中国象棋中马采用“日”字走法,对棋盘上马所在的结点,一步内到达的结点最多有八个,即假设马所在点的坐标为(i,j),那么其它八个结点的坐标为(i+1,j+2),(i+2,j+1),(i+2,j-1),(i+1,j-2),(i-1,j-2),(i-2,j-1),(i-2,j+1),(i-1,j+2)把这些点看作马所在点的邻接点,所以可以采用类似图的深度优先遍历,以马所在点为初始点对整个棋盘进行遍历。
然后按遍历的顺序输出结点。
关键词:
象棋,遍历,数组
摘要………………………………………………………………………………………Ⅰ
1概述…………………………………………………………………………………………1
1.1前言……………………………………………………………………………………1
1.1.1问题描述……………………………………………………………………………1
1.1.2课程设计的目的……………………………………………………………1
2流程图…………………………………………………………………………………………2
3设计思路……………………………………………………………………………………3
4数据结构设计………………………………………………………………………4
5功能函数算法分析………………………………………………………………………5
5.1计算一个点周围有几个点………………………………………………………………5
5.2寻找下一个方向函数………………………………………………………………5
5.3栈的相关函数………………………………………………………………………6
5.4马的遍历函数………………………………………………………………………7
5.5主函数……………………………………………………………………………………9
5.6棋盘初始化函数…………………………………………………………………10
5.7标记初始化函数…………………………………………………………………10
结论…………………………………………………………………………………………11
参考文献………………………………………………………………………………12
附录A:
程序代码…………………………………………………………………………13
1概述
1.1前言
1.1.1问题描述
根据中国象棋棋盘,对任一位置上放置的一个马,均能选择一个合适的路线,使得该棋子能按象棋的规则不重复地走过棋盘上的每一位置。
1.1.2课程设计的目的
使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。
2流程图
假
真
3设计思路
首先,中国象棋是10*9的棋盘,马的走法是“马走日”,忽略“蹩脚马”的情况。
其次,这个题目采用的是算法当中的深度优先算法和回溯法:
在“走到”一个位置后要寻找下一个位置,如果发生“阻塞”的情况,就是后面走不通的情况,则向后回溯,重新寻找。
在寻找下一步的时候,对周围的这几个点进行比较,从而分出优劣程度,即看它们周围可以走的点谁最少,然后就走那条可走路线最少的那条。
经过这样的筛选后,就会为后面的路径寻找提供方便,从而减少回溯次数。
最后,本程序的棋盘和数组类似,因而采用数组进行存储,同时因为有回溯,所以采用栈的方法,并且为了最后打印方便,采用的是顺序栈的方法。
同时还有八个方向的数组,和为栈设计的每个点周围的八个方向那些可以走的数组。
4数据结构设计
同上面述,棋盘采用数组形式,并且这里的数组比棋盘的数组规模稍大,因为为了判断的方便,这里在棋盘周围各加了两层“墙”。
具体数据结构定义如下:
intchessboard[14][13];
//采用最大的中国象棋10*9制的
intCanPass[14][13][8];
//每个棋子的八个方向哪些可以走
typedefstruct
{//棋盘的八个方向
intx,y;
}direction;
directiondir[8]={{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}};
//八个方向
{//栈的节点结构
intx,y;
//走过位置
intdi;
//走向下一个方向
}pathnode;
typedefstruct{
pathnodepa[90];
//栈的容量最大为90
inttop;
//栈顶
}path;
//顺序栈
5功能函数算法分析
5.1计算一个点周围有几个点函数intCount(intx,inty)
该函数实现的功能是在遍历的过程当中计算一个点周围有几个方向可以走,从而为后面的筛选提供依据。
intCount(intx,inty)
{//计算每个节点周围有几个方向可以走
intcount=0,i=0;
for(i=0;
i<
8;
i++)
if(chess[x+1+dir[i].x][y+1+dir[i].y]==0)
count++;
returncount;
}
5.2寻找下一个方向函数intFind_Direction(intx,inty)
该函数的功能是在走过一个点之后,寻找下一个适合的点,如果找到返回正常的方向值,否则返回-1。
intFind_Direction(intx,inty)
{//寻找下一个方向
intdire,min=9,count,d=9;
for(dire=0;
dire<
dire++)
{
if(chess[x+1+dir[dire].x][y+1+dir[dire].y]==0&
&
CanPass[x+1][y+1][dire]==0){
count=Count(x+dir[dire].x,y+dir[dire].y);
if(min>
count){
min=count;
d=dire;
}
}
}
if(d<
9)
returnd;
else
return-1;
5.3栈的相关函数
初始化栈:
voidInit_Path(path*p);
p是用到得栈;
判断栈是否是空:
intEmpty(pathp);
p是栈,是空的话返回1,否则返回0,时间复杂度为;
压栈函数:
intPush_Path(path*p,pathnodet,intv)p是栈,t是压进去的节点,v是棋盘,时间复杂度为;
出栈函数:
intPop_Path(path*p,pathnode*t)p是栈,t是拿出来的节点,时间复杂度为。
voidInit_Path(path*p)
{//初始化栈
p->
top=-1;
intPush_Path(path*p,pat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遍历 课程设计 报告