教学计划编制问题
教师教学计划编写常见问题

教师教学计划编写常见问题近年来,教育领域的竞争越来越激烈,教师们需要不断提升自己的教学水平。
而编写教学计划是教师专业发展的重要部分,也是教师教学工作的基础。
一、什么是教学计划?教学计划是教师为了完成教学目标而设计的教育教学活动的组织和安排的文件。
它明确了教师所教授的课程的教学目标、内容、方法、评价和时间等方面的安排。
二、教学计划为何重要?教学计划的编写是教师教学工作的基础,也是教师获得优异教学效果的前提。
通过编写教学计划,教师可以清晰地定义教学目标、把握教学内容、选择教学方法,并能有针对性地进行评价和反思。
三、教学计划的组织结构有哪些?一般来说,教学计划由教学目标、教学内容、教学方法、教学评价等部分组成。
教学目标明确了教师对学生学习结果的期望;教学内容包括教材内容和拓展内容;教学方法是指教师在教学过程中所采用的教学手段和策略;教学评价是指对学生学习成果的评估。
四、应如何确定教学目标?教学目标是教学计划中最重要的组成部分之一。
教师应该根据学科要求、学生特点和教学资源确定教学目标。
教学目标应该具体明确、可操作性强,同时要符合学生的认知能力和学习需求。
五、教学内容应如何选择和安排?教学内容的选择和安排应该根据教学目标和学科要求来进行。
教师需要合理安排教材内容和拓展内容,以满足学生的学习需求。
同时,教师还可以根据学生的兴趣和实际情况,引入一些相关的知识和案例,提高教学的趣味性和实用性。
六、教学方法应如何选择和运用?教学方法是指教师在教学过程中所采用的手段和策略。
教师需要根据教学目标和学生特点选择适合的教学方法。
教学方法可以包括讲授法、讨论法、实验法等,教师还可以使用多媒体技术等现代教育技术手段来加强教学效果。
七、教学评价应如何进行?教学评价是对学生学习成果的评估,也是教师教学质量的重要依据。
教师应该根据教学目标和评价标准,采用多种评价方法来进行教学评价,如实地考察、作业评价、考试评价等。
同时,教师还应该及时对教学评价结果进行总结和反思,以不断调整教学策略和方法。
教学计划编写常见错误分析

教学计划编写常见错误分析教学计划是教师教学工作的重要组成部分,它对于教学的顺利开展和教学目标的实现具有重要的指导作用。
然而,很多教师在编写教学计划时,常常存在一些常见的错误。
本文将从教学主题、活动安排、教材使用等方面进行详细论述,分析教学计划编写中常见的错误,并提出相应的改进措施。
首先,教学主题的选择是教学计划编写中的关键步骤。
有些教师在选择教学主题时,往往过于随意或者与学科内容不相符。
他们可能会选择一些与学科无关或者不具备实际意义的主题,导致学生对学科知识的学习兴趣大减。
因此,教师在选择教学主题时应注意与学科内容的紧密结合,突出学科特点和实际应用。
其次,活动安排是教学计划中的重要环节。
一些教师在活动安排中存在的常见错误是活动过于简单或者过于复杂,不能很好地满足学生的学习需求。
有时候,教师会过多地安排课堂笔记、背诵等机械性活动,导致学生的学习兴趣受到抑制。
另外一些教师则过分追求创新,活动过于复杂,难度过大,让学生感到困惑和无助。
因此,教师在活动安排中应根据学生的实际情况和学科内容的复杂程度,合理安排活动,做到既丰富多样又能够有效促进学生的学习。
最后,教材使用是教学计划编写中的另一个重要方面。
一些教师在教材使用上存在的常见错误是完全依赖教材,不注重教材的合理利用和补充。
这样做容易导致教学内容单调乏味,缺乏趣味性和启发性。
而另一些教师则忽视教材的重要性,过分强调自己的教学方法和参考资料,导致教学内容与教材内容不一致,学生学习起来困难重重。
因此,教师应充分发挥教材的作用,在教学中灵活运用教材,根据学生实际情况和教学目标来选择合适的教学内容,既注重教材内容的系统性和科学性,又能够鼓励学生的创新思维和实践能力。
综上所述,教学计划编写中常见的错误主要包括教学主题的选择不当、活动安排过于简单或过于复杂、教材使用不合理等。
教师在编写教学计划时应注意酌情调整,根据学生的实际情况和学科特点合理安排教学主题和活动,灵活运用教材,使教学计划既具有启发性又有趣味性,能够有效地提高学生的学习兴趣和学习效果。
教案编制的常见问题与解决方案

