教学计划编制问题课程设计Word版

合集下载

教学计划编制问题课程设计报告

教学计划编制问题课程设计报告

教学计划编制问题课程设计报告课程设计(论文)题目名称教学计划编制问题课程名称数据结构课程设计学生姓名学号系、专业信息工程系、通信工程类指导教师2012年12 月23 日摘要教学计划是学校保证教学质量和人才培养的关键,也是组织教学过程、安排教学过程、安排教学任务、确定教学编制的基本依据和课程安排的具体形式。

是稳定教学秩序、提高教学质量的重要保证。

从教学计划的设计、实施等方面,阐明了如何搞好教学管理,从而为提高教学质量提供保证。

随着教育改革的不断深入和社会发展的需要,原旧的教学计划在定位上的方向性偏差,已经不再适应社会的需求。

因此,应重视教学计划的改革和修订工作,以确保教育教学质量,提高教育教学水平。

教学计划编制中的思路:一是明确培养目标;二是注重学科设置的整体性、统一性和灵活性、全面性;三是与学分制改革有机结合。

教学计划是高校实施常规教学活动的基本管理文档,由于传统的手工编制方式存在诸多弊端,开发基于Web应用程序形式的教学计划编制系统具有很好的应用价值。

使用C程序设计语言,研究开发教学计划编制系统Web应用系统。

关键词:教学计划;编制;培养目标;管理目录1 问题描述 ---------------------------------------------------------------------------------------------- 12 需求分析 ---------------------------------------------------------------------------------------------- 23 概要设计 ------------------------------------------------------- 23.1抽象数据类型定义 ---------------------------------------- 2 3.2模块划分------------------------------------------------- 2 4 详细设计 ------------------------------------------------------- 34.1数据类型的定义 ------------------------------------------ 4 4.2主要模块的算法描述 -------------------------------------- 55 测试分析 ------------------------------------------------------- 86 课程设计总结 ------------------------------------------------- 106.1问题和解决的方法及经验教训、心得体会﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍106.2 致谢 ---------------------------------------------------- 11参考文献 -------------------------------------------------------- 11附录(源程序清单) --------------------------------------------- 121 问题描述大学的每个专业都要制定教学计划。

教学设计方案模板6篇word版

教学设计方案模板6篇word版

教学设计方案模板6篇word版第一篇:课堂讲授类教学目标:帮助学生了解和掌握某一特定知识点或技能。

教学内容:1. 知识点2. 相关例子和案例研究3. 练习题和讨论题教学步骤:1. 前导知识引入2. 知识点讲解与示范3. 学生练习与实践4. 解决问题和答疑5. 总结与复习教学评估与反馈:1. 课堂互动2. 练习与作业3. 检测与考试第二篇:实验教学类教学目标:培养学生实际操作以及实验设计的能力。

教学内容:1. 实验目的和原理2. 实验步骤3. 实验数据记录与分析4. 实验结果讨论与解释教学步骤:1. 实验预习与前导知识概述2. 实验操作演示3. 学生实际操作实验4. 数据处理与结果分析5. 实验总结和评估教学评估与反馈:1. 实验报告与数据分析2. 实验操作与讨论3. 实验成绩和表现第三篇:讨论和辩论类教学目标:培养学生的思辨和表达能力,促进学生之间的互动交流。

教学内容:1. 讨论话题或争议性问题2. 讨论规则和流程3. 学生观点表达和论证教学步骤:1. 话题介绍和背景知识讲解2. 小组或全班讨论3. 辩论角色分配和辩论赛4. 结论总结和反思教学评估与反馈:1. 参与讨论和辩论的活跃度2. 逻辑思维和表达能力3. 其他学生的评价第四篇:项目设计类教学目标:培养学生团队合作与创新能力,完成一个实际项目的设计和实施。

教学内容:1. 项目目标和需求2. 团队合作组织与分工3. 项目计划和预算4. 项目实施和成果展示教学步骤:1. 项目需求与背景介绍2. 团队组建与分工安排3. 项目计划和资源准备4. 项目实施和成果制作5. 项目展示与评估教学评估与反馈:1. 项目成果质量和效果2. 团队合作与分工情况3. 项目整体评估与反思第五篇:案例分析类教学目标:帮助学生通过现实案例来理解和应用学科知识。

