ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:43KB ,
资源ID:7094350      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7094350.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(关键路径问题课程设计报告书.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

关键路径问题课程设计报告书.docx

1、关键路径问题课程设计报告书中北大学数 据 结 构课 程 设 计 说 明 书学生姓名:李永亮学 号:1021011813学 院:软件学院专 业:软件工程题 目:关键路径问题指导教师何志英2011年12月20日设计内容:设计一个程序求出完成整项工程至少需要多少时间以及整项工程中的关键活动。1、对一个描述工程的AOE网,应判断其是否能够顺利进行。2、若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间。设计要求:(1) 符合课题要求,实现相应功能;(2) 要求界面友好美观,操作方便易行;(3) 注意程序的实用性、安全性;1. 本设计所采

2、用的数据结构 (图)程序流程图 2. 功能模块详细设计2.1 详细设计思想主函数switch()对条件进行选择判断,进入关键路径的程序,然后对结点数的接收,分配相应的存储空间,构建AOE-网,逐个对图结点信息(包括俩邻接点,权值)输入接收,并与分配存储空间。寻找关键路径:构建栈用与存储拓扑排序序列,求得每个接点的相应最早发生时间,最迟完成时间,关键事件的求取,并输出关键路径。2.2 核心代码#include stdafx.h#include #include #include #include #include using namespace std;/#define PROJECTUNMBE

3、R 9/10/#define PLANNUMBER 11/13 typedef struct node int adjvex; int dut; struct node *next;edgenode;typedef struct int projectname; int id; edgenode *link;vexnode;/vexnode GraphicmapPROJECTNUMBER;void GreateGraphic(vexnode* Graphicmap,int projectnumber,int activenumber) int begin,end,duttem; edgenod

4、e *p; for(int i=0;iprojectnumber;i+) Graphicmapi.projectname=i; Graphicmapi.id=0; Graphicmapi.link=NULL; printf(某项目的开始到结束在图中的节点输入n); printf(如:3,4,9回车表示第三节点到第四节点之间的活动用了9个单位时间n); printf(*n); for(int k=0;kadjvex=end-1; p-dut=duttem; Graphicmapend-1.id+; p-next=Graphicmapbegin-1.link; Graphicmapbegin-1.

5、link=p; int SearchMapPath(vexnode* Graphicmap,int projectnumber,int activenumber,int& totaltime) int i,j,k,m=0; int front=-1,rear=-1; int* topologystack=(int*)malloc(projectnumber*sizeof(int); /用来保存拓扑排列 int* vl=(int*)malloc(projectnumber*sizeof(int); /用来表示在不推迟整个工程的前提下,vl允许最迟发生时间 int* ve=(int*)malloc

6、(projectnumber*sizeof(int); /用来表示vj最早发生时间 int* l=(int*)malloc(activenumber*sizeof(int); /用来表示活动Ai最迟完成开始时间 int* e=(int*)malloc(activenumber*sizeof(int); /表示活动最早开始时间 edgenode *p; totaltime=0; for(i=0;iprojectnumber;i+) vei=0; for(i=0;iadjvex; Graphicmapk.id-; if(vej+p-dutvek) vek=vej+p-dut; if(Graphic

7、mapk.id=0) topologystack+rear=k; p=p-next; if(mprojectnumber) printf(n本程序说建立的图有回路不可计算出关键路径n); printf(将退出本程序n); return 0; totaltime=veprojectnumber-1; for(i=0;i=0;i-) j=topologystacki; p=Graphicmapj.link; while(p) k=p-adjvex; if(vlk-p-dut)dut; p=p-next; i=0; printf(|起点 |终点|最早开始时间 |最迟完成时间 |差值| 备注 |n);

8、 for(j=0;jadjvex; e+i=vej; li=vlk-p-dut; printf(| %4d | %4d | %4d | %4d | %4d |, Graphicmapj.projectname+1,Graphicmapk.projectname +1,ei,li,li-ei); if(li=ei) printf(关键活动 |); printf(n); p=p-next; return 1;void seekkeyroot() int projectnumber,activenumber,totaltime=0; system(cls); printf(请输出这个工程的化成图形的

9、节点数:); scanf(%d,&projectnumber); printf(n); printf(请输入这个工程的活动个数:); scanf(%d,&activenumber); printf(n); vexnode* Graphicmap=(vexnode*)malloc(projectnumber*sizeof(vexnode); GreateGraphic(Graphicmap,projectnumber,activenumber); SearchMapPath(Graphicmap,projectnumber,activenumber,totaltime); printf(整个工程

10、所用的最短时间为:%d个单位时间n,totaltime); system(pause); int main() char ch; for(;) do system(cls); printf(| 欢迎进入求关键路径算法程序 |); for(int i=0;i80;i+)printf(*); printf(n); printf(%s,(S)tart 开始输入工程的节点数据并求出关键路径n); printf(n); printf(%s,(E)xit 退出n); printf(n); printf(%s,请输入选择:); scanf(%c,&ch); ch=toupper(ch); if(ch!=S&

11、ch!=E) printf(请输入正确的字符!n); system(pause); while(ch!=S&ch!=E); switch(ch) caseS: seekkeyroot(); break; caseE: return 1; 2.3程序运行结果输入S开始程序(如图)输入节点数和活动个数(如图) 输入E,退出程序3. 课程设计心得这次的课程设计主要是对基础知识的灵活使用,这就让我进一步提高了对数据结构知识的巩固。这次设计的完成,有很多难题让我都曾不知所措,但通过努力最终解决它们让我体会到成就感,更重要的是我的能力在无形中得到了提升和优化。今后我会更加的努力,去充分的提升自己。【此文档部分内容来源于网络,如有侵权请告知删除,本文档可自行编辑和修改内容,感谢您的支持!】

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1