德州学院计算机系 2009级 数据结构课程设计 - 1 - 教学计划安排检验程序 一、选题背景 随着科学技术的发展,计算机技术在世界的每个角落得以运用与推广,其强大的功能已为人们深刻认识,利用计算机进行日常工作的管理也成为国家机关信息化的标志。同时,人们对计算机技术需求的增加,也促进了计算机新技术的发展。现如今,无论是小学、中学还是大学每学期都要面临教学计划安排的问题。然而学校的课程繁多,每所学校的课程也大不相同。给学生们安排课程成了老师的一项繁重而又难免的工作。虽然有软件可以实现课程的安排,但是大都需要购买,而且过程繁琐不好掌握。其实这项工作并没有想象中的那么难做,我们完全可以运用我们所学的知识让计算机来帮我们完成这项工作,体验计算机技术给我带来的高效、和快速。课程安排普遍的要求是:根据课程之间的依赖关系,在满足各学期课程数大致相同的条件下制定出课程安排计划。针对各大院校课程繁多课程安排难的问题,并且避免以往程序的繁琐和不易上手,我们从实际出发,充分运用我们所学的知识,根据不同学校的情况设计出《教学计划安排检验程序》。该程序可以根据用户输入的课程数、学期数、课程间的先后关系数目以及课程间两两间的先后关系,给出学生每学期应学的课程。该教学计划安排程序具有操作简单,功能完善,实用性强等特点,能很好的完成教学计划的检验。 二、运行环境(软、硬件环境) 软件环境: Microsoft Visual C++6.0。 硬件环境:CPU要求必须是Pentium166或更高的微处理器(或同级兼容处理器),内存至少需要 32MB,推荐使用64MB,最高 4GB,硬盘需要 2GB,自由硬盘空间至少为650MB,一个12倍速成以上的CD-ROM或 DVD-ROM驱动器,VGA或更高分辨率的显示器。 三、算法设计的思想 总体思想是利用拓扑排序的思想和堆栈思想编写相应函数。首先根据课程的先后关系画出 AOV网,网中的结点代表课程,有向边表示各学科之间的次序关系。可以采用邻接表作AOV网的存储结构,且在头结点中增加一个存放顶点入度的数组。为了避免重复检测入度为零的顶点,可另设一栈暂存所有入度为零的顶点。然后根据拓扑排序依次输出应学的课程。 编写的程序根据用户输入的课程数,学期数,课程间的先后关系数目以及课程间两德州学院计算机系 2009级 数据结构课程设计 - 2 - 两间的先后关系,实现输出每学期应学的课程的功能。 四、算法的流程图 拓扑排序: 开始 输入学期数,课程数,课程代表值...