教案编制的常见问题与解决方案教学是教师的一项重要任务,而教案的编制是教学工作中不可或缺的一环。
教案的编写质量直接关系到教学效果的好坏。
然而,在教案编制过程中,我们往往会遇到一些常见的问题。
本文将探讨这些问题,并提供相应的解决方案。
问题一:教学目标设置不清晰在编写教案时,许多教师往往忽略了明确的教学目标。
教学目标是教案设计的核心,它明确了课程内容和期望达到的教学效果。
如果教学目标没有明确,那么教学过程就会变得模糊无序,学生也难以明确自己的学习目标和方向。
解决方案:确定教学目标时,应遵循“明确、可衡量、可达成”的原则。
明确教学目标可以通过具体描述学生所需达到的知识、技能和情感目标来实现。
同时,确保教学目标是可衡量的,以便教师和学生能够清楚地评估学习的效果。
最后,确保教学目标是可达成的,即学生有能力实现这些目标。
问题二:教材选择不当教材是教案编制的基础,正确选择和使用教材可以激发学生的学习兴趣和积极性。
然而,教师在教材选择上常常犯错,选择过于简单或过于难的教材,导致教学效果不佳。
解决方案:在选择教材时,教师应根据学生的实际水平、学习需求和兴趣爱好来选择。
教材应既符合课程教学目标,又适应学生的认知水平。
此外,教师还可以根据教学大纲和参考书目进行选择,确保所选教材能够全面覆盖教学内容。
问题三:教学方法选用不当教学方法是教学过程中最为关键的环节之一。
合适的教学方法可以激发学生的主动学习,并提高他们的学习效果。
然而,很多教师在选择教学方法时常常囿于传统的教学模式,导致教学内容单一、学生参与度低。
解决方案:在选择教学方法时,教师应根据教学目标和学生的实际情况来选择。
传统的讲授和复述式的教学方法可以与互动教学和合作学习相结合,提供不同的学习体验。
此外,教师还可以运用多媒体技术和信息技术来激发学生的学习兴趣,提高课堂互动性。
问题四:评估方式不科学教学评估是教学过程的重要环节,它可以帮助教师了解学生的学习情况,及时调整教学策略。
教学计划书编写常见问题解答

教学计划书编写常见问题解答一、教学计划书的重要性教学计划书是教师在开展课堂教学活动之前,制定的一个详细的教学计划。
它不仅有助于教师全面把握教学任务,明确教学目标,合理安排教学内容,还能为学生提供一个清晰的学习指南。
教学计划书可确保教学过程的科学性和连贯性,使课堂教学达到预期的目的。
因此,正确编写教学计划书对于教师的教学工作至关重要。
二、教学计划书的编写步骤1.明确教学主题教学计划书的编写首先要明确教学主题,即要教授的知识内容或技能。
教学主题应具有一定的针对性和实用性,能够引起学生的兴趣和积极性。
2.确定教学目标教学目标是教学活动实施的出发点和目标。
教师在编写教学计划书时,应明确所要达到的教学目标,包括知识、能力和情感方面的目标,并将其分解为具体、可量化的学习目标。
3.安排教学内容教学内容是教学的重要组成部分。
在编写教学计划书时,教师要根据教学目标,合理安排教学内容的顺序和组织方式。
教学内容应包括基本概念、基本原理、基本方法等。
4.选择教材教学计划书中应明确所选用的教材及其具体章节和页码。
教师在选择教材时,要根据教学目标和学生的实际情况,选择适合的教材,并注意教材的科学性、可读性和丰富性。
5.制定教学方法和手段教学方法和手段是实现教学目标的重要手段。
教学计划书中应对教学方法和手段进行详细的描述,包括教学讲授、示范、实践、讨论、实验等。
教师要根据学生的特点和需求,选择合适的教学方法和手段。
6.设计教学活动教学活动是实施教学的具体行动。
在编写教学计划书时,教师要合理设计教学活动,包括教学准备、教学过程、教学评价等。
教学计划书中应对教学活动进行详细的描述和安排。
7.评估教学效果教学计划书的编写应包括对教学效果的评估。
教师要制定正确、恰当的评估方法和指标,对教学过程和学生的学习情况进行评估和反馈,并根据评估结果对教学计划进行调整和改进。
三、1.教学计划书的内容是否可以灵活调整?教学计划书的内容应按照教学目标和教学活动的次序进行编写,但也可以根据实际需要进行灵活调整。
教案设计中的常见问题及解决方法

