探索法的应用.doc

上传人:cn****1 文档编号:561045863 上传时间:2023-09-08 格式:DOC 页数:17 大小:132.01KB
返回 下载 相关 举报
探索法的应用.doc_第1页
第1页 / 共17页
探索法的应用.doc_第2页
第2页 / 共17页
探索法的应用.doc_第3页
第3页 / 共17页
探索法的应用.doc_第4页
第4页 / 共17页
探索法的应用.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《探索法的应用.doc》由会员分享,可在线阅读,更多相关《探索法的应用.doc(17页珍藏版)》请在金锄头文库上搜索。

1、西华大学数计学院课程设计说明书数学与计算机学院课程设计说明书课 程 名 称: 算法设计与分析-课程设计 课 程 代 码: 7106620 题 目: 探索法的应用 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 年 月 日完 成 时 间: 年 月 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日I目 录 1 引 言11.1 问题的提出11.2国内外研究的现状11.3任务与分析12 程序的主要功能22.1新建数组22.2判定数组22.3 设定需要的界面23 程序运行平台34 总体设计45

2、程序类的说明56 模块分析76.1 迷宫问题主函数模块76.2 迷宫问题中,方位为上、下、左、右位置可到达76.3 迷宫问题判断出口位置106.4 预先设定迷宫126.5 计算机进程调度全局数据结构和变量126.6 计算机进程调度函数说明137 系统测试148 结论27参考文献28 西华大学数学与计算机学院课程设计说明书1 引 言 1.1 问题的提出在很多研究中,数学问题的形式千变万化,结构错综复杂,寻找正确有效的解题途径,以为着寻找一条摆脱困境,绕过障碍的途径。在这些问题的解决过程中,探索法无疑成为了一种最有效的方法。由此提出了迷宫问题等问题的探索法,要解决此类问题,向各个方向考虑,由此找到

3、一条最有效的解决途径,由此来解决问题。正是探索法的探索解决问题的优点,由此有很多问题需要用这种方法解决。1.2国内外研究的现状 探索法在现代研究和学习中,起着非常重要的作用。在各个科学、人文等领域占据着非常重要的作用,有很多科学研究需要在问题的提出时,探索问题的各种有效途径,由此来获得解决问题的最有效方法。1.3任务与分析本课题主要的目的是用探索法解决各类问题,由此获得各类问题的最有效途径。探索法实现过程中,在对问题的解决过程中,先假设问题的各个解决途径,在对问题进行分析。用探索法来研究发现和发明的规律和方法,解决迷宫问题时,分为4个方向去试探路径,如果遇到下一个路径为1,表示此路径不能行走,

4、返回上一位置,再寻找其他路径;如果不是1,继续向前行走,知道找到出口。2程序的主要功能2.1新建数组1、在解决迷宫问题时,新建一个数组,用来判定迷宫问题的出口2、对计算机作业调度问题,新建一个数组,对计算机各个正在运行的作业进行判定2.2判定功能1、对迷宫问题进行编译,分别编译判定迷宫中方位为上、下、左、右的位置可到达;然后编译判定迷宫问题的入口,分别编译迷宫入口是否在上、下、左、右。2、对计算机作业调度问题编译,编译能判定计算机正在调度的进程。2.3 设定需要的界面1、设定一个已知的迷宫,由此能有前面的程序判定出迷宫的可以出行的路径。2、设定计算机作业调度的界面,由此来运行计算机作业调度的程

5、序。3 程序运行平台VC+6.0。具体操作如下:新建win32 Console Application工程,添加相应的源文件,再添加新建工程,再编译,链接,执行等。主 函 数方位为上可方位为下方位为左方位为右入口在左入口在右4 总体设计 图4.1 迷宫问题系统总体框架图 图4.2 计算机进程调度系统总体框架图5 程序类的说明 迷宫问题数据结构int searchNext(int c34, int k, int l);void findEnterence(int c34, int *k, int *l);void searchPath(int c34) int k = 0, l = 0; fin

6、dEnterence(c, &k , &l); searchNext(c, k, l);计算机进程管理数据结构/*PCB 结构*/ struct PCB int pname; int pri; int runtime; int waittime; struct PCB *next; pcb7; /* 运行指针*/ struct PCB *running; /*高优先级就绪队列头指针*/ struct PCB *Hready; /*低优先级队列头指针*/ struct PCB *Lready; /*等待队列头指针*/ struct PCB *wait; int sig=0; 6 模块分析6.1

7、迷宫问题主函数模块迷宫问题中,主要的头文件函数int searchNext(int c34, int k, int l);void findEnterence(int c34, int *k, int *l);void searchPath(int c34) int k = 0, l = 0; findEnterence(c, &k , &l); searchNext(c, k, l);6.2 迷宫问题中,方位为上、右、下、左的位置可到达现实迷宫问题中,方位为上、右、下、左的位置时,可到达的情况if (k = 0 & k = 0 & l = 0)/方位为“上”的位置可到达 if (ck - 1

8、l = 0) | (ck - 1l = 3) if (searchNext(c, k - 1, l) /printf( passn); return 1; /break; else printf(no pass); return 0; 6.3 迷宫问题判断出口位置判断迷宫问题的出口int i;/*k保存行,*l保存列/入口是否在左边 for (i = 0; i m; i+) if (ci0 = 2) (*k) = i; (*l) = 0; return; 6.4 预先设定迷宫预先设定固定的迷宫,修改迷宫,由此来设置迷宫的路径int cmn = 2, 1, 1, 1, 0, 0, 0, 0, 1

9、, 1, 1, 3; searchPath(c); printf(n); return 0;6.5 计算机进程调度全局数据结构和变量编写计算机进程调度全局数据结构,为运行程序做准备/*PCB 结构*/ struct PCB int pname; int pri; int runtime; int waittime; struct PCB *next; pcb7; /* 运行指针*/ struct PCB *running; /*高优先级就绪队列头指针*/ struct PCB *Hready; /*低优先级队列头指针*/ struct PCB *Lready; /*等待队列头指针*/ stru

10、ct PCB *wait; int sig=0; 6.6 计算机进程调度函数说明对程序中的函数进行说明void delay(); /*模拟进程39*/ void proc(struct PCB *running); /*将node插入到head所指示的队列的尾部*/ void InsertIntoQueueTail(struct PCB * head,struct PCB *node); /*进程调度函数*/ int proc_switch(); /*进程等待函数*/ void proc_wait(); /*进程唤醒函数*/ int proc_wakeup(); 7 系统测试首先进入VC+6.0,打开工程冯涛.cpp,然后进入源程序,接着编译、运行即可。对迷宫问题进行运行,预先设置迷宫1,如下图: 图7.1 迷宫18 结论 探索法在对迷宫问题和计算机进程调度解决过程中有很大作用,在解决这类问题的过程中,探索法是一种性能卓越的方法,在迷宫问题中,通过设计迷宫的出口和各个方位,来解决获得迷宫的最好的出口。通过探索法来探索迷宫问题的最好的路径,探索法在解决此类问题中效果明显优于其他算法。通过此次课程设计,我对用探索法解决迷宫问题等问题有了深入的认识,并且更深入了解了C+的使用,对以后的学习有很大

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号