数据结构课程设计--教学计划安排系统

数据结构课程设计--教学计划安排系统

ID:9667857

大小:327.60 KB

页数:23页

时间:2018-05-05

数据结构课程设计--教学计划安排系统_第1页
数据结构课程设计--教学计划安排系统_第2页
数据结构课程设计--教学计划安排系统_第3页
数据结构课程设计--教学计划安排系统_第4页
数据结构课程设计--教学计划安排系统_第5页
资源描述:

《数据结构课程设计--教学计划安排系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、教学单位计算机科学与技术学生学号数据结构课程设计报告书题  目 教学计划安排系统学生姓名 专业名称 计算机科学与技术(软件工程)指导教师 李志敏吴先飞   课程设计评分评分标准得分1、内容完整性(20分)2、报告撰写规范性(10分)3、问题描述正确性(10分)4、设计合理与有效性(10分)5、程序代码编写规范性(20分)6、程序运行正确性(10分)7、屏幕提示信息准确与充分性(10分)8、测试过程充分性与正确性(10分)合计平时成绩(30%):课程设计报告成绩(70%):总成绩:评阅人签名:目录一、课程设计的目的4二、设计的内容与要求4三、总体

2、设计4四、详细设计5五、调试与测试15六、课程设计的总结17一、课程设计的目的1.巩固和加深学生对C语言课程的基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力二.设计的内容与要求要建立一个图,因而要输入图的结点数和边数以及图的每一个结点的名称,要对所输入课程进行排课,因而要确定每一个结点的入度是否为零,并且将入度为零的结点分别进栈再出栈,再进另一个栈,最后出栈,最后实现对所输入的课程进行排课三.总体设计(1)该教学计划安排系统分为6个

3、模块1.建立图2.栈的初始化3.出栈4.进栈5求结点的入度6拓扑排序(2)算法描述(此程序中所包含的函数)1.主函数main():调用CreateALGraph(G)函数和TopologicalSort(G)函数。2.CreateALGraph()函数:从键盘上输入所需要的值,并对每一个结点的*firstarc赋值为NULL。3.InitStack()函数:将栈分配存储空间,并对top和base赋值。4.Push()函数:进满足条件的元素压入栈中,并改变top指针的值5.Pop()函数:开始判断栈中的top和base指针是否相等,若相等则返回,

4、否则进行出栈操作。6.StackEmpty()函数:通过判断栈是否为空来返回相应的值。7.FindInDegree()函数:通过循环求出每一个结点的入度8.TopologicalSort()函数:通过拓扑排序将相应的课程给输出来四.详细设计数据的组织描述(比如主要的变量类型,结构体等等),模块之间的参数设计(接口设计,模块的功能说明),系统控制流程图,各个模块的流程图,采用的算法typedefstruct{SElemType*base;//在栈构造之前和销毁之后,base的值为NULLSElemType*top;//栈顶指针intstacksi

5、ze;//当前已分配的存储空间,以元素为单位}SqStack;typedefstructArcNode{intadjvex;//该弧所指向的顶点的位置structArcNode*nextarc;//指向第一条依附该顶点的弧的指针}ArcNode;typedefstructVNode{chardata[10];ArcNode*firstarc;}AdjList[max_vertex_num];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph;1.主函数模块定义一

6、个图的变量,调用CreateALGraph(G)函数,和TopologicalSort(G)函数。2.创建图的模块从键盘上输入学期数,再输入课程数目(即结点数)和课程之间的关系数(即边数),并把指向第一条依附该顶点的弧的指针赋值为NULL,同时把每一个结点所指向的其他结点形成一个链表。为NULL。3栈的初始化模块使栈中base指针分配一定的存储空间,并使栈中top指针指向base指针。4.栈的进栈模块先开始判断这个栈是否为满,若满了,则重新分配一定的存储空间,栈中的top指针重新赋值之后,再使该元素进栈,并使top指针指向下一位。5.栈的出栈模

7、块判断栈的top指针和base指针是否相等,若相等则为空,否则不为空。6.栈空的模块通过判断栈的top指针和base指针是否相等,来返回相应的值7.求结点的入度模块对每一个结点已经形成了一个链表进行查找,若发现有一个结点指向另一个结点,就把另一个结点的入度加1,直到循环结束8.拓扑排序模块首先对栈进行初始化,然后找出结点的入度为零的结点,若入度为零,则进栈。当是S1不为空时,就将栈中的S1进行出栈操作,并把序号所对应的结点给输出来。与此同时,把结点所对应的序号压入栈S2,同时将count加1,并判断栈S2是否为空,若不为空,则把栈S2中的元素进

8、行出栈操作,并把该结点所形成的链表中每一个结点的入度减一,若减之后,就把该结点的序号压入栈S1。如此循环,直到该循环结束图(1)是CreateALGr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。