- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《关键路径算法课程设计》
《数据结构》课程设计说明书
题目: 求网中的关键路径
班 级 计科1203 组 别: 指导老师: 彭代文 完成时间: 2014.6.6 组 长: 王勋峰 学 号: 19 组 员 1: 蒋磊 学 号: 18 组 员 2: 刘源 学 号: 17 组 员 3: 陈乙生 学 号: 16 成 绩:
目 录
一 需求分析 1
1.1题目内容与要求 1
1.2 题目理解与功能分析 1
二 概要设计 2
2.1 设计思路 2
2.2系统模块图 2
2.2 系统模块图…………………………………………………………………….3
三 详细设计……………………………………………………………………….…4
3.1 图存储结构的建立………………………..……………………………………4
3.2 求取关键路径…………………………………………………………………..8
3.3 主程序建立……………………………………………………………………10
四 实验结果……………………………………………………………………….11
五 课程设计心得…………………………………………………………………...12
六 参考文献………………………………………………………………………...13
七 附录(程序清单)………………………………………………………………14
一 需求分析
题目内容与要求
内容:
自拟定合适的方式 ,从键盘上输入一个AOE网,并用合适的存储结构存储该AOE网,然后求出该AOE网的关键路径。
基本要求:
1.输入AOE网的方式要尽量的简单方便;
2.要能够较形象地观察AOE网和它的关键路径;
3.课程设计报告必须符合课程设计报告规范;
4.提交合格的课程设计报告,经指导教师测试课设完成(验收)程序,课设完成;
1.2 题目理解与功能分析
该题实质要求用数据结构中的图形知识编写一个求无循环有向帯权图中从起点到终点所有路径,经分析、比较求出长度最大路径,从而求出关键路径。
通常我们用有向图表示一个工程。在这种有向图中,用顶点表示活动,用有向边Vi,Vj表示活动Vi必须先于活动Vj进行。如果在这种图中用有向边表示一个工程中的各项活动(ACTIVITY),用有向边上的权值表示活动的持续时间(DURATION),用顶点表示事件(EVENT),则这种的有向图叫做用边表示活动的网络,简称AOE网络。在AOE网络中,从源点到各个顶点,可能不止一条。这些路径的长度也可能不同。不同路径所需的时间虽然不同,但只有各条路径上所有活动都完成了,这个工程才算完成。因此,完成整个工程所需的时间取决于从源点到汇点的最长路径长度,即在这条路径上所有活动的持续时间之和。这条路径长度就叫做关键路径(critical path)。 程序所要达到的功能:输入并建立AOE网;输出关键活动并求出这个工程的关键路径;求出完成这个关键路径的最少时间并输出二 概要设计
设计思路
基本设计思路:
(1) 以某一个求无循环有向帯权图蓝本。
(2) 观察并记录这个图中每个弧的起始点及权值。
(3) 用记录的结果建立AOE网,即边表示活动的网络,并用图的形式表示。
(4) 用领接表来存储图这些信息。
(5) 用CreateGraph( )函数建立AOE图。
(6) 用CriticalPath ( )函数求出最大路径,并打印出关键路径。
(7) 编写代码并测试。
系统模块图
图2-1系统模块图
三 详细设计
3.1 图存储结构的建立
全局变量及用途:
#define MAX_VERTEX_NUM 50 // 最大顶点数
int indegree[MAX_VERTEX_NUM]; // 存放节点入度数组
int ve[MAX_VERTEX_NUM],vl[MAX_VERTEX_NUM]; // 顶点事件 最早发生时间 和最迟发生时间数组,全局变量 初始为 0
int ee[MAX_VERTEX_NUM],el[MAX_VERTEX_NUM]; // 弧活动 最早发生时间 和最迟发生时间数组
stackint S; // 存放 入度为0的结点
stackint T; // 存放 顶点的拓扑序列
1 先建立邻接表的存储单元,为建立邻接表做准备。为图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点v
文档评论(0)