教学计划安排检验程序(拓扑排序)报告书

合集下载

教学流程检查实施方案

教学流程检查实施方案

教学流程检查实施方案一、前言。

教学流程检查是教学管理工作的重要环节,对于提高教学质量、规范教学秩序、促进教师专业发展具有重要意义。

为了有效实施教学流程检查,制定本实施方案,以期为教学管理工作提供指导和支持。

二、实施目的。

1. 规范教学流程,确保教学质量;2. 发现和解决教学中存在的问题,促进教师专业成长;3. 加强对教学管理工作的监督和评估。

三、实施内容。

1. 制定检查计划。

根据学校教学计划和教学安排,制定教学流程检查计划。

明确检查时间、地点、对象和内容,确保全面覆盖各个年级和学科。

2. 组织检查人员。

由教务处负责组织检查人员,确保每次检查都有足够的人员参与。

检查人员应包括教务处负责人、学科组长、年级组长等,具体人员根据检查内容确定。

3. 制定检查标准。

制定教学流程检查的标准和要求,包括教学准备、教学过程、教学方法、教学效果等方面。

明确各项标准的具体内容和评分标准,以便进行量化评估。

4. 实施检查。

按照计划和要求,组织检查人员进行教学流程检查。

检查人员应当客观公正、严格认真地进行检查,及时记录并反馈问题和建议。

5. 整理检查结果。

教务处根据检查情况,对各个年级和学科的教学流程进行整理和分析,形成检查报告。

报告应包括检查结果、存在问题、改进建议等内容。

6. 落实改进措施。

教务处负责组织相关人员对检查报告中提出的问题和建议进行研究和讨论,制定改进措施,并督促学科组和年级组落实。

四、实施要求。

1. 严格按照计划和要求进行检查,不得违反规定;2. 检查人员应当客观公正、严格认真地进行检查,不得有偏颇和主观评价;3. 教务处应当及时跟踪检查结果的落实情况,确保改进措施得到有效执行。

五、总结。

教学流程检查是教学管理工作的重要环节,对于提高教学质量、促进教师专业成长具有重要意义。

通过本实施方案的制定和执行,将有效规范教学流程,提高教学质量,促进教师专业发展,推动学校教学管理工作不断向前发展。

六、附录。

1. 教学流程检查计划表。

教学计划编排实验报告

教学计划编排实验报告

程序设计实验报告
题目:关于课程编排的报告
姓名贾雨飞
学号2010434096
年级专业10数电类(四班)
指导教师王苗
2011年12月13日
一、需求分析
1.程序的功能
大学中的每个专业都有几十门基础课程、专业课程及选修课程,学生必须分几个学期完成这些课程才能毕业。

教学计划的制定就是合理的编排这些课程,使得学生能够顺利的进行学习。

这些课程中,有些课程是独立于其它课程的基础课,有些课程却需要其它先行课程;一般四年制本科教学前7个学期(三年半)进行理论课程的学习,第8个学期实习;教学计划的编排必须充分考虑这些因素,编排出一个合理的教学大纲计划。

