全球旧事资料 分类
数据结构与算法分析课程设计报告
设计题目:
马踏棋盘
专学姓
业号名
计算机科学与技术



f马踏棋盘数据结构课程设计
概要设计
功能模块化分析
通过对问题描述的分析,可知马踏棋盘问题所要求实现的功能大致由三个部分组成:⑴接收用户输入的马的起始位置;⑵从起始位置开始在棋盘上标记马按问题描述中的行走规则访问棋盘中每个格子的顺序;⑶输出棋盘上标记的访问顺序。
系统结构的总体设计
⑴输入模块:提示用户输入数据,接收用户输入的数据,即马的起始位置,并判断该位置是否在棋盘内。若该起始位置在棋盘内,则接着执行下一模块的功能;若该起始位置不在棋盘内,则提示用户输入无效,并要求用户再次输入;⑵初始化模块:初始化所有的数据结构中的数据;⑶棋盘遍历模块:采用特定算法,按照马的行走规则对棋盘进行遍历,每次访问一个格子时,要测试该格子是否在棋盘范围内,保存马的访问顺序;⑷位置测试模块:接收格子的x和y坐标,判断该格子是否在棋盘内,然后根据该格子是否在棋盘内返回不同的信号;⑸输出模块:将棋盘遍历模块中保存下来的讯号进行输出,输出格式遵从棋
f盘格式;⑹总控模块:负责调用个处理模块,完成马踏棋盘问题的求解。
处理方式设计
针对问题和核心模块,采用深度优先遍历思想和回溯算法的非递归形式。⑴深度优先遍历的基本思想深度优先遍历可以从任意顶点开始访问图的顶点,然后把该顶点标记为已访问。在每次迭代的时侯,该算法紧接着处理与当前顶点邻接的未访问顶点。如果有若干个这样的顶点,可以任意选择一个顶点。凡在实际应用中,选择哪一个邻接的未访问候选顶点主要是由表示图的数据结构决定的。⑵回溯算法的基本思想回溯法是穷举查找技术的一个变种。它每次只构造解的一个分量,然后按照下面的方法来评估这个部分构造解。如果一个部分构造解可以进一步构造而不会违反问题的约束,我们就接受对解的下一个分量所做的第一个合法选择。如果无法对下一分量进行合法的选择,就不必对剩下的任何分量再做任何选择了。在这种情况下,该算法进行回溯,把部分构造解的最后一个分量替换为它的下一个选择。
详细设计
详细设计的主要任务是根据概要设计对每个模块的定义进行设计,以实现其功能算法和外部接口所要求的模块内部的数据结构和程序的逻辑结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。设计主要采用的工具是程序流程图。
f全局数r
好听全球资料 返回顶部