教案是教师在备课时设计的教学计划,而教案设计则是整个备课环节中最重要的一环。
一个好的教案设计能够为教师顺利的开展教学活动提供有力的保障,而一个糟糕的教案设计则可能会给教学工作带来不少麻烦。
教案设计是一项需要认真对待的事情。
但是,在教案设计过程中,教师们常常会遇到一些难题,下面我们就来详细介绍一下教案设计中的常见问题及解决方法。
一、教学目标设置不够明确教学目标是指教学过程中所要达成的最终目标。
在教案设计时,教学目标的设置非常重要,一方面,教学目标能够指导教师教学活动的开展,另一方面,教学目标也是教学效果的重要评价标准。
教学目标的设置必须明确、具体,否则很容易产生教学误区。
解决方法:1.教师必须根据学生的实际情况来设置教学目标。
2.将教学目标分解成不同层次的具体目标,以达到细化目标的效果。
3.教学目标必须具有可操作性,即教师在教学活动的过程中能够对学生的行为、思想情感进行观察和评价。
二、知识点和教学重点的选择不合理知识点和教学重点的选择是教案设计的关键环节。
正确的选择可以大大提高教学效果,而错误的选择则会浪费教育资源,影响教学效果。
解决方法:1.根据学生的实际情况来选择相关知识点和教学重点。
2.选择与学生生活、学习息息相关的内容,加强教学内容的可读性与易懂性。
3.整合相关知识点,形成较为完整的知识结构。
三、教学难度设置不合理教学难度的设置是教案设计的重要环节之一。
如果教学难度设置过高,学生可能会学不进去;如果教学难度设置过低,教学成果可能会大打折扣。
解决方法:1.根据学生的实际情况来设置教学难度。
2.根据学生的知识水平、语言表达能力、学习态度等因素来确定教学难度。
四、教学设计缺乏互动性教学设计中缺乏互动性,不仅可能会让学生产生学习厌恶心理,而且也极易让学生不敢发言积极参与课堂活动。
解决方法:1.通过提问、讨论等方式来增强课堂互动性。
2.教师应注重调动学生的兴趣,使学生在课堂上表现得更加积极。
五、教案不灵活在教学过程中,教学计划难免要遇到一些偶然的情况。
教师教学计划编制注意事项

教师教学计划编制注意事项教师教学计划是教学活动设计的关键,可以指导教师有效地组织和安排教学工作,提高学生学习的效果。
因此,编制一个合理、富有实用性的教学计划至关重要。
以下是一些教师在编制教学计划时需要注意的事项。
一、明确教学目标编制教学计划的第一步是明确教学目标。
教学目标应该明确、可量化,能够准确反映学生需要达到的技能和知识水平。
教师应该根据学生的实际情况和教材的内容,设定具有挑战性和可行性的教学目标。
二、分析目标受众在编制教学计划之前,教师还需要对受众群体进行分析。
了解学生的年龄、背景、能力水平以及学习兴趣等方面的信息,可以帮助教师更好地调整教学内容和教学方法,以满足学生的学习需求。
三、合理安排教学内容教师在编制教学计划时,应该根据课程标准和教材内容合理安排教学内容。
教学内容应该具有系统性、科学性和实践性,能够帮助学生全面地掌握相关知识和技能。
四、选择适当的教学方法教学方法是教学计划中的重要组成部分。
教师应该根据学生的年龄、特点和教学目标选择适当的教学方法。
例如,对于小学生可以采用游戏和竞赛的形式,激发他们的学习兴趣;对于高中生可以采用讨论和实验等方法,培养他们的独立思考能力。
五、设计合理的教学活动教学活动是教学计划中的实施部分,也是学生学习的重要环节。
教师应该设计富有挑战性和互动性的教学活动,激发学生的学习兴趣和主动参与。
例如,可以设计小组合作、实例演示等形式,让学生在实践中学习,提高学习效果。
六、合理安排教学时间教学计划中需要合理安排教学时间。
教师应该充分考虑学生的实际情况和学习进度,合理安排每个教学环节所占用的时间。
同时,也要预留一定的时间用于巩固和复习。
七、使用多样化的教学资源教师在编制教学计划时,应该充分利用各种教学资源。
除了教材之外,还可以使用多媒体课件、科学实验器材等辅助教学资源,以丰富教学内容,提高学生的学习兴趣和参与度。
八、监控教学进度在教学计划的实施过程中,教师需要及时监控教学进度,确保教学活动按计划进行。
教学计划设计常见问题

