课程设计报告文档
题目:马的Hamilto
周游路线问题一.任务的描述1.目标:进一步巩固C程序设计和算法设计与分析的基础知识,提升结构化程序、模块化程序设计的方法和能力,深入理解数据结构的基本理论,掌握数据存储结构的设计方法,掌握基于数据结构的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和解决问题的作风和能力。2.任务描述:完成马的Hamilto
周游路线问题使得确定能对给定的偶数m
≥6且m
≤2,编程计算m
的国际象棋棋盘上马的一条Hamilto
周游路线;并且程序能够演示一条Hamilto
周游路线的周游过程等。3.运行环境:1PC兼容机2.Wi
dows2000XP操作系统
3.TC集成开发环境或其他C语言开发环境。4.条件与限制:一次输入的两个数值m
必须是不小于6的偶数,而且,两数值相差不大于2二.任务设计1.系统流程图:
1
f主函数
Output函数
K
ight函数
Comp函数
Step函数
Base函数
Pos函数
Build函数
2.函数的划分:(1)函数1:K
ighti
tmmi
t
。主要用于构造函数读入基本数据,初始化个数组。mm
分别表示子棋盘的行数和列数,二维数组li
k存放Hamilto
回路。(2)函数2:Stepi
tmi
t
i
tagridb。Step用于将读入的基础棋盘的Hamilto
回路转化为网格数据。m
分别表示棋盘的行数和列数,二位数组a存放文件读入所对应的步数,数组依次存放a数组中各步次序所对应的坐b标。(3)函数3:Compi
tmmi
t
i
toffxi
toffy。分治
2
f法主体,分mm
为子棋盘行列数,offxoffy为出发点。(4)函数4:Basei
tmmi
t
i
toffxi
toffy。根据基础解构造子棋盘的结构化Hamilto
回路。mm
为子棋盘行列数,offxoffy为出发点。(5)函数5:Buildi
tmi
t
i
toffxi
toffyi
tcolgridb。base实际由Build来实现。m
分别表示棋盘的行数和列数,offxoffy为出发点,为棋盘列数,colb数组依次存放a数组中各步次序所对应的坐标。(6)函数6:Posi
txi
tyi
tcol。pos用于计算棋盘方格的编号从左至右,从上到下编号。x和y分别表示棋盘上某点的横坐标和纵坐标,col为棋盘列数,最后返回编号。(7)函数7:Outputi
toffxi
toffy。按照要求输出计算出的结构化Hamilto
回路,输出a数组,b数组。3.函数之间的关系:主函数调用了Output函数和K
ight函数。Output函数调用了Comp函数。Comp函数调用了Base函数和Pos函数。Base函数调用了Pos函数。K
ight函数调用了Stepr