拓扑排序及关键路径在实际的应用.docVIP

拓扑排序及关键路径在实际的应用.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
拓扑排序及关键路径在实际的应用.doc

数学与计算机学院 课程设计说明书 课 程 名 称: 算法设计与分析-课程设计 课 程 代 码: 8174123 题 目:拓扑排序与关键路径在实际的应用 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 年 月 日 完 成 时 间: 年 月 日 课程设计成绩: 学习态度及平时成绩(30) 技术水平与实际能力(20) 创新(5) 说明书撰写质量(45) 总 分(100) 指导教师签名: 年 月 日 目录 摘要 1 1 引言 2 1.1 问题的提出 2 1.2 C++语言 2 1.3 算法设计与分析的地位 2 1.4拓扑排序的描述 3 1.5 任务与分析 4 2 设计方案 4 2.1问题描述 4 2.2 算法描述 5 2.3算法设计 6 2.4算法编码实现 7 3.系统测试 9 3.1图形化界面展示图及所求解的顶点和路径 9 3.2算法的时间复杂度分析 10 结论 12 致谢 13 参考文献 14 摘要 排课问题是现在各个学校必须面临的一个问题。而且随着近年来学生规模的扩招,教育机构的复杂化,课程各类的多样化,排课的问题越来越难。尽管目前对排课采用了程序设计的计算机智能排课系统,但是仍然存在着这样或者那样的问题。最为突出的一个问题,比如,有一些排课方案,看上去完美无缺,或者效率比较高,甚至达到了最优解,但是具体地去实施的时候,发现整个课程的设计方案有着大的漏洞,经常出现的问题是,排课的拓扑图出现了一些环,以至于进入了死循环。该文的目的就是针对于如何检测环的存在而避免错误的排课方案。本文采用的算法是基于拓扑序列的拓扑排序算法对特定条件的排课问题提出的一种解决方案,具体的实验结果是展示出一个符合条件的课程拓扑序列,整个算法的设计与实现过程将要用到邻接表,堆栈等数据结构等等。 关键词:有向图,拓扑排序,排课 1 引言 1.1 问题的提出 自1946年第一台计算机问世以来,计算机产业的飞速发展已远远超出人们对它的预料,在某些生产线上,甚至几秒钟就能生产出一台微型计算机,产量猛增,价格低廉,这就使得它的应用范围迅速扩展。如今,计算机已深入到人类社会的各个领域。计算机的应用已不再局限于科学计算,而更多地用于控制、管理及数据处理等非数值计算的处理工作。与这些相应,计算机加工处理的对象由纯粹的数值处理发展到字符、表格和图像等各种具有一定结构的数据,这就给程序设计带来一些新的问题。为了编写出一个“好”的程序,必须分析待处理的对象的特性以及处理对象之间存在的关系。这就是“算法设计与分析”这门学科形成和发展的背景。 1.2 C++语言 C语言本身存在一些局限,例如:C语言不支持代码重用,C语言对类型的检查机制相对较弱。为了解决C语言自身所具有的诸多问题,1980年,贝尔实验室的Bjarne Stroutstrup博士及其同事开始对C语言进行改进和扩充,并使C++语言在C语言的基础上发展起来。 在基本语法特点方面,C++语言保持与C语言兼并,二者没有本质上的差别,大多数使用C语言编写的代码可以在C++语言中直接使用。这也是C++语言很快普及的一个重要原因。 C++语言与C语言的主要区别是编程思想上的更新,即编码由面向过程变为面向对象,基于此,C++语言引入了类与对象机制,包括类的定义,类的继承与派生,类的多态性等。 在类定义方面,C++语言一方面自定义结构类型进行扩充,另一方面也支持新的类构造。数据封装和隐藏是与类的定义紧密相关,并且在C++语言中经常碰到的现象,也是C++语言中的一大特点。数据的封装和隐藏使重要的内部数据得到保护。 1.3 算法设计与分析的地位 算法设计与分析在计算机科学中是一门综合性的专业基础课。算法的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。因此,可以认为算法设计与分析是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。在计算机科学中,算法设计与分析不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。 1.4拓扑排序的描述 1.4.1拓扑排序的基本思想:

文档评论(0)

mghkfg58 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档