教学计划安排检验程序数据结构课程设计报告.docVIP

教学计划安排检验程序数据结构课程设计报告.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教学计划安排检验程序数据结构课程设计报告

教学计划安排检验程序 一、选题背景 随着科学技术的发展,计算机技术在世界的每个角落得以运用与推广,其强大的功能已为人们深刻认识,利用计算机进行日常工作的管理也成为国家机关信息化的标志。同时,人们对计算机技术需求的增加,也促进了计算机新技术的发展。现如今,无论是小学、中学还是大学每学期都要面临教学计划安排的问题。然而学校的课程繁多,每所学校的课程也大不相同。给学生们安排课程成了老师的一项繁重而又难免的工作。虽然有软件可以实现课程的安排,但是大都需要购买,而且过程繁琐不好掌握。其实这项工作并没有想象中的那么难做,我们完全可以运用我们所学的知识让计算机来帮我们完成这项工作,体验计算机技术给我带来的高效、和快速。课程安排普遍的要求是:根据课程之间的依赖关系,在满足各学期课程数大致相同的条件下制定出课程安排计划。针对各大院校课程繁多课程安排难的问题,并且避免以往程序的繁琐和不易上手,我们从实际出发,充分运用我们所学的知识,根据不同学校的情况设计出《教学计划安排检验程序》。该程序可以根据用户输入的课程数、学期数、课程间的先后关系数目以及课程间两两间的先后关系,给出学生每学期应学的课程。该教学计划安排程序具有操作简单,功能完善,实用性强等特点,能很好的完成教学计划的检验。 二、运行环境(软、硬件环境) 软件环境: Microsoft Visual C++6.0。 硬件环境:CPU要求必须是Pentium166或更高的微处理器(或同级兼容处理器)内存至少需要32MB,推荐使用64MB,最高4GB硬盘需要2GB,自由硬盘空间至少为650MB一个12倍速成以上的CD-ROM或DVD-ROM驱动器VGA或更高分辨率的显示器。 编写的程序根据用户输入的课程数,学期数,课程间的先后关系数目以及课程间两两间的先后关系,实现输出每学期应学的课程的功能。 四、算法的流程图 拓扑排序: 五、算法设计分析 拓扑排序时有向图的一种重要运算。在课表排序中,每门课都有多种关系:、 (一)先后关系,即必须在一门课学完后,才能开始学习另一门课; (二)在一类课之间没有次序要求,即两门课可以同时学习,互不影响。将AOV网络中的各个顶点排列成一个线性有序序列,使得所有的要求的前趋、后趋关系都能得到满足。 在AOV网络进行拓扑排序的方法: 中选择一个没有前趋的顶点,并把它输出; 从网络中删去该顶点和从该顶点出发的所有有向边; 重复执行上述两步,直到网中所有的顶点都被输出。 六、源代码 #includemalloc.h #includestdio.h #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define STACK_INIT_SIZE 100 //存储空间初始分配量 #define STACKINCREMENT 10 //存储空间分配增量 #define MAX_VERTEX_NUM 20 typedef int Status; typedef int SElemType; typedef struct { SElemType *base; //在栈构造之前和销毁之后,base的值为NULL SElemType *top; //栈顶指针 int stacksize; //当前已分配的存储空间,以元素为单位 }SqStack; typedef struct ArcNode{ int adjvex;//该弧所指向的顶点的位置 struct ArcNode *nextarc;//指向第一条依附该顶点的弧的指针 }ArcNode; typedef struct VNode{ char data[10]; ArcNode *firstarc; }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum;//图的当前顶点数和弧数 }ALGraph; int indegree[20]={0}; //存储图的入度的全局变量数组 Status InitStack(SqStack S) { //构造一个空栈S S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base) return ERROR;//内存分配失败 S.top=S.base; S.stacksize=STACK_INIT_SIZE; return OK; }//InitStack Status Push(SqStack S,SElemType e) { //插入元素e为新的栈顶元素 if(S.top-S.base=S.

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档