教学计划设计常见问题教学计划设计是教师在进行教学准备工作时必须要做的一项重要任务。
然而,教学计划设计中存在着一些常见问题,这些问题可能会对教学的质量和效果产生一定的影响。
本文将介绍一些常见的教学计划设计问题,并提出相应的解决方法。
1. 目标不明确在设计教学计划时,一个明确的教学目标是至关重要的。
然而,许多教师在制定教学计划时并未明确提出具体的教学目标,导致教学过程中存在模糊和混沌的情况。
为了解决这个问题,教师应该注意在教学计划中明确列出每个教学活动的具体目标,以便学生和教师都清楚地知道应该达到什么样的教学效果。
2. 教学内容过多或过少教学计划设计中常见的问题之一是教学内容的安排过多或过少。
对于内容过多的情况,教师可能会面临时间不足的困境,无法深入探讨每个主题。
而内容过少,则可能导致学生的学习兴趣降低,无法充分发展他们的能力。
解决这个问题的方法之一是对教学内容进行合理分配和选择,确保在给定的时间内能够全面涵盖关键知识点,同时注重培养学生的学习兴趣和能力。
3. 缺乏灵活性有些教师在设计教学计划时可能过于僵化,不愿意根据学生的不同需求和进展进行调整。
这种缺乏灵活性的设计可能导致教学效果不佳。
为了解决这个问题,教师应该在教学计划中留有一定的弹性,能够根据学生的反馈和学习情况进行相应的调整和改进。
4. 缺乏评估和反馈教学计划设计中经常忽视的一个方面是评估和反馈。
教师需要对学生的学习情况进行评估,以便及时发现他们的弱点和问题,并采取相应的措施加以改进。
为了解决这个问题,教师应该在教学计划中明确列出评估和反馈的方式和时间,并确保评估和反馈能够及时进行。
5. 缺乏多样化的教学策略有些教师在设计教学计划时可能过于依赖一种教学策略,导致教学过程单一和枯燥。
为了解决这个问题,教师应该在教学计划中多样化使用各种教学策略,包括小组合作学习、问题解决学习、案例分析等,以激发学生的学习兴趣和积极性。
总结教学计划设计是一项复杂而重要的任务,需要教师充分考虑各种因素和问题。
教学计划编制问题

