马的Hamilton周游路线问题.doc_第1页
马的Hamilton周游路线问题.doc_第2页
马的Hamilton周游路线问题.doc_第3页
马的Hamilton周游路线问题.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告文档题目: 马的Hamilton周游路线问题 一任务的描述1目标:进一步巩固C程序设计和算法设计与分析的基础知识,提升结构化程序、模块化程序设计的方法和能力,深入理解数据结构的基本理论,掌握数据存储结构的设计方法,掌握基于数据结构的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和解决问题的作风和能力。2任务描述:完成马的Hamilton周游路线问题.使得确定能对给定的偶数m,n6且|m-n|2,编程计算mn的国际象棋棋盘上马的一条Hamilton周游路线;并且程序能够演示一条Hamilton周游路线的周游过程等。3运行环境: 1). PC兼容机 2)Windows 2000/XP操作系统3)TC集成开发环境或其他C语言开发环境。4条件与限制:一次输入的两个数值m,n必须是不小于6的偶数,而且,两数值相差不大于2二任务设计1系统流程图:Output函数主函数Knight函数Step函数Comp函数Pos函数Base函数Build函数2函数的划分:(1)函数1:Knight(int mm,int nn) 。主要用于构造函数读入基本数据,初始化个数组。mm,nn分别表示子棋盘的行数和列数,二维数组link存放Hamilton回路。 (2)函数2:Step(int m,int n,int *a,grid *b) 。Step用于将读入的基础棋盘的Hamilton回路转化为网格数据。m,n分别表示棋盘的行数和列数,二位数组a存放文件读入所对应的步数,b数组依次存放a数组中各步次序所对应的坐标。(3)函数3:Comp(int mm,int nn,int offx,int offy)。 分治法主体,分mm,nn为子棋盘行列数,offx,offy为出发点。(4)函数4:Base(int mm,int nn,int offx,int offy ) 。根据基础解构造子棋盘的结构化Hamilton回路。mm,nn为子棋盘行列数,offx,offy为出发点。(5)函数5:Build(int m,int n,int offx,int offy,int col,grid *b)。 base实际由Build来实现。m,n分别表示棋盘的行数和列数,offx,offy为出发点,col为棋盘列数,b数组依次存放a数组中各步次序所对应的坐标。(6)函数6:Pos(int x,int y,int col)。 pos用于计算棋盘方格的编号,从左至右,从上到下编号。x和y分别表示棋盘上某点的横坐标和纵坐标,col为棋盘列数,最后返回编号。(7)函数7:Output(int offx,int offy)。按照要求输出计算出的结构化Hamilton回路,输出a数组,b数组。3函数之间的关系:主函数调用了Output()函数和Knight()函数。Output()函数调用了Comp()函数。Comp()函数调用了Base()函数和Pos()函数。Base()函数调用了Pos()函数。Knight()函数调用了Step()函数。三编写代码1问题1(1)问题描述:运用回溯法求分割步的解过于困难(2)解决办法:使用文件,将求解过程简化为读入已知文件2问题2(1)问题描述:输出数组时,总是输出一串连续的长字符串,没有空格(2)解决办法:修改字符长度setw(4),即使得输出数字独立可读。3问题(1)问题描述:自定义起点,总是失败,输出错误(2)解决办法:定义起点为(0,0),因为已知文件只能以此为起点。四程序运行1程序运行的过程:根据界面提示输入m和n。运行后,进入主函数,调用Knight函数,最后调用Output函数,输出数组a和b,就可以知道马的路径。2错误描述及其解决办法(1)问题1:问题描述:由于算法以C+为主,用VC调试,出现很多语法问题 解决办法:根据提示意义改正,较为费力,向同学请教,终于成功。如果完全是C+,可以考虑用Visual Studi。(2)问题2: 问题描述:程序只能从(0,0)坐标开始才能运行解决办法:使用读入文件只有能从(0,0)坐标开始的,所以最终结果也只能从(0,0)坐标开始,想要修改,只能修改文件。五感想认识该算法主要在于使用分治法的基本思想:将一个规模较大的问题分解为多个规模较小相互独立且与原问题相同的子问题,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。通过该算法的实现,我对分治法有了进一步的认识。用分治法可以运用回溯

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论