算法与数据结构》课程设计。
题目:关键路径。
院、 系。学科专业。
姓名。学号。
指导教师。算法与数据结构》课程设计。
题目:关键路径。
院、 系。学科专业。
姓名。学号。
指导教师。年月日。
数据结构课程设计报告。
摘要。关键路径是我们估算某些工程非常有用,是一种非常重要的估算一项工程所需的最短时间的依据。本文对如何求一个工程的关键路径做了详细的说明,包括需求分析、概要设计、详细设计、测试与分析、总结、源程序清单。
首先,做了需求分析,解释了什么是关键路径,并指出它在估算工程中的重要作用。然后给出求关键路径的概要设计,包括程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。
在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,对每个函数写出核心算法,并画出了流程图。然后对编码进行了测试与分析(并在最后附上c语言编写的程序**)。最后对整个设计过程进行了总结……
关键词:关键路径;抽象数据类型;程序模块;核心算法;流程图。
目录。摘要1
1 绪论31.1前言3
1.2研究意义3
1.3结构安排3
2 需求分析5
2.1问题描述5
2.2基本要求5
2.3目的5
3概要设计7
3.1算法分析7
3.2算法步骤7
3.3数据结构8
3.3.1数据结构8
3.3.2程序模块8
3.3.3各模块间的调用关系9
4详细设计10
4.1主要函数的核心**10
4.2程序流程图10
5测试116总结16
参考文献18
附录:原程序清单19
1绪论。1.1前言 :
我们通常把计划、施工过程、生产流程、程序流程等都当成一个工程。工程通常分为若干个称为“活动”的子工程。完成了这些“活动”,这个工程就可以完成了。
我们通常用aoe-网来表示工程。aoe-网是一个带权的有向无环图,其中,顶点表示事件(event),弧表示活动,权表示活动持续的时间。
aoe-网可以用来估算工程的完成时间。他可以使人们了解:
1. 研究某个工程至少需要多少时间?
2. 哪些活动是影响工程进度的关键?
由于aoe-网中的有些活动可以并行进行,从开始点到各个顶点,以致从开始点到完成点的有向路径可能不止一条,这些路径的长度也可能不同。完成不同路径的活动所需的时间虽然不同,但只有各条路径上所有活动都完成了,这个工程才算完成。因此,完成工程所需的最短时间是从开始点到完成点的最长路径的长度,即在这条路径上的所有活动的持续时间之和。
这条路径长度就叫做关键路径(critical path)。
1.2研究意义 :
关键路径可以很方便的让我们估算出某个工程最短的时间开销,以及这个工程中哪些活动,即哪些项目是主要的,是影响工程进度的关键,从而让我们对工程的实施作出更好的时间安排,并且可以分清主次,抓住核心工程,做到有的放矢。
总的来说,正因为关键路径可以帮助我们对工程进行非常有必要的估算,让我们得以看清全局,作出更为优化的安排,所以可见关键路径的求出对一项工程而言是非常必要的。这亦是本次对关键路径求法的研究意义所在。
1.3结构安排 :
第一章绪论介绍了研究背景以及研究意义。
第二章需求分析介绍了问题描述以及基本要求,和这次课程设计所需达到的目的。
第三章概要设计主要介绍了求关键路径的算法分析,算法步骤,和数据结构,其中数。
据结构包括了基本的抽象数据结构,所要用到的函数模块,以及各模块之间的调用关系。
第四章详细设计介绍了主要函数及其核心**,以及程序流程图。
第五章对程序**进行了测试。
第六章对这次数据结构课程设计进行了总结。
参考文献。附录:原程序清单。
2 需求分析。
2.1问题描述 :
1)选取建图的一种算法建立图,有邻接矩阵,邻接表,十字链表,邻接多重表等多种方法,要选取一种适当的方法建立图,才能提高算法效率,降低时间复杂度和空间复杂度。
2)两个相邻顶点与它们之间的边表示活动,边上的数字表示活动延续的时间。对于给出的事件aoe网络,要求求出从起点到终点的所有路径,经分析、比较后找出长读最大的路径,从而得出求关键路径的算法,并给出计算机上机实现的源程序。完成不同路径的活动所需的时间虽然不同,但只有各条路径上所有活动都完成了,这个工程才算完成。
具体要解决的问题有如下四个:
1) 将项目中的各项活动视为有一个时间属性的结点,从项目起点到终点进行排列;
2) 用有方向的线段标出各结点的紧前活动和紧后活动的关系,使之成为一个有方向的网络图;
3) 用正推法和逆推法计算出各个活动的最早开始时间,最晚开始时间,最早完工时间和最迟完工时间,并计算出各个活动的时差;
4) 找出所有时差为零的活动所组成的路线,即为关键路径;
2.2基本要求 :
1)选取建图的一种算法建立图;
选取邻接表的算法来建立图,是一种顺序+ 链式存储结构。用顺序表存放顶点,为每个顶点建立一个单链表,单链表中的结点表示依附于该顶点的边或以该顶点为尾的弧。
2)两个相邻顶点与它们之间的边表示活动,边上的数字表示活动延续的时间。
参照该工程所化的aoe-网,求出从起点到终点的所有路径,然后通过拓扑排序和逆拓扑排序求出最早与最晚发生时间,找出长度最大的路径,从而求得关键路径。
2.3目的:
在该部分,即需求分析中,根据设计题目的要求,充分地分析和理解问题,叙述系统的功能要求,明确问题要求做什么,以及限制条件是什么。
程序所能达到的功能:通过输入所要构建的图的顶点数,弧数,创建图,并打印出来,对图进行拓扑排序,求得此图的最早发生时间和最迟发生时间,并求得关键活动和关键路径,打印出来。
3 概要设计。
3.1算法分析:
1)求关键路径必须在拓扑排序的前提下进行,有环图不能求关键路径;
2)只有缩短关键活动的工期才有可能缩短工期;
3)若一个关键活动不在所有的关键路径上,减少它并不能减少工期;
数据结构课程设计报告
东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...
数据结构课程设计报告
设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...
数据结构课程设计报告
河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...