教学内容:1. 案例背景和问题描述2. 分析方法和工具3. 解决方案和效果评估教学步骤:1. 案例触发与引入2. 学生小组讨论和分析3. 解决方案展示与讨论4. 案例效果评估和总结教学评估与反馈:1. 对案例分析的参与程度2. 分析方法和解决方案的准确性3. 案例效果评估和思考第六篇:实地考察类教学目标:通过实地参观和考察,帮助学生深入了解某一领域或现象。

教学设计模板word版

教学设计模板word版

教学设计模板word版一、课程名称:(适用大部分课程教案)二、授课对象本教案适用于XX年级的学生,学生应具备基本的XX知识和XX能力,以便更好地理解和掌握本节课的内容。

三、授课时间本节课共计XX分钟,其中教学活动、学生互动和练习各部分时间安排合理,以确保教学目标的实现。

四、授课教师由具有丰富教学经验和专业素养的XX老师进行授课。

五、教学目标1、知识与技能目标(1)学生能够掌握XX知识点的基本概念、原理和方法;(2)学生能够运用所学知识解决实际问题,提高XX技能;(3)学生能够通过课堂学习和练习,形成系统的知识结构。

2、过程与方法目标(1)学生通过自主探究、合作学习等方式,培养自主学习能力和团队协作精神;(2)学生能够运用批判性思维,对所学知识进行思考和质疑,提高解决问题的能力;(3)教师引导学生采用多种学习方法,提高学习效率。

3、情感态度价值观目标(1)培养学生对XX学科的兴趣和热情,激发学习积极性;(2)培养学生具有积极向上的人生态度,形成正确的价值观;(3)通过课堂讨论和互动,引导学生关注社会热点问题,提高社会责任感。

六、教学重占和难点1、教学重点(1)XX知识点的讲解与演示;(2)XX技能的训练与提高;(3)学生自主学习能力和团队协作精神的培养。

2、教学难点(1)XX知识点的深入理解和应用;(2)学生在解决问题过程中,对所学知识点的灵活运用;(3)对学生情感态度价值观的引导和培养。

后续部分内容(七至十二)可根据实际教学需求进行补充和完善。

本教案模板旨在提供一种详细且复杂的教学设计框架,以帮助教师更好地组织和开展教学工作。

七、教学过程1、导入新课(5分钟)- 教师通过引人入胜的问题、案例、故事或多媒体资源,吸引学生的注意力,激发学生的好奇心和学习兴趣。

- 提出与新课内容相关的问题,让学生思考,为新知识的引入做好铺垫。

- 通过回顾上一节课的知识点,自然过渡到本节课的学习内容。

2、新知讲授(20分钟)- 教师以清晰、生动的语言,结合PPT、实物演示等教学手段,对新知识点进行详细讲解。

课程设计模版word版.doc

课程设计模版word版.doc

课程设计模版word版.doc一、课程目标知识目标:1. 让学生掌握课程核心概念,如XXX(具体知识点),并能够准确理解和运用。

2. 通过对课程内容的深入学习,使学生能够掌握相关学科知识,形成知识体系。

技能目标:1. 培养学生运用XXX技能(如分析、计算、实验等),解决实际问题。

2. 提高学生的合作能力和沟通能力,通过小组讨论、展示等形式,促进学生之间的交流。

情感态度价值观目标:1. 培养学生对学科的兴趣和热爱,激发学习积极性,形成自主学习的能力。

2. 引导学生树立正确的价值观,认识到学习XXX知识对社会、国家的意义,培养学生的责任感。

课程性质:本课程注重理论与实践相结合,强调知识的应用性和实践性,培养学生解决实际问题的能力。

学生特点:1. 学生具备一定的XXX基础知识,但在实际应用中仍有困难。

2. 学生具有较强的求知欲和好奇心,喜欢探索新知识。

3. 学生在合作和沟通能力方面有待提高。

教学要求:1. 教师应注重启发式教学,引导学生主动探究,培养学生的学习兴趣。

2. 教师应关注学生的个体差异,因材施教,提高教学质量。

3. 教师应充分利用教学资源,创设情境,激发学生的学习积极性。

1. 掌握课程核心知识,形成知识体系。

2. 能够运用所学技能解决实际问题。

3. 增强合作和沟通能力,提升综合素质。

4. 培养学科兴趣,形成自主学习的能力。

5. 树立正确的价值观,具备一定的社会责任感。