1课题需求描述21.1教学计划编制问题21.2进制转换22总体功能与数据结构设计32.1总体功能结构32.2数据结构设计43算法设计和程序设计63.1教学计划编制问题63.2进制转换问题94调试与测试234.1教学计划编制问题调试结果234.2进制转换问题调试结果255设计总结276程序代码291课题需求描述1.1教学计划编制问题大学的每个专业都要制订教学计划。
假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。
每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。
每门课恰好占一个学期。
在这样的前提下设计一个教学计划编制程序。
通过输入实际的课程及先后关系。
结合每学期的学分及课程数,制定好学习计划。
在输入相关数据后,程序会安排好每学期的课程。
1.2进制转换进制数制是人们利用符号进行计数的科学方法。
数制有很多种,在计算机中常用的数制有:十进制,二进制,八进制和十六进制。
十六进制数有两个基本特点:它由十六个字符0〜9以及A,B,C,D,E,F组成(它们分别表示十进制0〜15),十六进制数运算规律逢十六进一。
要求:(1)输入一个十进制数N,将它转换成R进制数输出,并可以进行你转换。
(2)输入数据包含多个测试实例,每个测试实例包含两个整数N (32位整数)和R(2〈=R<=16)。
(3)为每个测试实例输出转换后的数,每个输出占一行。
如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
2总体功能与数据结构设计1.教学计划编制问题根据问题描述及要求,可知设计中需要定义先修关系的AOV网图中的顶点及弧边的结构体,在运行结果中将图的信息显示出来,利用先修关系将课程排序,最后解决问题一一输出每学期的课程。
2.进制转换问题由于计算机只能识别二进栅以当我们从键盘输入其他进制数的时i候,算机内部的系统会利用自带的程序代码自动转换成二进制,我们是学计算机的,所以我们需要弄懂这种机制转换的原理并且能计算出来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计内容:问题描述大学的每个专业都要制订教学计划。
假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。
每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。
每门课恰好占一个学期。
试在这样的前提下设计一个教学计划编制程序。
1、基本要求(1).输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。
(3)若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。
计划的表格格式自行设计。
2、测试数据学期总数:6;学分上限:10;该专业共开设课数:12课程号:从C01到C12;学分顺序:2,3,4,3,2,3,4,4,7,5,2,3。
先修关系见教科书图7.26。
3、输出输入要求输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
输出要求输出各门课程所对应的学分,以及每学期各门课程的安排。
4、实现提示可设学期总数不超过12,课程总数不超过100。
如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。
应建立内部课程号与课程号之间的对应关系。
二、概要设计1、抽象数据类型图的定义如下:ADT Graph{数据对象V:V是具有相同特性的数据元素的集合,称为顶点集.数据关系R:R={VR}VR={(v,w)|v,w↔V,(v,w)表示v和w之间存在直接先修关系} 基本操作P:LocateVex(ALGraph G,VertexType u):图的邻接表存储的基本操作CreateGraph(ALGraph *G):构造生成树Display(ALGraph G):输出图的邻接矩阵FindInDegree(ALGraph G,int indegree):求顶点的入度TopologicalSort(ALGraph G):有向图G采用邻接表存储结构。
若G无回路,则输出G的顶点的一个拓扑序列并返回OK,否则返回ERROR。
}ADT Graph2、栈的定义:ADT Stack{数据对象:D={ai|ai↔ElemSet,i=1,2,…n,n>=0}数据关系:R1={﹤ai-1 ai﹥|ai-1,ai↔D,i=2,…,n}基本操作D:InitStack (SqStack *S);初始化一个空栈SStackEmpty(SqStack S);若栈S为空栈,则返回TRUE,否则返回FALSEPush(SqStack *S,SElemType *e );插入元素e为新的栈顶元素Pop(SqStack *S,SElemType *e);若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR}ADT Stack3、主程序void main(){ ALGraph f;printf("教学计划编制问题的数据模型为拓扑排序AOV-网结构。
\n");printf("以下为教学计划编制问题的求解过程:\n");printf("请输入学期总数:");scanf("%d",&xqzs);printf("请输入学期的学分上限:");scanf("%d",&xfsx);CreateGraph(&f);Display(f);TopologicalSort(f);}4、本程序只有两个模块,调用关系简单.主程序模块↓拓扑排序模块三、详细设计1、顶点、边、图类型#define MAX_VERTEX_NUM 100typedef int pathone[MAXCLASS];typedef int pathtwo[MAXCLASS];typedef enum{DG}GraphKind; /* {有向图,有向网,无向图,无向网} */typedef struct ArcNode{int adjvex; /* 该弧所指向的顶点的位置*/struct ArcNode *nextarc; /* 指向下一条弧的指针*/InfoType *info; /* 网的权值指针)*/}ArcNode; /* 表结点*/typedef struct{VertexType data; /* 顶点信息*/ArcNode *firstarc; /* 第一个表结点的地址,指向第一条依附该顶点的弧的指针*/ }VNode,AdjList[MAX_VERTEX_NUM]; /* 头结点*/typedef struct{AdjList vertices,verticestwo;int vexnum,arcnum; /* 图的当前顶点数和弧数*/int kind; /* 图的种类标志*/}ALGraph;2、图的基本操作int InitGraph(ALGraph &G);初始化邻接多重表,表示一个空图。
int LocateVex(ALGraph G,VertexType u);若G中存在顶点u,则返回该顶点在图中位置;否则返回-1。
Status CreateGraph(ALGraph *G);采用邻接表存储结构,构造没有相关信息的图G(用一个函数构造种图。
void Display(ALGraph G);输出图的邻接矩阵G。
void FindInDegree(ALGraph G,int indegree[]);求顶点的入度,算法调用。
Status TopologicalSort(ALGraph G);有向图G采用邻接表存储结构。
若G无回路,则输出G的顶点的一个拓扑序列并返回OK, 否则返回ERROR3、栈类型#define STACK_INIT_SIZE 10 /* 存储空间初始分配量*/#define STACKINCREMENT 2 /* 存储空间分配增量*/typedef struct SqStack{SElemType *base; /* 在栈构造之前和销毁之后,base的值为NULL */SElemType *top; /* 栈顶指针*/int stacksize; /* 当前已分配的存储空间,以元素为单位*/}SqStack; /* 顺序栈*/4、栈的基本操作Status InitStack(SqStack *S);初始化void ClearStack(SqStack *S);清空栈的操作Status StackEmpty(SqStack S);若栈S为空栈,则返回TRUE,否则返回FALSEStatus Pop(SqStack *S,SElemType *e);若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERRORStatus Push(SqStack *S,SElemType e);插入元素e为新的栈顶元素5、部分操作代码如下:int LocateVex(ALGraph G,VertexType u){ /* 初始条件: 图G存在,u和G中顶点有相同特征*//* 操作结果: 若G中存在顶点u,则返回该顶点在图中位置;否则返回-1 */int i;for(i=0;i<G.vexnum;++i)if(strcmp(u,G.vertices[i].data)==0)return i;return -1;}Status CreateGraph(ALGraph *G){ /* 采用邻接表存储结构,构造没有相关信息的图G(用一个函数构造种图) */int i,j,k;VertexType va,vb;ArcNode *p;printf("请输入教学计划的课程数: ");scanf("%d",&(*G).vexnum);printf("请输入拓扑排序所形成的课程先修关系的边数: ");scanf("%d",&(*G).arcnum);printf("请输入%d个课程的代表值(<%d个字符):\n",(*G).vexnum,MAX_NAME);for(i=0;i<(*G).vexnum;++i) /* 构造顶点向量*/{ scanf("%s",(*G).vertices[i].data);(*G).vertices[i].firstarc=NULL;}printf("请输入%d个课程的学分值(<%d个字符):\n",(*G).vexnum,MAX_NAME); for(i=0;i<(*G).vexnum;++i) /* 构造顶点向量*/{scanf("%s",(*G).verticestwo[i].data);}printf("请顺序输入每条弧(边)的弧尾和弧头(以空格作为间隔):\n");for(k=0;k<(*G).arcnum;++k) /* 构造表结点链表*/{ scanf("%s%s",va,vb);i=LocateVex(*G,va); /* 弧尾*/j=LocateVex(*G,vb); /* 弧头*/p=(ArcNode*)malloc(sizeof(ArcNode));p->adjvex=j;p->info=NULL; /* 图*/p->nextarc=(*G).vertices[i].firstarc; /* 插在表头*/(*G).vertices[i].firstarc=p;}return OK;}void Display(ALGraph G){ /* 输出图的邻接矩阵G */int i;ArcNode *p;switch(G.kind){case DG: printf("有向图\n");}printf("%d个顶点:\n",G.vexnum);for(i=0;i<G.vexnum;++i)printf("%s ",G.vertices[i].data);printf("\n%d条弧(边):\n",G.arcnum);for(i=0;i<G.vexnum;i++){p=G.vertices[i].firstarc;while(p){printf("%s→%s ",G.vertices[i].data,G.vertices[p->adjvex].data); p=p->nextarc;}printf("\n");}}void FindInDegree(ALGraph G,int indegree[]){ /* 求顶点的入度,算法调用*/int i;ArcNode *p;for(i=0;i<G.vexnum;i++)indegree[i]=0; /* 赋初值*/for(i=0;i<G.vexnum;i++){p=G.vertices[i].firstarc;while(p){ indegree[p->adjvex]++;p=p->nextarc;}}Status InitStack(SqStack *S){ /* 构造一个空栈S */(*S).base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!(*S).base)exit(OVERFLOW); /* 存储分配失败*/(*S).top=(*S).base;(*S).stacksize=STACK_INIT_SIZE;return OK;}void ClearStack(SqStack *S) //清空栈的操作{S->top=S->base;}Status StackEmpty(SqStack S){ /* 若栈S为空栈,则返回TRUE,否则返回FALSE */if(S.top==S.base)return TRUE;elsereturn FALSE;}Status Pop(SqStack *S,SElemType *e){ /* 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR */if((*S).top==(*S).base)return ERROR;*e=*--(*S).top;return OK;}Status Push(SqStack *S,SElemType e){ /* 插入元素e为新的栈顶元素*/if((*S).top-(*S).base>=(*S).stacksize) /* 栈满,追加存储空间*/{(*S).base=(SElemType *)realloc((*S).base,((*S).stacksize+STACKINCREMENT)*sizeof(SElemType));if(!(*S).base) exit(OVERFLOW); /* 存储分配失败*/(*S).top=(*S).base+(*S).stacksize;(*S).stacksize+=STACKINCREMENT;}*((*S).top)++=e;return OK;}Status TopologicalSort(ALGraph G){ /* 有向图G采用邻接表存储结构。