资源描述:
《算法课程设计报告材料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、标准文档《算法与数据结构》课程设计报告题目:教学计划编制问题专业:计算机科学与技术班级:1002学号:1030030242姓名:巫爱萍指导教师:许文庆完成日期:2012年6月14日实用文案标准文档一、课程设计目的本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
2、通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。二、课程设计内容针对计算机系本科课程,依据其相互依赖关系制定课程安排计划,其相互依赖关系如下图所示,并要求各学期课程数目大致相同且搭配适当。三、课程设计过程1.需求分析实用文案标准文档 以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定: (1)输入的形式和输入值的范围;创建邻接表时需要输入顶点数、边数、顶点及其入
3、度和确定弧的两个顶点的下标。 (2)输出的形式;在主函数中输出拓扑排序序列。 (3)程序所能达到的功能;A、求解上图的拓扑排序结果。B、上述课程在4学期上完,要求每学期上课的门数大致一样。(4)测试数据:创建邻接表时输入的顶点数:7创建邻接表时输入的顶点数:8创建邻接表时输入的顶点及其入度分别为:(1,0)、(2,0)、(3,1)、(4,2)、(5,2)、(6,2)、(7,1)创建邻接表时输入的确定弧的两个顶点的下标为:<1,3>、<3,4>、<2,4>、<2,7>、<2,5>、<7,6>、<4,6>、<
4、4,5>2.概要设计 1)本程序包含7个函数: ①主函数main()②创建邻接表函数creatgraph(algraph&g) ③拓扑排序函数toposort(algraph&g,intn)各函数间关系如下:maincreatgraphtoposort3.详细设计实用文案标准文档 实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);画出函数和过程的调用关系图。1)typedefstruc
5、tarcnode{intadjvex;//intinfo;structarcnode*nextarc;}arcnode;2)typedefstructvnode{intdata;intid;structarcnode*firstarc;}vnode,adjlist[MAX_VERTEX_NUM3)typedefstruct{adjlistvertices;intvexnum,arcnum;//intkind;}algraph;4)图的基本操作为了方便用邻接表来存储有向图。algraphcreatgraph(algraph&g){inti
6、,j,k;arcnode*p;algraphag;printf("******************************************");printf("请输入顶点数:");scanf("%d",&g.vexnum);printf("请输入边数:");scanf("%d",&g.arcnum);printf("******************************************");printf("请输入顶点:");for(i=1;i<=g.vexnum;++i){scanf("%d,%
7、d",&g.vertices[i].data,&g.vertices[i].id);g.vertices[i].firstarc=NULL;}printf("请输入确定弧的两个顶点的下标:");for(k=1;k<=g.arcnum;++k)实用文案标准文档{scanf("%d,%d",&i,&j);p=(arcnode*)malloc(sizeof(arcnode));p->adjvex=j;p->nextarc=g.vertices[i].firstarc;g.vertices[i].firstarc=p;}ret
8、urnag;}5)拓扑排序的基本操作inttoposort(algraph&g,intn){inti,j,k,m=0;inttop=0;arcnode*p;//p=(arcnode*)malloc(size