当前位置:
文档之家› 关键路径问题(课程设计)Java
关键路径问题(课程设计)Java
3.4测试数据……………………………………………………………………………………………7
第四章调试分析及测试…………………………………………………………………………………10
4.1程序操作与运行……………………………………………………………………………………10
4.2容错处理……………………………………………………………………………………………11
在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,对每个函数写出核心算法,并画出了流程图。然后对编码进行了测试与分析(并在最后附上java语言编写的程序代码)。最后对整个设计过程进行了总结。
关键词:关键路径;抽象数据类型;程序模块;核心算法;流程图;java。
CRITICALPATHPROBLEM
Key words:critical path; abstract data type; program module; the core algorithm flow chart; Java.
第一章绪论…………………………………………………………………………………1
1.1题目内容与研究意义………………………………………………………………………………1
(7) 编写代码并测试。
2.2 系统模块图
图1系统模块图
第三章详细设计
3.1 遇到的问题及解决方法
计算各顶点的ve值是在拓扑排序的过程中进行的,需对拓扑排序的算法做一些修改,求关键路径算法中没有标明明显的关于工程能否顺利进行的提示语。
3.2关键算法分析
1.有向图的输入
class CriticalPath1
First of all, the demand analysis, to explain what is the critical path, and points out its important role in estimating engineering. Then given for the critical path of the outline design, including all of the procedures used in the definition of abstract data types, the main program flow and the program module between the layers ( call) relationship.
4.3再举一例……………………………………………………………………………………………13
第四章总结………………………………………………………………………………………………15
参考文献………………………………………………………………………………………………16
附录
第一章绪论
1.1题目内容与研究意义
1.概述
ABSTRACT
The critical path is we estimate some works very useful, is a very important to estimate a project the minimum time required. This article on how to seek a project critical path is described in detail, including needs analysis, outline design, detailed design, testing and analysis, summary, source list.
2.研究意义
关键路径可以很方便的让我们估算出某个工程最短的时间开销,以及这个工程中哪些活动,即哪些项目是主要的,是影响工程进度的关键,从而让我们对工程的实施做出更好的时间安排,并且可以分清主次,抓住核心工程,做到有的放矢。
总的来说,正因为关键路径可以帮助我们对工程进行非常有必要的估算,让我们得以看清全局,做出更为优化的安排,所以可见关键路径的求出对一项工程而言是非常必要的。这亦是本次对关键路径求法的研究意义所在。
(1)研究某个工程至少需要多少时间?
(2)哪些活动是影响工程进度的关键?
由于AOE-网中的有些活动可以并行进行,从开始点到各个顶点,以致从开始点到完成点的有向路径可能不止一条,这些路径的长度也可能不同。完成不同路径的活动所需的时间虽然不同,但只有各条路径上所有活动都完成了,这个工程才算完成。因此,完成工程所需的最短时间是从开始点到完成点的最长路径的长度,即在这条路径上的所有活动的持续时间之和.这条路径长度就叫做关键路径(Critical Path)。
void calculate()
{
int[] ve=new int[graph.length]; //事件的最发生时间
Stack stack1=new Stack();
Stack stack2=new Stack();
int i,j,v;
for(int t : ve) t=0;
stack1.push(0);
关键路径问题
摘要
关键路径是我们估算某些工程非常有用,是一种非常重要的估算一项工程所需的最短时间的依据。本文对如何求一个工程的关键路径做了详细的说明,包括需求分析、概要设计、详细设计、测试与分析、总结、源程序清单。
首先,做了需求分析,解释了什么是关键路径,并指出它在估算工程中的重要作用。然后给出求关键路径的概要设计,包括程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。
v=(Integer)stack2.pop();
for(i=1; i<graph[v].length; i=i+2){
j=graph[v][i];
if(vl[j]-graph[v][i+1]<vl[v]){
vl[v]=vl[j]-graph[v][i+1];
}
}
}
4.求关键路径的所有边
for(v=0; v<graph.length-1; v++){ //求关键路径的所有边
//System.out.println("边:" + path[i][0]+ "-" + path[i][1] +" 权:"+ path[i][2]);
s+="边:" + path[i][0]+ "-" + path[i][1] +" 权:"+ path[i][2]+"\n";
}
}
求事件的最早发生时间
该题实质要求用数据结构中的图形知识编写一个求无循环有向帯权图中从起点到终点所有路径,经分析、比较求出长度最大路径,从而求出关键路径。
通常我们用有向图表示一个工程。在这种有向图中,用顶点表示活动,用有向边<Vi,Vj>表示活动Vi必须先于活动Vj进行。如果在这种图中用有向边表示一个工程中的各项活动(ACTIVITY),用有向边上的权值表示活动的持续时间(DURATION),用顶点表示事件(EVENT),则这种的有向图叫做用边表示活动的网络,简称AOE网络。在AOE网络中,从源点到各个顶点,可能不止一条。这些路径的长度也可能不同。不同路径所需的时间虽然不同,但只有各条路径上所有活动都完成了,这个工程才算完成。因此,完成整个工程所需的时间取决于从源点到汇点的最长路径长度,即在这条路径上所有活动的持续时间之和。这条路径长度就叫做关键路径(Critical Path)。程序所要达到的功能:输入并建立AOE网;输出关键活动并求出这个工程的关键路径;求出完成这个关键路径的最少时间并输出,该程序结束。
我们通常把计划、施工过程、生产流程、程序流程等都当成一个工程。工程通常分为若干个称为“活动”的子工程。完成了这些“活动”,这个工程就可以完成了。
我们通常用AOE-网来表示工程。AOE-网是一个带权的有向无环图,其中,顶点表示事件(EVENT),弧表示活动,权表示活动持续的时间。
AOE-网可以用来估算工程的完成时间。他可以使人们了解:
ve[j]=ve[v]+graph[v][i+1];
}
}
stack2.push(v);
}
3.求事件的最迟生时间
for(i=0; i<graph.length; i++) vl[i]=1000;
vl[graph.length-1]=ve[graph.length-1];
while(stack2.empty()!=true){
1.2题目理解与功能分析………………………………………………………………………………1
第二章概要设计…………………………………………………………………………………………3
2.1 设计思路……………………………………………………………………………………………3
2.2 系统模块图…………………………………………………………………………………………3
In the summary of the design basis, and gives a detailed algorithm design, design outline to achieve the definition of all functions, each function to write the core algorithms, and draw the flow chart. Then the coding are tested and analyzed ( and in the final with a java language program code ). The final design of the whole process are summarized.