5 图的应用.doc_第1页
5 图的应用.doc_第2页
5 图的应用.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10.5.2 教学计划编排一问题描述 大学中的每个专业都有几十门基础课程、专业课程及选修课程,学生必须分几个学期完成这些课程才能毕业。教学计划的制定就是合理的编排这些课程,使得学生能够顺利的进行学习。这些课程中,有些课程是独立于其它课程的基础课,有些课程却需要其它先行课程;一般四年制本科教学前7个学期(三年半)进行理论课程的学习,第8个学期实习;教学计划的编排必须充分考虑这些因素。二基本要求假定学习年限是固定的,每学年包含两个学期,各专业开设的课程是确定的,每门课程是否有先修课、有几门先修课也是确定的。要求制定教学计划,合理的安排各学期开授的课程。要求各学期课程门数、学分的分布较均匀。三提示与分析1这是一个拓扑排序的问题。首先要确定该专业开设的所有课程,课程之间的先修关系,每门课程的学分。构造AOV网,以顶点表示课程,以有向边表示先修关系,若课程a是课程b的先修课,则必存在有向边。在排课时,必须保证在学习某课程之前,已经学习了这门课程所有的选修课。2AOV网的存储方式。采用邻接表存储邻接表,为拓扑排序算法的实现,在邻接表的顶点结点中增加一个入度域。define MaxVerNum 100 /*最大顶点数为100*/边表的结点结构可描述为:typedef struct node int adjvex; /*邻接点域*/struct node *next; /*指向下一个邻接点的指针域*/EdgeNode; /*边表结点*/顶点表的结点结构可描述为:typedef struct vnode /*顶点表结点*/int num; /*课程号*/char name; /*课程名*/int chour; /*课程的学分*/int indegree /*顶点的入度*/EdgeNode * firstedge; /*边表头指针*/VNode; AOV网的类型可描述如下:typedef structVNode AdjListMaxVertexNum; /*邻接表*/int n, e; /*顶点数和边数*/AOVGraph; /*AOV网是以邻接表方式存储的类型*/3请参照教材6.5.2节中介绍的拓扑排序算法,构造拓扑序列。考虑到要求各学期的课程的门数、学分分布较均匀,采用某种策略将课程分布到各学期:如可以计算出所有课程的总学分,由此得到每学期的平均学分;计算出所有课程的门数,得到每学期的平均门数;以每学期的平均学分和平均门数为参照,排各学期的课程时,使得每学期的课程学分及门数接近平均学分和平均门数。4教学计划的输出。可以将教学计划输出到用户制定的文件中,同时,也可制定合适的表格,在屏幕显示。四测试数据请读者采用自己所学专业四个学年的课程作为测试数据。五选作内容1某些课程要求被排在某个或某几个学期,如计算机导论应排在第1学期,高等数学需要排在第1、2学期,英语需要排在第1、2、3、4学期等等;请修改算法满足此要求。2产生多种编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论