一、概要设计
1、抽象数据类型的定义
//边表的结点结构可描述为:
typedef struct node
{int adjvex; /*邻接点域*/
struct node *next; /*指向下一个邻接点的指针域*/
}EdgeNode; /*边表结点*/
//顶点表的结点结构可描述为:
typedef struct vnode /*顶点表结点*/
{int num; /*课程号*/。

教师教学计划编排步骤分析

教师教学计划编排步骤分析

教师教学计划编排步骤分析教学计划的编排是一个教师教学工作中重要的环节,它直接关系到教学的质量和效果。

为了使教学计划能够科学、合理地编排,以下将分十二个小节从不同角度进行详细分析。

一、确定教学目标教学目标是教学计划的核心,是教师教学工作的出发点。

在制定教学计划之前,需要明确教学目标,包括知识目标、能力目标和情感目标。

目标要明确、具体,能够指导学生的学习和发展。

二、分析教学内容在确定教学目标的基础上,需要对所教授的内容进行分析,包括相关的知识点、概念和逻辑关系等。

根据学生的学习进度和能力水平,确定教学的深度和广度,以确保教学内容的合理性和可操作性。

三、选择教学方法教学方法是教师用来实现教学目标的手段和途径。

根据教学内容的特点和学生的个性差异,选择合适的教学方法,包括讲授法、讨论法、实验法等。

教学方法要灵活运用,以激发学生的学习兴趣和积极性。

四、设计教学活动在确定了教学方法之后,需要设计教学活动,即通过不同的活动形式来实现教学目标。

教学活动可以包括课堂讲解、小组合作、实验演示等,要根据学生的学习需求和兴趣进行选择,使学生主动参与、积极思考。

五、制定教学时刻表教学时刻表是教学计划的基础,它明确了每个教学环节的时间安排和顺序。

根据教学目标和教学内容的复杂性,合理分配每个环节的时间,确保教学的连贯性和有效性。

六、准备教学材料教学材料是教学的重要支撑,它包括教科书、课件、实物等。

在编排教学计划时,需要根据教学内容的要求,准备相应的教学材料,以便于学生的学习和理解。

七、评价教学效果教学计划的编排不仅仅是为了让学生学会知识,更重要的是培养学生的能力和素养。

因此,在教学过程中应及时进行评价,包括自我评价和学生评价,以便于及时调整教学策略和方法。

八、调整教学计划在教学过程中,难免会遇到一些问题和困难。

当教学效果不理想时,需要及时调整教学计划,重新评估教学目标和方法。

通过反思和改进,以提高教学质量和效果。

九、与同事交流教学计划的编排是一个动态的过程,需要不断的学习和进步。

数据结构拓扑排序实验报告

数据结构拓扑排序实验报告

数据结构拓扑排序实验报告一、实验目的本次实验的主要目的是深入理解和掌握数据结构中的拓扑排序算法,并通过实际编程实现来验证其有效性和应用场景。

拓扑排序在解决有向无环图(DAG)中的依赖关系问题上具有重要作用,例如任务调度、工程流程规划等。

二、实验环境本次实验使用的编程语言为 Python,开发环境为 PyCharm。

Python具有简洁易懂的语法和丰富的库函数,能够方便地实现拓扑排序算法。

三、实验原理拓扑排序是对有向无环图的顶点进行排序,使得对于图中的每条有向边(u, v),顶点 u 都在顶点 v 之前。

其基本思想是选择一个入度为0 的顶点,将其输出,并删除与其相关的边,从而更新其他顶点的入度,重复这个过程直到图中所有顶点都被输出。

实现拓扑排序的常见方法有两种:基于深度优先搜索(DFS)和基于广度优先搜索(BFS)。

四、实验步骤1、构建有向无环图的数据结构我们使用邻接表来表示有向图,其中每个顶点对应一个列表,存储其指向的顶点。

2、计算顶点的入度遍历邻接表,统计每个顶点的入度。

3、执行拓扑排序基于 BFS 的方法:创建一个队列,将入度为 0 的顶点入队。

然后不断取出队首顶点,输出,并更新与其相邻顶点的入度。

若有新的入度为 0 的顶点,则入队。

基于 DFS 的方法:使用递归函数,从一个未访问的顶点开始,访问其相邻顶点,并在回溯时输出顶点。

4、输出排序结果五、实验代码以下是基于 BFS 实现拓扑排序的 Python 代码示例:```pythonfrom collections import dequeclass Graph:def __init__(self, vertices):selfvertices = verticesselfadjacency_list = for _ in range(vertices)selfindegree = 0 verticesdef add_edge(self, source, destination):selfadjacency_listsourceappend(destination) selfindegreedestination += 1def topological_sort_bfs(self):queue = deque()for vertex in range(selfvertices):if selfindegreevertex == 0:queueappend(vertex)sorted_order =while queue:current_vertex = queuepopleft()sorted_orderappend(current_vertex)for adjacent_vertex in selfadjacency_listcurrent_vertex: selfindegreeadjacent_vertex = 1if selfindegreeadjacent_vertex == 0: queueappend(adjacent_vertex)if len(sorted_order)!= selfvertices:print("Graph contains a cycle Topological sort is not possible")else:print("Topological Sort:", sorted_order)测试示例g = Graph(6)gadd_edge(5, 2)gadd_edge(5, 0)gadd_edge(4, 0)gadd_edge(4, 1)gadd_edge(2, 3)gadd_edge(3, 1)gtopological_sort_bfs()```以下是基于 DFS 实现拓扑排序的 Python 代码示例:```pythonclass Graph:def __init__(self, vertices):selfvertices = verticesselfadjacency_list = for _ in range(vertices) selfvisited = False verticesselfstack =def add_edge(self, source, destination):selfadjacency_listsourceappend(destination) def topological_sort_dfs(self, vertex):selfvisitedvertex = Truefor adjacent_vertex in selfadjacency_listvertex: if not selfvisitedadjacent_vertex: selftopological_sort_dfs(adjacent_vertex) selfstackappend(vertex)def perform_topological_sort(self):for vertex in range(selfvertices):if not selfvisitedvertex:selftopological_sort_dfs(vertex)print("Topological Sort:", selfstack::-1)测试示例g = Graph(6)gadd_edge(5, 2)gadd_edge(5, 0)gadd_edge(4, 0)gadd_edge(4, 1)gadd_edge(2, 3)gadd_edge(3, 1)gperform_topological_sort()```六、实验结果分析1、基于 BFS 的方法对于上述测试示例,输出的拓扑排序结果为 4, 5, 0, 2, 3, 1,符合预期。

数据结构拓扑排序实验报告

数据结构拓扑排序实验报告

数据结构拓扑排序实验报告正文:一、实验目的本实验旨在通过实现拓扑排序算法来加深对数据结构中图的相关概念的理解,掌握拓扑排序的具体步骤与实现方法。

二、实验原理拓扑排序是一种对有向无环图进行排序的算法,它可以将有向无环图的顶点按照线性的顺序排列出来,使得对于任何一个有向边(u, v),都有顶点 u 在排列中出现在顶点 v 之前。

拓扑排序常用于表示图中的依赖关系,如任务调度、编译顺序等场景。

三、实验步骤1. 构建有向图根据实际需求构建有向图,可以使用邻接表或邻接矩阵等数据结构来表示有向图。

2. 执行拓扑排序算法利用拓扑排序算法对构建的有向图进行排序,可选择使用深度优先搜索(DFS)或广度优先搜索(BFS)等算法实现。

3. 输出排序结果将排序后的顶点按照线性的顺序输出,得到拓扑排序的结果。

四、实验结果与分析1. 实验数据以图 G = (V, E) 的顶点集合 V 和边集合 E,构建了如下的有向图:V = {A, B, C, D, E, F}E = {(A, C), (B, C), (C, D), (D, E), (E, F)}2. 拓扑排序结果经过拓扑排序算法的处理,得到的拓扑排序结果如下: A, B, C, D, E, F3. 结果分析可以看出,根据有向图的依赖关系,拓扑排序算法能够将顶点按照合理的顺序进行排序。

拓扑排序的结果可以作为图中顶点的执行顺序,具有重要的应用价值。

五、实验总结通过本次实验,我们深入学习了拓扑排序算法,并成功实现了拓扑排序的过程。

拓扑排序在图论和数据结构中具有广泛的应用,对于理解和解决与图相关的问题具有重要意义。

六、附件本文档没有涉及附件内容。

七、法律名词及注释本文档没有涉及法律名词及注释。

课程设计拓扑排序摘要

课程设计拓扑排序摘要

课程设计拓扑排序摘要一、教学目标本课程的教学目标是使学生掌握拓扑排序的基本概念和方法,能够运用拓扑排序解决实际问题。

具体分为以下三个部分:1.知识目标:学生需要理解拓扑排序的定义、特点和应用场景,掌握拓扑排序算法的实现和优化。

2.技能目标:学生能够运用拓扑排序算法解决基本的图论问题,如任务调度、课程安排等。

3.情感态度价值观目标:通过学习拓扑排序,学生能够培养逻辑思维能力、问题解决能力和创新意识,提高对计算机科学和图论的兴趣。

二、教学内容本课程的教学内容主要包括拓扑排序的定义和性质、拓扑排序算法的实现和优化、拓扑排序的应用场景。

具体安排如下:1.第一章:拓扑排序的定义和性质,介绍拓扑排序的基本概念和特点,分析拓扑排序的性质和限制。

2.第二章:拓扑排序算法的实现和优化,讲解常见的拓扑排序算法,如Kahn算法和Dijkstra算法,探讨算法的效率和优化方法。

3.第三章:拓扑排序的应用场景,介绍拓扑排序在任务调度、课程安排等实际问题中的应用,并通过案例分析让学生掌握拓扑排序的运用。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:通过讲解拓扑排序的基本概念、算法和应用,使学生掌握拓扑排序的理论基础。

2.案例分析法:通过分析实际问题案例,让学生了解拓扑排序在实际中的应用和解决问题的方式。

3.实验法:安排课后实验,让学生动手实现拓扑排序算法,培养学生的实际操作能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选择一本关于图论和拓扑排序的经典教材,作为学生学习的基础资料。

2.参考书:提供一些相关领域的参考书籍,供学生深入学习和拓展知识。

3.多媒体资料:制作PPT、教学视频等多媒体资料,帮助学生更好地理解和掌握拓扑排序的知识。

4.实验设备:准备计算机实验室,让学生能够进行课后实验和实践操作。

拓扑排序实验报告

拓扑排序实验报告

拓扑排序实验报告一、引言拓扑排序是一种图论中重要的算法,用于对有向无环图(DAG)中的顶点进行排序。

在该实验中,我们将对拓扑排序的算法进行实现,并对其进行性能分析和评估。

二、实验目的1. 了解拓扑排序的基本概念和算法;2. 实现拓扑排序的算法;3. 进行性能分析和评估,探究其时间复杂度。

三、实验方法1. 根据给定的有向无环图构建邻接表;2. 使用深度优先搜索(DFS)算法实现拓扑排序;3. 对不同规模的图进行拓扑排序,并记录所用时间;4. 分析并评估算法的性能。

四、实验过程1. 构建邻接表:根据给定的有向无环图,我们首先构建它的邻接表表示。

邻接表中的每个节点表示一个顶点,其指针指向该顶点的所有后继节点。

2. 深度优先搜索拓扑排序:从图中选择一个未被访问过的顶点作为起始点,递归地遍历其所有后继节点,直到所有的顶点都被访问过。

通过递归的方式,可以得到一个拓扑排序的结果。

3. 性能分析和评估:我们使用不同规模的图进行拓扑排序,并记录所用的时间。

根据实验数据,分析算法的时间复杂度,并评估其性能。

五、实验结果我们使用了10个不同规模的有向无环图进行了拓扑排序,并记录了所用的时间。

实验结果表明,随着图规模的增加,算法的时间复杂度也随之增加。

具体结果如下:图规模时间(ms)5 0.00110 0.00350 0.012100 0.025250 0.067500 0.135750 0.2561000 0.3872000 0.8055000 2.016通过以上实验结果,我们可以看出,拓扑排序算法的时间复杂度约为O(n + m),其中n为图中的顶点数,m为图中的边数。

实验结果与理论分析相符。

六、实验总结在本次实验中,我们实现了拓扑排序的算法,并进行了性能分析和评估。

通过实验结果可以看出,随着图规模的增加,算法的时间复杂度也随之增加。

拓扑排序算法是一种非常有用的算法,广泛应用于各个领域,例如编译器的依赖关系分析和任务调度等。

课次21——第七章03拓扑排序和关键路径

课次21——第七章03拓扑排序和关键路径
拓扑序列:有向图D的一个顶点序列称作一个拓扑序列,如果该 序列中任两顶点v 、u ,若在D中v是u前趋,则在序列中v也是u 前趋。
对有向图进行如下操作:按照有向图给出的次序关系,将图 中顶点排成一个线性序列,对于有向图中没有限定次序关系的顶 点,则可以人为加上任意的次序关系。由此所得顶点的线性序列 称之为拓扑有序序列。
v3 v5
v9
v8
v4
v6
13 2020/8/4
7.5.2 关键路径(4)
在AOE网络中, 有些活动顺序进行,有些活动并行进行。
从源点到各个顶点,以至从源点到汇点的有向路径可能不止 一条。这些路径的长度也可能不同。完成不同路径的活动所 需的时间虽然不同,但只有各条路径上所有活动都完成了, 整个工程才算完成。
例:
C0
C1
C2
C0
C1
C2
C3
C4
C5
(a) 有向无环图
C0
C1
C2
C3
C4
C5
(b) 输出C4
C1
C2
C3
C5
(c) 输出顶点C0
9 2020/8/4
C3
C5
(d) 输出顶点C3
7.5.1拓扑排序(Topological Sort)(7)
C1
C2
C1
C5 (e) 输出顶点C2
C5 (f) 输出顶点C1
因此,完成整个工程所需的时间取决于从源点到汇点的最长 路径长度,即在这条路径上所有活动的持续时间之和。这条 路径长度最长的路径就叫做关键路径(Critical Path)。
子工程所需时间。 问:哪些子工程是“关键工程”? 即:哪些子工程将影响整个工程的完成期限的。
首先了解一些基本概念:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计题目:示例数据:输入:学期数:5,课程数:12,课程间的先后关系数:16,课程的代表值:v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12。

课程间两两间的先后关系:v1 v2,v1 v3, v1 v4,v1 v12,v2 v3,v3 v5,v3 v7,v3 v8,v4 v5, v5 v7,v6 v8,v9 v10, v9 v11 , v9 v12,v10 v12,v11 v6输出:第1学期应学的课程:v1 v9第2学期应学的课程:v2 v4 v10 v11第3学期应学的课程:v3 v6 v12第4学期应学的课程:v5 v8第5学期应学的课程:v7一需求分析1.1 引言通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。

简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。

离散数学中关于偏序和全序的定义:若集合X上的关系是R,且R是自反的、反对称的和传递的,则称R是集合X上的偏序关系。

设R是集合X上的偏序(Partial Order),如果对每个x,y属于X必有xRy 或 yRx,则称R是集合X上的全序关系。

比较简单的理解:偏序是指集合中只有部分成员可以比较,全序是指集合中所有的成员之间均可以比较。

一般应用:拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。

例如,在日常工作中,可能会将项目拆分成A、B、C、D四个子部分来完成,但A依赖于B和D,C依赖于D。

为了计算这个项目进行的顺序,可对这个关系集进行拓扑排序,得出一个线性的序列,则排在前面的任务就是需要先完成的任务。

1.2 拓扑排序的了解①.问题的描述在AOV网中为了更好地完成工程,必须满足活动之间先后关系,需要将各活动排一个先后次序即为拓扑排序。

拓扑排序可以应用于教学计划的安排,根据课程之间的依赖关系,制定课程安排计划。

按照用户输入的课程数,课程间的先后关系数目以及课程间两两间的先后关系,程序执行后会给出符合拓扑排序的课程安排计划②. 拓扑排序进行教学计划安排检验理论基础为实现对无权值有向图进行拓扑排序,输出拓扑序列,先考虑如何存储这个有向图。

拓扑排序的过程中要求找到入度为0的顶点,所以要采用邻接表来存储有向图,而要得到邻接表,则先要定义有向图的邻接矩阵结构,再把邻接矩阵转化成邻接表。

在具体实现拓扑排序的函数中,根据规则,当某个顶点的入度为0(没有前驱顶点)时,就将此顶点输出,同时将该顶点的所有后继顶点的入度减1,为了避免重复检测入度为0的顶点,设立一个栈St,以存放入度为0的顶点。

③.拓扑排序算法void TopologicalSort(ALGraph G),大体思想为:1)遍历有向图各顶点的入度,将所有入度为零的顶点入队列;2)队列非空时,输出一个顶点,并对输出的顶点数计数;3)该顶点的所有邻接点入度减一,若减一后入度为零则入队列;4)重复2)、3),直到队列为空,若输出的顶点数与图的顶点数相等则该图可拓扑排序,否则图中有环。

