目 录
1 前言 ....................................................................................................... 1 2 需求分析 ............................................................................................... 2
2.1 课程设计目的 ............................................................................... 2 2.2 课程设计任务 ............................................................................... 2 2.3 设计环境 ....................................................................................... 2 2.4 开发语言 ....................................................................................... 2 3 分析和设计............................................................................................ 2 3.1 模块设计 ....................................................................................... 2 3.2 系统流程图 ................................................................................... 3 3.3 主要模块的流程图 ........................................................................ 7 4 具体代码实现 .......................................................................................11 5 课程设计总结 ...................................................................................... 22 5.1 程序运行结果 ............................................................................. 22 5.2 课程设计体会 ............................................................................. 23 参考文献 ................................................................................................. 23 致 谢 ..................................................................................................... 23
1 前言
本课程设计是关于数据结构和栈道的基本操作,使用c语言编程,定义合适的数据结构,对已经学习的c语言的指针,数据结构和栈道加以了解。对于程序设计课程的运用和学习。
2 需求分析
2.1 课程设计目的
学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。
2.2 课程设计任务
给出迷宫的入口和出口及相关的通路,求出从入口到出口的路径。要求使用C语言编程,定义合适的数据结构。最后,需要说明设计思想,同时给出能够运行的源程序,并给出对应的程序流程图
2.3 设计环境
(1)WINDOWS 2000/2003/XP/7/Vista系统 (2)Visual C++或TC集成开发环境 2.4 开发语言
C语言
3 分析和设计
3.1 模块设计
定义SHU、MG结构体类型, 产生记忆效果,以及用线性链表来进行地图更改。
1
typedef struct shuju{ int data;
int flag; /*判断这个位置是否被走过,使其产生记忆效果*/ }SHU;
typedef struct maze{ int c; int flag; int direct; int x; int y;
struct maze *next; }MG;
定义pop()函数,用来进行入栈操作。
定义 way() 函数,用来寻找迷宫地图正确的路径。
2
寻找路径函数*/
/*3.2 系统流程图
开始 定义相关变量以 及结构体数组
给5行5列的迷宫赋值为8的矩阵 输出原始矩 阵迷宫地图 输出提示用户 输入0或1 输入25个后迷 宫地图创建完成 刷屏输出用户创建地图 提示用户输入入口 坐标并接收其值 提示用户输入出口 坐标并接收其值
判断是否有入口位置,如没有要求重新 输 入直至合法 调用pop函数进行入栈操作 调用way函数来进行路径判断输出图
结束
图 3.1 系统流程图
3
3.3 主要模块的流程图
Y MG头指针指向其刚定义的结构体 MG结构体的next指针指向头指针 定义相关变量开辟 一个MG结构体内存单元并赋其值 判断是否为首次定 N 义MG
MG头指针next指针指向NULL MG头指针指向其刚定义的结构体 刷屏并输出迷宫地图 其刚定义的结构体作为返回值返回 图3.2 POP入栈流
程图
4