罗密欧与朱丽叶迷宫求解问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书

课程名称__软件专题训练____

题目罗密欧与朱丽叶迷宫求解问题_

院系_电子信息工程学院计算机系_

班级_计算机科学与技术103班__

学生姓名___________

指导教师_孙士保、冀治航__

日期_ 2012.5.21—2012.5.27__

课程设计任务书

课程名称__算法设计与分析___

题目_罗密欧与朱丽叶的迷宫问题

院系_电子信息工程学院计算机系_

班级___计算机103班_____

学生姓名____魏鹏超______

指导教师_孙士保、冀治航__

日期_ 2012.5.21—2012.5.27__

河南科技大学

课程设计报告

课程名称__软件专题训练____

题目_罗密欧与朱丽叶的迷宫问题

院系:电子信息工程学院计算机系

专业:计算机科学与技术

班级:计算机10级

学生姓名:学号:

起止日期: 2012年5月21日~ 2012年5月27日指导教师:孙士保、冀治航

目录

第一章需求分析 (4)

1.1课程设计题目 (4)

1.2 课程设计任务及要求 (4)

1.3运行环境及开发工具 (4)

第二章概要设计 (5)

2.1系统流程图 (5)

第三章详细设计 (6)

3.1函数划分 (6)

3.2函数之间的关系 (6)

第四章系统调试与操作说明 (7)

4.1系统调试及操作说明 (7)

第五章课程设计总结体会 (8)

5.1课程设计总结 (8)

5.2致谢 (8)

5.3参考文献 (8)

第一章需求分析

1.1课程设计题目

罗密欧与朱丽叶的迷宫问题

1.2 课程设计任务及要求

1、对于给定的罗密欧与朱丽叶的迷宫,编程计算罗密欧通向朱丽

叶的所有最少转弯道路

2、程序能够演示一条罗密欧找到朱丽叶的路线过程等

罗密欧与朱丽叶的迷宫。罗密欧与朱丽叶身处一个m×n的迷宫中,如图所示。每一个方格表示迷宫中的一个房间。这m×n个房间中有一些房间是封闭的,不允许任何人进入。在迷宫中任何位置均可沿8 个方向进入未封闭的房间。罗密欧位于迷宫的(p,q)方格中,他必须找出一条通向朱丽叶所在的(r,s)方格的路。在抵达朱丽叶之前,他必须走遍所有未封闭的房间各一次,而且要使到达朱丽叶的转弯次数为最少。每改变一次前进方向算作转弯一次。请设计一个算法帮助罗密欧找出这样一条路。

1.3运行环境及开发工具

硬件:装有windows操作系统的计算机

软件:Visual C++6.0

第二章概要设计2.1系统流程图

第三章详细设计

3.1函数划分

(1)函数1:bool stepok(int x,int y) 判断是(x,y)否越界。

(2)函数2:void save() 保存一条转弯最少的路径

(3)函数3:void search(int dep,int x,int y,int di) 在

当前位置(x,y)按照八个方向搜索,dep用于标记

已经走过的房间数,di表示八个方向。

(4)函数4:void main() 主函数初始化迷宫数组,并调用search

函数输出一条迷宫路线。

3.2函数之间的关系:

主函数调用search函数,search函数调用stepok和save函数完成搜索。如下

main函数

save函数

调用search函数递归调用search函数

调用stepok函数

输出结果

第四章系统调试与操作说明4.1系统调试及操作说明

先是输入迷宫中的各个参数:

(1)、迷宫的行列数及封闭房间个数m,n,k分别是3,4,2。(2)、2个封闭房间的坐(p,q))分别是(1,2),(3,4)。

(3)、罗密欧与朱丽叶的坐标(x,y),(x1,y1)分别是(1,1),(2,2)。

输出:输出一条迷宫路线:(1,1)→(2,1) →(3,1) →(3,2) →(2,3)

→(1,4) →(1,3) →(2,4) →(3,3) →(2,2)

1 -1 7 6

2 10 5 8

3 4 9 -1

第五章课程设计总结体会

5.1课程设计总结

通过本次课程设计的训练,增加了我学习算法的兴趣,虽然还不是很明确其中的具体内容,但已发现算法分析与程序设计的乐趣。老师给了我们四个题目供选择,从选题到完成程序一步步操作实验不仅对题目有了深入的了解,还达到了熟练使用C语言编程的能力。虽然还有很多复杂的问题是我们的能力所不及的,但我相信通过一次次实际的训练操作会使我们的解决问题的能力一步步有所提高。

本次程序不是很复杂,只要对算法的有深入的认识与掌握就可以得到输出的结果。但程序中涉及到了多个参数,在上机实验过程中通过一次次实验对算法一步步执行中,彻底弄明白其中的各个参数及函数的作用及用法,特别是对回溯法有了更深的理解。在程序的编写输入输出的过程中虽然其中遇到了很多错误与困难,但正是在解决这些

理解,并进一步巩固了C

利用回溯法解决实际问题。

习与实践,

才会达到老师对我们的要求。

设计中的不足。

的作风和能力,

己的解决问题能力。

5.2 致谢

感谢本次试验中给予技术等指导的孙士保、冀治航老师,因为他们的指导,本次试验中的部分问题都得到了解决,并且学到了很多东西。感谢张强,于文帅等同学的帮助,和他们探讨问题,解决问题,不但学会了更多的东西,更加深了同学之间的友谊。

5.3参考文献

计算机算法设计与分析教材(第三版)

C/C++程序设计教程(第二版)

数据结构(c语言)教材

相关文档
最新文档