计算机科学与技术学院实验课?/p>
实验报告
实验课名称:数据结构与程序设计实?/p>
实验名称:教学计划编制问?/p>
实验类型:设计性实?/p>
班级?/p>
学号?/p>
姓名?/p>
时间?/p>
一、问题描?/p>
教学计划编制的主要任务是根据需要完成的课程的先修关系?/p>
每学期开设的课程总数?/p>
总的学习时间,制定出教学计划。需事先的基本功能如下?/p>
?/p>
课程进修目录的读入?/p>
?/p>
课程进修目录的编辑,如课程增加、删除、信息修改等?/p>
?/p>
满足一定条件的教学计划的输出?/p>
②设计要?/p>
?/p>
设学期总数不超?/p>
8
?/p>
课程总数不超?/p>
5
?/p>
设计一份课程进修单?/p>
包括?/p>
学期总数?
一学期的学分上限、每门课的课程编号、学分和直接先修课程的课程号?/p>
?/p>
实现上述基本功能?/p>
?/p>
按各学期中的学习负担尽量均匀地制定教学计划?/p>
?/p>
按尽可能短的时间完成学习,制定教学计划?/p>
?/p>
如果无解,报告适当信息?/p>
测试样例的关系图如下图所示:
C1
C2
C3
C4
C5
C9
C11
C10
C12
C6
C8
C7
C13
C14
二、数据结构设?/p>
程序中建立的抽象数据类型有以下几种:
1.
由测试样例的关系图可以看出课程之间的关系是非线性且有序的,
可以用有向图来描
述?/p>
在对图中所存储的课程进行排序时?/p>
使用拓扑排序可以得到所需顺序?/p>
而拓扑排序可?/p>
用顶点入度为
0
的方法实现,所以为实现拓扑排序的顶点的存放,创建一个线性表来存放?/p>
2.
有向图的每个结点都代表一门课程,
需要描述的属性有课程名,
课程编号和对应的?/p>
分,程序中用结构体描述?/p>
typedef struct
{
AdjList
vertices,vertices2,vertices3;
//
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
学分?/p>