- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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指针是否相等,来返回相应的
您可能关注的文档
- 机械原理课程设计_____压片成形机.doc
- 基础土方开挖工程施工设计方案.doc
- 基于.555组成单稳态触发器的触摸控制灯的设计说明书.doc
- 基站天线基础知识的介绍(经典版).ppt
- 激光调Q原理与技术.ppt
- 假体周围感染诊疗策略分析.ppt
- 架空杆路施工规范标准.doc
- 简约风格大气主题PPT模板(174).ppt
- 简约卡通风格垃圾分类宣传PPT模板.ppt
- 建筑施工现场安全防护工程施工设计方案.doc
- 2025届衡阳市第八中学高三一诊考试物理试卷含解析.doc
- 2025届湖南省娄底市双峰一中等五校重点中学高三第二次诊断性检测物理试卷含解析.doc
- 天水市第一中学2025届高三第二次联考物理试卷含解析.doc
- 2025届金华市重点中学高三考前热身物理试卷含解析.doc
- 2025届北京市石景山区第九中学高三第四次模拟考试物理试卷含解析.doc
- 江苏扬州市2025届高三第一次模拟考试物理试卷含解析.doc
- 2025届江苏省南通市高级中学高考物理五模试卷含解析.doc
- 广东省清远市华侨中学2025届高三第一次调研测试物理试卷含解析.doc
- 辽宁省凤城市2025届高三第五次模拟考试物理试卷含解析.doc
- 内蒙古巴彦淖尔市重点中学2025届高考仿真卷物理试卷含解析.doc
文档评论(0)