1.3 查阅相关资料,完成程序的实现二总体设计拓扑排序:三详细设计3.1 算法设计分析拓扑排序时有向图的一种重要运算。

在课表排序中,每门课都有多种关系:、(一)先后关系,即必须在一门课学完后,才能开始学习另一门课;(二)在一类课之间没有次序要求,即两门课可以同时学习,互不影响。

将AOV 网络中的各个顶点排列成一个线性有序序列,使得所有的要求的前趋、后趋关系都能得到满足。

在AOV网络进行拓扑排序的方法:(一)从中选择一个没有前趋的顶点,并把它输出;(二)从网络中删去该顶点和从该顶点出发的所有有向边;重复执行上述两步,直到网中所有的顶点都被输出3.2 源代码#include <malloc.h>#include <stdio.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define STACKINCREMENT 10#define MAX_VERTEX_NUM 20#define STACK_INIT_SIZE 100typedef int Status;typedef int SElemType;int indegree[20]={0};typedef struct {SElemType *base;SElemType *top;int stacksize;}SqStack;typedef struct ArcNode{int adjvex;struct ArcNode *nextarc;}ArcNode;typedef struct VNode{char data[10];ArcNode *firstarc;}VNode,AdjList[MAX_VERTEX_NUM];typedef struct{AdjList vertices;int vexnum,arcnum;}ALGraph;Status InitStack(SqStack &S){S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)return ERROR;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}Status Push(SqStack &S,SElemType e){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S.base)return ERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}Status Pop(SqStack &S,SElemType &e)if(S.top==S.base)return ERROR;e=*--S.top;return OK;}Status StackEmpty(SqStack S){if(S.top==S.base)return TRUE;else return FALSE;}Status CreateDG(ALGraph &G){int i,l,v,w,vex;printf("\t请输入学期数目(小于等于8):\t");scanf("%d",&l);if(l>8){printf("\tWarning!\n\t学期数目必须小于等于8 ! 请重新输入:");scanf("%d",&l);}printf("\t请输入课程数目(小于20):");scanf("%d",&vex);if(vex>=20){printf("\tWarning! \n\t课程数目必须小于20 ! 请重新输入:");scanf("%d",&vex);}G.vexnum=vex;printf("\t请输入课程间的先后关系数:");scanf("%d",&G.arcnum);printf("请输入课程的代表值(课程名的长度小于等于10个字符):");for(i=0;i<G.vexnum;i++){scanf("%s",&G.vertices[i].data);G.vertices[i].firstarc = NULL;}printf("请注意v1=1,v2=2,v3=3,v4=4,c5=5,v6=6,v7=7,v8=8,v9=9,v10=10,v11=11,v12=12\n");printf("请输入课程间两两间的先后关系:");for(i=0;i<G.arcnum;i++){scanf("%d %d,",&v, &w);ArcNode *p= new ArcNode;if(!p) return ERROR;p->adjvex=w-1;p->nextarc=G.vertices[v-1].firstarc;G.vertices[v-1].firstarc=p;}return OK;}void FindInDegree(ALGraph G){ArcNode* p;for(int i=0;i<G.vexnum;i++){p=G.vertices[i].firstarc;while(p){for(int j=0;j<G.vexnum;j++)if(p->adjvex==j)indegree[j]++;p=p->nextarc;}}}Status TopologicalSort(ALGraph G){SqStack S1,S2;ArcNode* p;int i,count,k;FindInDegree(G);InitStack(S1);InitStack(S2);for(i=0;i<G.vexnum;++i)if(!indegree[i])Push(S1,i);count=0;while(!StackEmpty(S1)){printf("第%d学期应学的课程:",count+1);while(!StackEmpty(S1)){Pop(S1,i);printf("%s ",G.vertices[i].data);Push(S2,i);}printf("\n");count++;while(!StackEmpty(S2)){Pop(S2,i);for(p=G.vertices[i].firstarc;p;p=p->nextarc){k=p->adjvex;if(!(--indegree[k]))Push(S1,k);}}}if(count<G.vexnum)return ERROR;else return OK;}int main(){printf("*********************************************************************** \n");printf(" 教学计划检验程序(拓扑排序) \n\n");printf(" v1 程序设计基础 v2 离散数学 v3 数据结构\n");printf(" v4 汇编语言 v5 语言设计与分析 v6 计算机原理\n");printf(" v7 编译原理 v8 操作系统 v9 高等数学\n");printf(" v10 线性代数 v11 普通物理 v12 数值分析\n\n");printf("*********************************************************************** \n");ALGraph T;CreateDG (T);TopologicalSort(T);return 0;}3.3 调试与分析1.运行程序打开界面如下图,并根据提示,输入学期数目:2.输入出错时显示如下:3.输入正确则继续,根据界面提示输入课程的代表值:4.根据界面提示输入课程间两两间的先后关系:5 输入课程间两两间的先后关系后,则输出每学期应学的课程:6 完美运行结果:四总结经过近三个星期的不断的学习与努力,有收获,有挫折,终于完成了《教学计划安排检验程序(拓扑排序)》的数据结构课程设计。

相关文档
最新文档