欢迎来到天天文库
浏览记录
ID:31383985
大小:349.50 KB
页数:13页
时间:2019-01-09
《教学计划安排检验程序数据结构课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、德州学院计算机系2009级数据结构课程设计教学计划安排检验程序一、选题背景随着科学技术的发展,计算机技术在世界的每个角落得以运用与推广,其强大的功能已为人们深刻认识,利用计算机进行日常工作的管理也成为国家机关信息化的标志。同时,人们对计算机技术需求的增加,也促进了计算机新技术的发展。现如今,无论是小学、中学还是大学每学期都要面临教学计划安排的问题。然而学校的课程繁多,每所学校的课程也大不相同。给学生们安排课程成了老师的一项繁重而又难免的工作。虽然有软件可以实现课程的安排,但是大都需要购买,而且过程繁琐不好掌握。其实这项工作并没有想象中的那么难做,我们完全可以运用我们所学的知识让计算机来帮我
2、们完成这项工作,体验计算机技术给我带来的高效、和快速。课程安排普遍的要求是:根据课程之间的依赖关系,在满足各学期课程数大致相同的条件下制定出课程安排计划。针对各大院校课程繁多课程安排难的问题,并且避免以往程序的繁琐和不易上手,我们从实际出发,充分运用我们所学的知识,根据不同学校的情况设计出《教学计划安排检验程序》。该程序可以根据用户输入的课程数、学期数、课程间的先后关系数目以及课程间两两间的先后关系,给出学生每学期应学的课程。该教学计划安排程序具有操作简单,功能完善,实用性强等特点,能很好的完成教学计划的检验。二、运行环境(软、硬件环境)软件环境:MicrosoftVisualC++6.0
3、。硬件环境:CPU要求必须是Pentium166或更高的微处理器(或同级兼容处理器),内存至少需要32MB,推荐使用64MB,最高4GB,硬盘需要2GB,自由硬盘空间至少为650MB,一个12倍速成以上的CD-ROM或DVD-ROM驱动器,VGA或更高分辨率的显示器。三、算法设计的思想总体思想是利用拓扑排序的思想和堆栈思想编写相应函数。首先根据课程的先后关系画出AOV网,网中的结点代表课程,有向边表示各学科之间的次序关系。可以采用邻接表作AOV网的存储结构,且在头结点中增加一个存放顶点入度的数组。为了避免重复检测入度为零的顶点,可另设一栈暂存所有入度为零的顶点。然后根据拓扑排序依次输出应学
4、的课程。编写的程序根据用户输入的课程数,学期数,-13-德州学院计算机系2009级数据结构课程设计课程间的先后关系数目以及课程间两两间的先后关系,实现输出每学期应学的课程的功能。四、算法的流程图拓扑排序:开始输入学期数,课程数,课程代表值,课程相互关系数,课程两两先后关系学期数<=8,课程数<=20拓扑排序输出相应课程结束否是-13-德州学院计算机系2009级数据结构课程设计开始输入入度,定点数,已输出顶点数已输出定点数<顶点数入度=0顶点入栈栈非空输出顶点顶点数减1顶点入度减1累加已输出顶点数结束是否否是是-13-德州学院计算机系2009级数据结构课程设计五、算法设计分析拓扑排序时有向图
5、的一种重要运算。在课表排序中,每门课都有多种关系:、(一)先后关系,即必须在一门课学完后,才能开始学习另一门课;(二)在一类课之间没有次序要求,即两门课可以同时学习,互不影响。将AOV网络中的各个顶点排列成一个线性有序序列,使得所有的要求的前趋、后趋关系都能得到满足。在AOV网络进行拓扑排序的方法:(一)中选择一个没有前趋的顶点,并把它输出;(二)从网络中删去该顶点和从该顶点出发的所有有向边;(三)重复执行上述两步,直到网中所有的顶点都被输出。六、源代码#include"malloc.h"#include"stdio.h"#defineOK1#defineERROR0#defineTRUE
6、1#defineFALSE0#defineSTACK_INIT_SIZE100//存储空间初始分配量#defineSTACKINCREMENT10//存储空间分配增量#defineMAX_VERTEX_NUM20typedefintStatus;typedefintSElemType;typedefstruct{SElemType*base;//在栈构造之前和销毁之后,base的值为NULLSElemType*top;//栈顶指针intstacksize;//当前已分配的存储空间,以元素为单位}SqStack;typedefstructArcNode{intadjvex;//该弧所指向的顶
7、点的位置-13-德州学院计算机系2009级数据结构课程设计structArcNode*nextarc;//指向第一条依附该顶点的弧的指针}ArcNode;typedefstructVNode{chardata[10];ArcNode*firstarc;}VNode,AdjList[MAX_VERTEX_NUM];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点
此文档下载收益归作者所有