二、教学内容1. 知识点讲解:- 章节一:XXX概念与性质- 内容:XXX的定义、特点、分类及应用。

- 章节二:XXX原理与公式- 内容:XXX的基本原理,相关公式及其推导过程。

2. 技能训练:- 实践环节一:XXX操作方法- 内容:XXX实际操作步骤,操作注意事项。

- 实践环节二:XXX问题解决- 内容:运用所学知识解决实际问题,提高学生动手能力。

3. 情感态度与价值观培养:- 情境创设:结合实际案例,展示XXX知识在现实生活中的应用。

word课程设计

word课程设计

word 课程设计一、教学目标本课程旨在让学生掌握Word的基本操作技能,包括文档的创建、编辑、格式设置、排版和打印等。

通过本课程的学习,学生将能够熟练使用Word处理日常学习、工作和生活中的文本资料,提高工作效率。

具体的教学目标如下:1.知识目标:(1)了解Word软件的界面布局和功能特点。

(2)掌握文档的基本操作,如创建、保存、打开和关闭。

(3)学会使用Word进行文本编辑,如字体设置、段落设置、查找和替换等。

(4)掌握文档的格式设置,如标题、目录、页眉页脚、页边距等。

(5)学会文档的排版技巧,如文本对齐、间距、列表、分页等。

(6)了解打印设置和打印预览功能。

2.技能目标:(1)能够独立完成文档的创建和编辑。

(2)能够根据需求设置文档的格式和排版。

(3)能够运用Word制作简单的报告、论文、简历等文档。

(4)能够熟练使用Word的查找和替换功能。

(5)能够进行文档的打印和输出。

3.情感态度价值观目标:(1)培养学生的信息素养,提高他们对计算机办公软件的认知和使用能力。

(2)培养学生勤奋学习、自主探究的学习态度。

(3)培养学生团队协作、共享成果的合作精神。

二、教学内容本课程的教学内容主要包括以下几个部分:1.Word软件的基本操作:文档创建、保存、打开和关闭。

2.文本编辑:字体设置、段落设置、查找和替换。

3.文档格式设置:标题、目录、页眉页脚、页边距。

4.文档排版:文本对齐、间距、列表、分页等。

5.打印设置和打印预览。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:教师讲解Word的基本操作和功能,引导学生掌握软件的使用方法。

2.案例分析法:通过分析实际案例,让学生学会运用Word解决实际问题。

3.实验法:学生在计算机上进行实际操作,巩固所学知识。

4.小组讨论法:学生分组讨论,共同完成任务,培养团队协作能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《Word入门与提高》。

Word课程设计模板

Word课程设计模板

Word课程设计模板一、教学目标本课程的教学目标是使学生掌握Word的基本操作技能,包括文档的创建、编辑、格式设置、插入图片和等,培养学生熟练运用Word软件进行文字处理和排版的能力。

1.了解Word软件的基本界面和功能。

2.掌握文档的基本操作,如创建、保存、打开和关闭。

3.学会编辑文本,包括复制、粘贴、删除和查找替换。

4.掌握设置字体、字号、颜色、段落格式等。

5.学会插入图片、和图表等。

6.能够独立创建和编辑Word文档。

7.能够设置文档的标题、段落格式和页边距等。

8.能够插入图片、和图表,并进行简单的排版。

9.能够运用Word软件完成日常的文字处理和排版任务。

情感态度价值观目标:1.培养学生对计算机技术的兴趣和好奇心,提高学生的信息技术素养。

2.培养学生勤奋学习、勇于探索的学习态度,培养学生的团队协作精神。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.Word软件的基本界面和功能介绍。

2.文档的基本操作,如创建、保存、打开和关闭。

3.编辑文本,包括复制、粘贴、删除和查找替换。

4.设置字体、字号、颜色、段落格式等。

5.插入图片、和图表等。

6.文档的排版技巧和实用操作。

第一课时:Word软件的基本界面和功能介绍第二课时:文档的基本操作第三课时:编辑文本第四课时:设置字体、字号、颜色、段落格式等第五课时:插入图片、和图表第六课时:文档的排版技巧和实用操作三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、操作演示法、案例分析法、小组讨论法等。

1.讲授法:用于讲解Word软件的基本界面和功能、文档的基本操作等理论知识。

2.操作演示法:通过实际操作演示,使学生掌握编辑文本、设置字体段落格式等操作技巧。

