网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构课程设计排课系统_副本.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . . 教学单位计算机科学与技术 学生学号 数据结构 课程设计报告书 题   目 教学计划安排系统 学生姓名  专业名称 计算机科学与技术(软件工程) 指导教师 李志敏 吴先飞    课程设计评分 评分标准 得分 1、内容完整性(20分) 2、报告撰写规范性(10分) 3、问题描述正确性(10分) 4、设计合理与有效性(10分) 5、程序代码编写规范性(20分) 6、程序运行正确性(10分) 7、屏幕提示信息准确与充分性(10分) 8、测试过程充分性与正确性(10分) 合计 平时成绩(30%): 课程设计报告成绩(70%): 总 成 绩: 评阅人签名: 目录 TOC \o 3-3 \u 一、 课程设计的目的 4 二、 设计的内容与要求 4 三、 总体设计 4 四、 详细设计 5 五、 调试与测试 15 六、 课程设计的总结 17 课程设计的目的 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二.设计的内容与要求 要建立一个图,因而要输入图的结点数和边数以及图的每一个结点的名称,要对所输入课程进行排课,因而要确定每一个结点的入度是否为零,并且将入度为零的结点分别进栈再出栈,再进另一个栈,最后出栈,最后实现对所输入的课程进行排课 总体设计 (1)该教学计划安排系统分为6个模块 1.建立图 2.栈的初始化 3.出栈 进栈 5求结点的入度 6拓扑排序 算法描述(此程序中所包含的函数) 主函数main():调用 CreateALGraph(G)函数和TopologicalSort(G)函数。 2.CreateALGraph()函数:从键盘上输入所需要的值,并对每一个结点的*firstarc赋值为NULL。 3.InitStack()函数:将栈分配存储空间,并对top和base赋值。 4.Push()函数: 进满足条件的元素压入栈中,并改变top指针的值 5. Pop()函数:开始判断栈中的top和base指针是否相等,若相等则返回,否则进行出栈操作。 6.StackEmpty()函数:通过判断栈是否为空来返回相应的值。 7.FindInDegree()函数:通过循环求出每一个结点的入度 8.TopologicalSort()函数:通过拓扑排序将相应的课程给输出来 四.详细设计 数据的组织描述(比如主要的变量类型,结构体等等),模块之间的参数设计(接口设计,模块的功能说明),系统控制流程图,各个模块的流程图,采用的算法 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; }AdjList[max_vertex_num]; typedef struct { AdjList vertices; int vexnum,arcnum;//图的当前顶点数和弧数 }ALGraph; 主函数模块 定义一个图的变量,调用CreateALGraph(G)函数,和TopologicalSort(G)函数。 2.创建图的模块 从键盘上输入学期数,再输入课程数目(即结点数)和课程之间的关系数(即边数),并把指向第一条依附该顶点的弧的指针赋值为NULL,同时把每一个结点所指向的其他结点形成一个链表。 为NULL。 3栈的初始化模块 使栈中base指针分配一定的存储空间,并使栈中top指针指向base指针。 4.栈的进栈模块 先开始判断这个栈是否为满,若满了,则重新分配一定的存储空间,栈中的top指针重新赋值之后,再使该元素进栈,并使top指针指向下一位。 栈的出栈模块 判断栈的top指针和base指针是否相等,若相等则为空,否则不为空。 栈空的模块 通过判断栈的top指针和base指针是否相等,来返回相应的

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档