




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档河南科技高校课 程 设 计 说 明 书课程名称 软件专题训练 题 目 罗密欧与朱丽叶迷宫求解问题院 系 电子信息工程学院计算机系班 级 计算机科学与技术103班同学姓名 指导老师 孙士保.冀治航 日 期 2021.5.212021.5.27河南科技高校课 程 设 计 任 务 书课程名称 算法设计与分析 题 目 罗密欧与朱丽叶地迷宫问题 院 系 电子信息工程学院计算机系班 级 计算机103班同学姓名 魏 鹏 超指导老师 孙士保.冀治航 日 期 2021.5.212021.5.27 19 / 19课程设计题目罗密欧与朱丽叶地迷宫问题姓名学号班级计算机10级系别计算机科学与技10级专业计算机
2、科学与技术组别组长组员指导老师姓名孙士保.冀治航课程设计目地进一步稳固C程序设计和算法设计与分析地根底学问,提升结构化程序.模块化程序设计地方法和力量,深化理解数据结构地根本理论,把握数据存储结构地设计方法,把握基于数据结构地各种操作地实现方法,训练对根底学问和根本方法地综合运用力量,增加对算法地理解力量,提高软件设计力量.在实践中培育独立分析问题和解决问题地作风和力量.设计环境1. PC兼容机 2Windows 2000/XP操作系统3TC集成开发环境或其他C语言开发环境课程设计要求和任务要求:1娴熟把握回溯法,能够利用回溯法解决实际问题;2使用文件进行存储和管理.程序启动时可从文件中读取信
3、息,或从键盘输入信息;运行过程中也可对文件进行存取;退出前可选择将局部信息保存到文件中;3不同地功能使用不同地函数实现模块化,对每个函数地功能和调用接口要注释清楚.对程序其它局部也进行必要地注释.4对系统进行功能模块分析.画出总流程图和各模块流程图;5用户界面要求使用便利.简洁明白.美观大方.格式统一.全部功能可以反复使用,最好使用菜单;6通过命令行相应选项能直接进入某个相应菜单项选择项地功能模块;7全部程序需调试通过.任务:完成罗密欧与朱丽叶地迷宫问题.设计内容包括:1确定能对给定地任何位置地罗密欧都能够找到一条通向朱丽叶地路线;2程序能够演示一条罗密欧找到朱丽叶地路线过程等.课程设计工作进
4、度方案序 号起止日期工 作 内 容12021.5.21下发任务书,分组,选定课题,查阅相关资料22021.5.22总体设计,划分模块,编制源程序32021.5.23上机调试,修改.完善系统42021.5.25程序检查,撰写说明书,上交报告河南科技高校课程设计报告课程名称 软件专题训练 题 目 罗密欧与朱丽叶地迷宫问题 院 系: 电子信息工程学院计算机系 专 业: 计算机科学与技术 班 级: 计算机10级 同学姓名: 学 号: 起止日期: 2021年5月21日 2021年5月27日 指导老师: 孙士保.冀治航 名目第一章 需求分析41.1课程设计题目41.2 课程设计任务及要求41.3运行环境及
5、开发工具4第二章 概要设计 52.1系统流程图 5第三章 具体设计63.1函数划分63.2函数之间地关系6第四章 系统调试与操作说明74.1系统调试及操作说明7第五章 课程设计总结体会85.1课程设计总结85.2致谢85.3参考文献8第一章 需求分析1.1课程设计题目罗密欧与朱丽叶地迷宫问题1.2 课程设计任务及要求1. 对于给定地罗密欧与朱丽叶地迷宫,编程计算罗密欧通向朱丽叶地全部最少转弯道路2.程序能够演示一条罗密欧找到朱丽叶地路线过程等罗密欧与朱丽叶地迷宫.罗密欧与朱丽叶身处一个m×n地迷宫中,如下图.每一个方格表示迷宫中地一个房间.这m×n个房间中有一些房间是封闭地
6、,不允许任何人进入.在迷宫中任何位置均可沿8 个方向进入未封闭地房间.罗密欧位于迷宫地 (p,q)方格中,他必需找出一条通向朱丽叶所在地(r,s)方格地路.在抵达朱丽叶之前,他必需走遍全部未封闭地房间各一次,而且要使到达朱丽叶地转弯次数为最少.每转变一次前进方向算作转弯一次.请设计一个算法挂念罗密欧找出这样一条路.1.3运行环境及开发工具硬件:装有windows操作系统地计算机软件:Visual C+6.0第二章 概要设计2.1系统流程图输入m,n,k,x,y,x1,y1-1->dirs best->1000 count->0dep=m*n-k&&x=x1&a
7、mp;&y=y1&&dirs<=best是 否 否dirs<best是 否 best=dirs;count=1;1->i1->jbestbij=boardijj+1->j直到j<=ni+i->i直到i<=mcount+1->countreturndep=m*n-k|x=x1&&y=y1|dirs>best是 否 1->ip=x+dxiq=y+dyix>0&&x<=m&&y>0&&y<=n&&boardx
8、y=0是 dirs+1->dirs直到 i<=8 di!=i是dirs-1->dirs boardpq=0;boardpq=dep+1di!=i dirs+1->dirs直到 i<=8 输出best,count*bestb第三章 具体设计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
9、: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. 输出: 输出一条迷宫路
10、线:(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语言编程地力量.虽然还有很多简单地问题是我们地力量所不及地
11、,但我信任通过一次次实际地训练操作会使我们地解决问题地力量一步步有所提高.本次程序不是很简单,只要对算法地有深化地生疏与把握就可以得到输出地结果.但程序中涉及到了多个参数,在上机试验过程中通过一次次试验对算法一步步执行中,彻底弄明白其中地各个参数及函数地作用及用法,特殊是对回溯法有了更深地理解.在程序地编写输入输出地过程中虽然其中遇到了很多错误与困难,但正是在解决这些错误与困难地过程中才会使我们地力量有所提高,学问有所更深化地理解,并进一步稳固了C程序设计和算法设计与分析地根底学问,增加对算法地理解力量,提高软件设计力量,娴熟把握了回溯法,能够利用回溯法解决实际问题.虽然只是短短一星期但同学们
12、都在努力学习与实践,我知道只靠这些时间来练习远远不够地,只有平常多练习,才会到达老师对我们地要求.这次程序设计是让我们学到了好多学问,但也暴露了我们在程序设计中地缺乏.让我们更深一步体会到了上机实训地重要性.学校给我们支配实训是为培育同学在实践中培育独立分析问题和解决问题地作风和力量,提高实际操作水.让我们了解到除了学习根底学问之外上机试验也是必不行少地,只有通过屡次地操作试验才能够提高自己地解决问题力量.5.2 致谢感谢本次试验中赐予技术等指导地孙士保.冀治航老师,因为他们地指导,本次试验中地局部问题都得到了解决,并且学到了很多东西.感谢张强,于文帅等同学地挂念,和他们探讨问题,解决问题,不
13、但学会了更多地东西,更加深了同学之间地友情.5.3参考文献计算机算法设计与分析教材第三版C/C+程序设计教程第二版数据结构c语言教材源码#include<iostream>using namespace std;int dir92=0,0,0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1;/行走地路线int count;int dirs,best;int board2020,bestw2020;int m,n,k;int lx,ly,zx,zy;bool comp(int x,int y) /推断是坐标是否越界if(x>0&&x<
14、;=n&&y>0&&y<=m&&boardxy=0) return true;else return false;static void save()/保存一条转弯最少地路径int i,j;for(i=1;i<=n;i+) for(j=1;j<=m;j+) bestwij=boardij;void search(int dep,int x,int y,int di)if(dep=m*n-k&&x=zx&&y=zy&&dirs<=best)/dep用于标记已经走过地房间数
15、 di表示八个方向 if(dirs<best) best=dirs; count=1; save(); else count+; return;if(dep=m*n-k|x=zx&&y=zy|dirs>best) return; else for(int i=1;i<=8;i+) if(comp(x+diri0,y+diri1) boardx+diri0y+diri1=dep+1; if(di!=i) dirs+; search(dep+1,x+diri0,y+diri1,i); if(di!=i) dirs-; boardx+diri0y+diri1=0;
16、int main() cout<<"请设置迷宫地行数:" /初始化迷宫数组 cin>>n; cout<<endl;cout<<"请设置迷宫地列数:"cin>>m; cout<<endl;cout<<"请设置要封闭地房间个数:"cin>>k;cout<<endl;int i,j;int c,d;memset(board,0,sizeof(board); for(i=0;i<k;i+)/设置封锁地房间位置cout<<
17、;"请设置封锁地第"<<i+1<<"个房间所在地行和列:" cin>>c>>d; boardcd=-1;cout<<"请设置罗密欧所在房间地行和列:"cin>>lx>>ly;cout<<"请设置朱丽叶所在地房间行和列:"cin>>zx>>zy;boardlxly=1;best=m*n;dirs=-1;cout<<"迷宫初始化如下:"<<endl;cout
18、<<"其中0表示未到地房间,-1表示封闭地房间"<<endl;for(i=0;i<n;i+) for(j=0;j<m;j+) cout<<boardi+1j+1<<" " cout<<endl;search(1,lx,ly,0); /输出一条迷宫路线.cout<<"最少转弯次数:"<<best <<"次"<<endl;cout<<"有不同地最少转弯次数:"<<count<<"次"<<endl;cout<<"其中迷宫地一条最少转弯道路如下:"<<endl;for(i=1;i<=n;i+) for(j=1;j<=m;j+) co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB31/T 959-2015闭式冷却塔节能评价值
- DB31/T 898-2015有机热载体锅炉经济运行管理要求
- DB31/T 728-2023食品冷库经济运行管理要求
- DB31/T 541-2011电梯能量回馈装置技术要求和试验方法
- DB31/T 531-2011动物戊型肝炎RT-nPCR和ELISA检测方法
- DB31/T 1407-2023农业机构卓越绩效评价准则
- DB31/T 1377.2-2022实验鸡和鸭第2部分:寄生虫学监测
- DB31/T 1226-2020职业病诊断鉴定规范
- DB31/ 731-2013船舶修正总吨单位产品能源消耗限额
- DB31/ 329.21-2015重点单位重要部位安全技术防范系统要求第21部分:养老机构
- 2024-2025学年数学沪科版七年级上册期末综合测试卷(四)(含答案)
- 2025年中考英语模拟试卷猜题卷(含答案)
- 基础护理学选择试题库+答案
- 《人口与环境》课件
- 【MOOC】老子的人生智慧-东北大学 中国大学慕课MOOC答案
- 高血压心脏病超声
- 中南林业科技大学《Python程序设计实验》2021-2022学年期末试卷
- 记背手册04:《乡土中国》核心知识背诵清单高考语文一轮复习考点帮(天津专用)
- 麻醉科与患者安全沟通制度
- 2024年六年级道德与法治下册 第三单元 多样文明 多彩生活 7 多元文化 多样魅力教案 新人教版
- 污水处理ao工艺
评论
0/150
提交评论