- 161
- 0
- 约1.47万字
- 约 20页
- 2017-11-30 发布于江西
- 举报
数据结构马踏棋盘课程设计报告
附件2:
课程设计任务书
学生姓名: 朱涛涛 专业班级: 0506班
指导教师: 袁小玲 工作单位: 计算机科学系
题 目: 马踏棋盘的程序设计
初始条件:
设计一个国际象棋的马踏遍棋盘的演示程序。
将马随机放在国际象棋的8×8棋盘Board[8][8]的某个方格中,马按走棋规则(见题集p98)进行移动。要求每个方格只进入一次,走边棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,3,…,64依次填入一个8×8的方阵,输出之。
测试用例见题集p98。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
课程设计报告按学校规定格式用A4纸打印(书写),并应包含如下内容:
1、 问题描述
简述题目要解决的问题是什么。
2、 设计
存储结构设计、主要算法设计(用类C语言或用框图描述)、测试用例设计;
3、 调试报告
调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。
4、 经验和体会(包括对算法改进的设想)
5、 附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结果要包含这些测试数据和运行输出,
6、 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为0分。
时间安排:
1、第18周(7月2日至7月8日)完成。
2、7月9 日10:00到计算中心检查程序、交课程设计报告、源程序(CD盘)。
指导教师签名: 年 月 日
系主任(或责任教师)签名: 年 月 日
一. 问题描述
本程序是一个马踏棋盘的演示程序,主要的问题描述为:
在一个空白的8*8格的棋盘上,对于任意的输入坐标(1~8),表示马从此坐标开始以”日”字走法,遍历整个棋盘,要求在整个遍历的过程中,每一个方格只走一次,不能重复.且在设计中不能使用递归的算法.
本程序特点:我在程序中引用了一个WINDOWS API,先算出全部的步法关键点,再在程序中画一个方格,然后在方格中按顺序输出各个值,运用了控制台的定位函数,能依次一步步把1,2,3,4,………. ,64 这样的序列填入各个坐标中去,使得马的遍历过程像动画一样的演示,一目了然.
二. 设计
1.存储结构设计
#define CHESSBOARD 8
typedef int chessboard[CHESSBOARD][CHESSBOARD];
这个数组是整个棋盘的所有方格的集合.
typedef struct step{
int x,y; //the x-postion and y-position of a step
int direction;//the last direction has stepped
} * pStep;
上面这个结构体是用于保存在马踏棋盘的过程中所以经历的每个方格的坐标,以及对下一个方格的访问方向.
struct stack_step{
pStep pBase;
pStep pTop;
int total_size;
};
这个结构体是一个栈的存储结构,用于保存已经遍历过的信息,用于在遍历过程中的回溯问题.
2.主要算法设计(用类C语言或用框图描述)
本程序的思想为:
假设图中”0”所在的点为任何一点(中间点),则可知道,对于当前的点”0”可以有1~8这八个方向的跳法,使得程序继续遍历下去,本程序正是采用的这1~8八个方向,且也是按这8个优先级进行搜索的,程序会对访问过的点的坐标和方向全压入堆栈中去,以便回溯,假设当遍历到”1”时会出现死路的现象,此时会用GetTop()返回当前堆顶元素,即”0”,然后按”2”的方向进行搜索,直到8个方向全是死路时”0”出栈,然后退回上一层结点.如此循环,直到找出正确的顺序.
本程序所使用的算法函数如下:
void SetPos(int nX, int nY);
void frame(int x, int y, int width, int height);
// the funcions below operate on stack_step;
void Init_Stack(stack_step steps);
bool IsEmpty(stack_step steps);
bool Push(stack_step steps, step s);
bool Popup(stack_step steps, step s
您可能关注的文档
最近下载
- (新编)农村集体经济组织换届选举操作实务与示范文本资料汇编.doc VIP
- TACEF030-2022 城镇排水系统 厂、站、网一体化运行监测与智能化管理技术规程.pdf VIP
- 《中国前庭性偏头痛诊治指南(2026)》解读PPT课件.pptx VIP
- 2026年全年党建工作计划.docx VIP
- 《临床医学传染病学》课件鼠疫.ppt VIP
- 2022-2023学年高二期末质量检测.docx VIP
- APQP 先期产品质量策划(第三版)2024 中英文(高清可复制).doc VIP
- 特殊作业管理疑难问题解析-“化危为安”线上讲堂第133期-冯建柱-2025.7.18(原版).pptx
- 2025年山东化工职业学院高职单招(综合素质)备考题库及答案解析.docx VIP
- AD200 classics系列驱动器使用手册V1.1.pdf VIP
原创力文档

文档评论(0)