3.案例分析法:分析实际案例,使学生学会运用Word软件解决实际问题。

4.小组讨论法:分组讨论,培养学生的团队协作能力和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《Word实用教程》2.参考书:《Word高级应用指南》3.多媒体资料:Word软件操作视频教程、实际案例视频等4.实验设备:计算机、投影仪、白板等以上教学资源将帮助学生更好地掌握Word软件的操作技能,提高学生的文字处理和排版能力。

教学设计word模板

教学设计word模板

教学设计word模板一、课程名称:(适用大部分课程教案)二、授课对象年级:_______班学生类型:_______(例如:普通高中学生、职业高中学生等)学生特点:已掌握基本知识技能、具备初步的分析和解决问题的能力等。

三、授课时间课时:1课时时间分配:45分钟四、授课教师姓名:_______教龄:_______年教学特点:善于引导学生思考、注重实践操作等。

五、教学目标1、知识与技能目标(1)掌握课程相关的基本概念、原理和方法;(2)能够运用所学知识解决实际问题;(3)培养动手操作、团队协作等综合能力。

2、过程与方法目标(1)通过自主探究、小组合作等方式,培养学生的自主学习能力;(2)运用案例分析、实验演示等教学方法,提高学生的实践操作能力;(3)引导学生运用批判性思维、创新性思维等方法,提高解决问题的能力。

3、情感态度价值观目标(1)培养学生热爱学习、积极进取的精神风貌;(2)激发学生的求知欲、好奇心,培养对学科的兴趣;(3)引导学生树立正确的价值观,关注社会热点问题,提高社会责任感。

六、教学重占和难点1、教学重点(1)课程基本概念、原理的掌握;(2)实际问题的解决方法;(3)学生动手操作能力的培养。

2、教学难点(1)课程内容的深入理解;(2)解决问题的策略和方法;(3)学生自主学习、合作学习的组织与引导。

七、教学过程1、导入新课(5分钟)2、新知讲授(20分钟)3、合作探究(15分钟)4、巩固练习(10分钟)5、拓展延伸(5分钟)八、教学方法和手段九、课堂练习、作业与评价方式十、辅助教学资源与工具十一、结论十二、教学反思希望这个模板对您有所帮助!七、教学过程1、导入新课(5分钟)授课教师通过以下方式引导学生进入新课:- 回顾上节课的相关内容,提出与新课相关的问题,激发学生的思考;- 利用多媒体教学资源展示与新课程相关的图片、视频或音频,引起学生的兴趣;- 提出一个与新课程密切相关的现实问题或情景,引导学生进行预测或猜想,为新课的学习做好铺垫。

(word版)教学计划三篇

(word版)教学计划三篇

