云南大学软件学院数据结构实验报告四.doc
文本预览下载声明
(本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)
实验难度: A □ B √ C □
序号 学号 姓名 成绩 1 2 指导教师 (签名)
学 期:2012秋季学期
任课教师:
实验题目: 迷 宫
小 组 长:
云南大学软件学院2010学年 秋季 学期
《数据结构实验》成绩考核表
学号: 姓名: 本人承担角色:
学号: 姓名: 本人承担角色:
评分项目 评分指标 分值 得分 实验构思(10%) 1. 实验目的明确 5 2. 实验内容理解透彻、对实验所涉及到的知识点分析到位 5 实验设计(15%) 1. 有对基本数据结构的抽象数据类型定义 5 2. 实验方案设计完整,数据结构、算法选择合理 5 3.算法结构和程序功能模块之间逻辑清晰、有相应的流程图 5 实验实现(25%) 1. 代码编写规范、风格统一、注释清楚易读 5 2. 程序运行正常,测试结果正确 15 3. 界面友好、易于操作、有较强的容错性 5 实验报告撰写(10%) 1. 内容详实无缺漏,文字流畅、图表清楚 5 2. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考 5 个人工作量(30%) 1. 个人完成工作量 15 2. 个人技术水平 10 3. 团队合作精神 5 实验运作(10%) 1. 有一定用户群 5 2. 应用前景分析 5
综合得分: (满分100分)
指导教师:
(注:此表在难度为C时使用,每个成员一份。)
(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)
一、【实验构思(Conceive)】(10%)
1.创建四个文件,stack.h头文件、queue.h头文件、maze.h头文件和main.cpp主文件
2.栈文件用于在移动玩家位置过程中,将移动的方向保存到栈中。然后在修改玩家位置时,用出栈的元素判断前方是地图的哪边。然后将这个元素保存到队列中,等玩家走出迷宫后,输出走过的路径。
maze头文件:
(1)迷宫(二位数组)中的元素数据类型为自己构造的maze类型。里面有二位数组的位置y(行),x(列)、有substance为char类型、有left、right、up、down四个方位,表示二位数组中的绝对坐标关系。
maze * JudgeRight(maze * player,maze * playerF)这个函数是用于传入玩家当前位置和前方位置,来返回右手边的地址。
maze * JudgeFront(maze * player,char go)这个函数利用玩家的当前位置,和刚刚直走以后的方向,来返回前方的地址。
maze * GoToFront(maze * player,maze * playerF,struct stack S)这个函数是传入玩家的当前位置,前方位置,然后修改当前位置的地址,并返回。其中还要把移动的方向压入栈中。
主文件里面创建10X10的二维数组来表示迷宫,并且初始化迷宫中的元素,确立其绝对坐标,确立绝对的邻居关系。
接下来利用迷宫口诀:“伸出右手,摸着墙顺着走”,即“如果右手边不是墙,则,右转后直走;如果右手边是墙,前方没墙,则直走;右手边是墙,前方有墙,则左转”,做一个循环,如果玩家到了u才结束。其中有入栈,出栈,入队的操作。迷宫走出来以后,利用岀队函数输出玩家走过的路径。
二、【实验设计(Design)】(20%)
1.可以直接利用实验三(魔王语言)中的栈和队列头文件。栈文件用于在maze.h头文件中的一个函数:maze * GoToFront(maze * player,maze * playerF,struct stack S)
这个函数是在移动玩家位置过程中,将移动的方向保存到栈中。然后在修改玩家的前方位置时,用出栈的元素判断前方是地图的哪边。
然后将这个元素保存到队列中,等玩家走出迷宫后,输出走过的路径。
2.maze头文件:
(1)迷宫(二位数组)中的元素数据类型为自己构造的maze类型。里面有二位数组的位置y(行),x(列),这样表示的方便是能直观利用坐标。元素中还有substance为cha
显示全部