算法课程设计25316

算法课程设计25316

ID:26207606

大小:238.00 KB

页数:13页

时间:2018-11-25

算法课程设计25316_第1页
算法课程设计25316_第2页
算法课程设计25316_第3页
算法课程设计25316_第4页
算法课程设计25316_第5页
资源描述:

《算法课程设计25316》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、课程设计目的本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。二、课程

2、设计内容[问题描述]针对计算机系本科课程,依据其相互依赖关系制定课程安排计划,其相互依赖关系如下图所示,并要求各学期课程数目大致相同且搭配适当。[基本要求](1)求解上图的拓扑排序结果。(2)上述课程在4学期上完,要求每学期上课的门数大致一样。[实现提示]在拓扑排序基础上作适当修改。三、课程设计过程1.需求分析根据课程之间的依赖关系制定课程安排计划,输入课程数及课程之间的关系,需要利用代码实现排序,以及对各个学期安排进行排序和输出。2.概要设计首先利用拓扑排序对课程先后顺序进行分析,邻接表为主要存储结构,对课程进行拓扑排序。为了实现上述程序功能,需要定义

3、邻接表表的抽象数据类型:#include"stdio.h"//输入输出#include"stdlib.h"//标准库#definemax_vertax_num20//表结点typedefstructnode{intadjvex;structnode*next;}nodetype;//表头结点typedefstructfrontnode{intdata;intd;structnode*next;}frontnodetype,adjlist[max_vertax_num];3.详细设计实现概要设计中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他

4、模块也都需要写出伪码算法。StatusCreateGraph(ALGraph*G)(伪码算法)intLocateVex(ALGraphG,VertexTypeu)(伪码算法)voidDisplay(ALGraphG)(伪码算法)StatusTopologicalSort(ALGraphG)(伪码算法)4.调试分析(略)5.用户使用说明使用VC++,打开教学计划编制问题代码,接着编译,无错误,然后执行该文件,然后编译,根据相关提示输入相关信息,结果截屏出来。6.测试结果1.上图的拓扑排序结果。2.上述课程在4学期上完,要求每学期上课的门数大致一样。7.附录

5、求解上图的拓扑排序结果。源程序代码#include"stdio.h"//输入输出#include"stdlib.h"//标准库#definemax_vertax_num20//表结点typedefstructnode{intadjvex;structnode*next;}nodetype;//表头结点typedefstructfrontnode{intdata;intd;structnode*next;}frontnodetype,adjlist[max_vertax_num];//图的定义typedefstruct{adjlistvertices;in

6、tvexnum,arcnum;intkind;}algraph;//algraphcreatelist(){inti,j,k;nodetype*p;algraphg;printf("请输入顶点数和弧数:");scanf("%d%d",&g.vexnum,&g.arcnum);printf("请输入顶点信息:");for(i=1;i<=g.vexnum;++i){scanf("%d,%d",&g.vertices[i].data,&g.vertices[i].d);g.vertices[i].next=NULL;}printf("请输入表示弧

7、,vj>的顶点序号i,j:");for(k=1;k<=g.arcnum;++k){scanf("%d,%d",&i,&j);p=(nodetype*)malloc(sizeof(nodetype));p->adjvex=j;p->next=g.vertices[i].next;g.vertices[i].next=p;}returng;}//创建拓扑排序inttoposort(algraph&g,intn){inti,j,k,m=0;inttop=0;nodetype*p;for(i=1;i<=n;i++)if(g.vertices[i].d==0)

8、{g.vertices[i].d=top;top=i;}while(top!=0

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

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

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