教学计划三篇教学计划篇1一、教学目标1.了解推理、证明的格式,理解判定定理的证法.2.掌握平行线的第二个判定定理,会用判定公理及定理进行简单的推理论证.3.通过第二个判定定理的推导,培养学生分析问题、进行推理的能力.4.使学生了解知识________于实践,又服务于实践,只有学好文化知识,才有解决实际问题的本领,从而对学生进行学习目的的教育.二、学法引导1.教师教法:启发式引导发现法.2.学生学法:积极参与、主动发现、发展思维.三、重点难点及解决办法(一)重点判定定理的推导和例题的解答.(二)难点使用符号语言进行推理.(三)解决办法1.通过教师正确引导,学生积极思维,发现定理,解决重点.2.通过教师指导,学生自行完成推理过程,解决难点及疑点.四、课时安排1课时五、教具学具准备三角板、投影仪、自制胶片.六、师生互动活动设计1.通过设计练习,复习基础,创造情境,引入新课.2.通过教师指导,学生探索新知,练习巩固,完成新授.3.通过学生自己总结完成小结.七、教学步骤(一)明确目标掌握平行线的第二个定理的推理,并能运用其进行简单的证明,培养学生的逻辑思维能力.(二)整体感知以情境创设,设计悬念,引出课题,以引导学生的思维,发现新知,以变式训练巩固新知.(三)教学过程创设情境,复习引入师:上节课我们学习了公理和一种判定方法,根据所学看下面的问题(出示投影).1.如图1所示,直线、被直线所截,如果,那么,为什么?2.如图2,如果,那么,为什么?图1图23.如图3,直线、被直线所截.(1)如果,那么,为什么?(2)如果,那么,为什么?4.如图4,一个弯形管道的拐角,,这时管道、平行吗?图3图4学生活动:学生口答第1、2题.师:你能说出有什么条件,就可以判定两条直线平行呢?学生活动:由第l、2题,学生思考分析,只要有同位角相等或内错角相等,就可以判定两条直线平行.教师将第3题图形画在黑板上.学生活动:学生口答理由,同角的`补角相等.师:要求学生写出符号推理过程,并板书.[板书]∵(已知),(邻补角定义),(同角的补角相等).(以备后面推导判定定理使用.)【教法说明】本节课是前一节课的继续,是在前一节课的基础上进行学习的,所以通过第1、2两题复习上节课所学平行线判定的两个方法,使学生明确,只要有同位角相等或内错角相等,就可以判定两条直线平行.第3题是为推导本节到定定理做铺垫,即如果同旁内角互补,则可以推出同位角相等,也可以推出内错角相等,为定理的推理论证,分散了难点.师:第4题是一个实际问题,题目中已知的两个角是什么位置关系角?学生活动:同分内角.师:它们有什么关系.学生活动:互补.师:这个问题就是知道同分内角互补了,那么两条直线是不是平行的呢?这就是这节课我们要研究的问题.[板书]2.5(2)师:请同学们看复习提问中的第3题,我们知道了与互补,那么,由此你还可以推出什么?根据什么?学生活动:学生思考、回答,还可以推出,这个推理的全过程就是:∵(已知),(邻补角定义),(同角的补角相等).(同位角相等,两直线平行.)(教师再加上这一步即可).由此你能得到什么结论?学生活动:学生思索后回答出,两条直线被第三条直线所截,如果同旁内角互补,那么这两条直线平行(学生语言不规范,注意纠正).师:也就是说,我们又得到了一种方法,我们把它简单说成:[板书]同旁内角互补,两直线平行.【教法说明】由于复习引入第3题为定理的推导做好了铺垫,所以学生并不难接受推理过程,放手由学生总结出判定方法,注意培养学生的归纳总结能力,另外在叙述判定方法时,训练学生用准确、规范的几何语言.师:请同学们思考,刚才我们由同旁内角互补,推导两条直线平行,除了上面的推理过程,有没有其他途径?怎样写推理格式?学生活动:学生思考,对照复习提问第3题的第2问很快地找到另一种途径,并在练习本上写出推理格式,找一个学生在原来黑板上的板书基础上完成.【教法说明】通过使用不同种方法的推理,不仅开拓学生思维,同时也能够让学生尽可能地使用推理,从而使学生掌握推理格式的书写.尝试反过,巩固练习教学计划篇2美工区活动计划:立体纸工一、活动由来:1、从孩子的兴趣出发:幼儿爱动手制作,对制作非常感兴趣。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息与电气工程学院课程设计说明书(2015/2016学年第一学期)课程名称:软件算法分析与设计题目:教学计划编制专业班级:计算机1401学生姓名:李丹丹学号: 140210132指导教师:陈丽设计周数:一周设计成绩:2016年1月13日目录一、课题的主要功能 (1)1.1程序的功能 (1)1.2.输入输出的要求 (1)1.3运行环境 (1)1.4开发工具 (1)二、概要设计 (2)2.1程序的模块组成 (2)2.2模块的层次结构及调用关系 (2)2.3模块的主要功能 (3)2.4数据结构和数据库结构 (3)三.主要功能的实现 (3)3.1采用C语言定义相关的数据类型。

(3)3.2主要函数的流程图 (4)3.3画出各函数的调用关系图 (11)四、程序调试 (12)4.1测试数据: (12)4.2使用说明 (13)五.心得体会 (14)六、附录 (15)6.1参考书目 (15)6.2源程序清单(带注释) (16)一、课题的主要功能1.1程序的功能大学的每个专业都要制订教学计划。

假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。

每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。

每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。

每门课恰好占一个学期。

试在这样的前提下设计一个教学计划编制程序。

本程序针对本科的学期内容,通过输入实际的课程及先后关系。

结合每学期的学分及课程数,制定好学习计划。

在输入相关数据后,程序会安排好每学期的课程。

1.2.输入输出的要求输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

输出要求输出各门课程所对应的学分,以及每学期各门课程的安排。

1.3运行环境1. WINDOWS 7系统2. Vc++6.0编译环境1.4开发工具C语言二、概要设计2.1所负责的程序的模块LocateVex():图的邻接表存储的基本操作CreateGraph():构造生成树Display():输出图的邻接矩阵FindInDegree():求顶点的入度2.2模块的层次结构及调用关系2.3模块的主要功能见“详细设计”-“主要函数流程图”2.4数据结构和数据库结构储存的数据为结构体类型数组,以及结构体单链表结点类型。

1 typedef struct ArcNode2 typedef struct三.主要功能的实现3.1采用C语言定义相关的数据类型。

其中包括字符常量,整型,字符型,字符串型,typedef 定义的类型,结构体型,单链表节点类型,结构体数组。

3.2主要函数的流程图1.LocateVex():图的邻接表存储的基本操作。

由初始条件: 图G存在,u和G中顶点有相同特征转而进行判断,若G中存在顶点u,则返回该顶点在图中位置;否则返回-1。

2.CreateGraph():构造生成图。

采用邻接表存储结构,构造没有相关信息的图G(用一个函数构造种图)。

3.Display():输出图的邻接矩阵。

采用循环设置输出图的邻接矩阵。

4.FindInDegree():求顶点的入度。

所负责的部分程序:/* 图的邻接表存储的基本操作*/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; } } }3.3画出各函数的调用关系图四、程序调试4.1测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。

数据如下:学期总数:6;学分上限:10;该专业共开设课数:12课程号:从C01到C12;学分顺序:2,3,4,3,2,3,4,4,7,5,2,3。

先修顺序(有向图表示):4.2使用说明输入学期总数,学分上限,课程数,先修关系边数输入课程代表符号:输入相对学分值:回车,将显示顶点的个数和弧的条数输入完成后执行可得到每个学期的课程计划结果五.总结体会虽这门课程让我从C语言基础再深入的了解了软件开发的复杂性。

对以往模糊的经验,起了总结提升的作用。

在学习了这门课程后,我们进行了1个星期的课程设计,来实践我们所学这门课的内容。

由于程序十分的复杂,遇到了很多常见的语法错误,及逻辑错误。

这需要我们不断的调试分析。

符号的格式之类,指针的用法,判断输入输出的条件都是十分容易出错的地方。

在逐条排除,向同学老师请教后,程序终于得以完成。

这让我明白了,解决问题,要细心认真,集思广益,这样才能把问题解决。

六、附录6.1参考书目1 黄同成,黄俊民,董建寅.数据结构[M].北京:中国电力出版社,20082 董建寅,黄俊民,黄同成.数据结构实验指导与题解[M].北京:中国电力出版社,20083 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,20024 唐策善,李龙澍,黄刘生.数据结构—用C语言描述[M].北京:高等教育出版社,20016.2源程序清单(带注释)#include<string.h>#include<ctype.h>#include<malloc.h> // malloc()等#include<limits.h> // INT_MAX等#include<stdio.h> // EOF(=^Z或F6),NULL#include<stdlib.h> // atoi()52#include<io.h> // eof()#include<math.h> // floor(),ceil(),abs()#include<process.h> // exit()#include<iostream.h> // cout,cin// 函数结果状态代码#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSE#define MAX_NAME 10/* 顶点字符串的最大长度*/#define MAXCLASS 100int Z=0;int X=0;int xqzs,q=1,xfsx;typedef int InfoType;typedef char VertexType[MAX_NAME]; /* 字符串类型*//* 图的邻接表存储表示*/#define MAX_VERTEX_NUM 100typedef 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;/* 图的邻接表存储的基本操作*/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;}}}typedef int SElemType; /* 栈类型*//*栈的顺序存储表示*/#define STACK_INIT_SIZE 10 /* 存储空间初始分配量*/#define STACKINCREMENT 2 /* 存储空间分配增量*/typedef struct SqStack{SElemType *base; /* 在栈构造之前和销毁之后,base的值为NULL */SElemType *top; /* 栈顶指针*/int stacksize; /* 当前已分配的存储空间,以元素为单位*/}SqStack; /* 顺序栈*//* 顺序栈的基本操作*/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;}typedef int pathone[MAXCLASS];typedef int pathtwo[MAXCLASS];Status TopologicalSort(ALGraph G){ /* 有向图G采用邻接表存储结构。

相关文档
最新文档