数据结构课程设计分析报告文件

上传人:zejun11****63.com 文档编号:122074115 上传时间:2020-02-29 格式:DOC 页数:29 大小:81KB
返回 下载 相关 举报
数据结构课程设计分析报告文件_第1页
第1页 / 共29页
数据结构课程设计分析报告文件_第2页
第2页 / 共29页
数据结构课程设计分析报告文件_第3页
第3页 / 共29页
数据结构课程设计分析报告文件_第4页
第4页 / 共29页
数据结构课程设计分析报告文件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《数据结构课程设计分析报告文件》由会员分享,可在线阅读,更多相关《数据结构课程设计分析报告文件(29页珍藏版)》请在金锄头文库上搜索。

1、n更多企业学院: 中小企业治理全能版183套讲座+89700份资料总经理、高层治理49套讲座+16388份资料中层治理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各时期职员培训学院77套讲座+ 324份资料职员治理企业学院67套讲座+ 8720份资料工厂生产治理学院52套讲座+ 13920份资料财务治理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 连云港市景点导游咨询 姓 名: 顾浩

2、然 学 号: 110912109 专业班级: 网络工程 网络091 系 (院): 计算机工程学院 设计时刻: 2010.12.202010.12.31 设计地点: 软件工程实验室、教室 成绩:指导教师评语: 签名: 年 月 日25 / 281课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等差不多方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程

3、中培养他们严谨的科学态度和良好的工作作风。2课程设计任务与要求:任务:用无向网表示连云港市旅游景点平面图,图中顶点表示要紧景点,存放景点编号、名称、简介等信息,图中边表示景点间的道路,存放路径长度信息。 要求:(1)查询各景点的相关信息; (2)查询图中任意两个景点间的最短路径 (3)查询图中任意两个景点间的所有路径 (4)可动态添加景点,加后可查询该景点到其它景点的最短路径 3课程设计讲明书一 需求分析:连云港作为一个闻名的旅游都市,每年都有大量的国内外游客来港城旅游,大多数外地游客对连云港的旅游景点的相关信息不是特不了解,因此我们能够为他们设计一个方便在连云港外出旅游的咨询程序,即连云港市

4、景点导游咨询程序。连云港市导游咨询程序需要把连云港市的要紧景点(争取十个左右,尽管我只认识几个而已)都包括在一个平面图内。(1) 以图中各顶点存放连云港的各景点名称,代号,简介等相关信息 (2)程序中,以各个旅游景点名称为图的顶点,各个顶点的信息是景点的简要描述,权值确实是任意两个景点间的路径长度(3) 以边存放路径及路径长度等相关信息,游客可依照图所提供的景点来查询各个景点的相关信息及各景点的路径查询(4) 提供两个景点间的所有路径并提示最短路径,为游客的旅游带来方便,游客可依照实际情况选择最佳的巡游路线。二 概要设计1、差不多操作: CreateGraph(G):创建图G。 LocateV

5、ertex(G,v):确定顶点v在图g中的位置,若图g中没有顶点v,则函数值为“空”。 GetVertex(G,i):取出图g中的第i个顶点的值,若i大于图g中顶点数,则函数值为“空”。 FirstAdjVertex(G,v):求图G顶点v的第一个邻接点,若v无邻接点或图G中无顶点v,则函数值为“空”。 NextAdjVertex(G,v,w):已知w是图G中顶点v的某个邻接点,求顶点v的下一个邻接点(紧跟在w后面),若w是v的最后一个邻接点,则函数值为“空”。 InsertVertex(G,u):在图G中增加一个顶点u。 InsertArc(G,v,w):在图G中增加一条从顶点v到顶点w的弧

6、。 TraverseGraph(G):按照某种次序,对图G的每个结点访问一次且仅访问一次。 2、系统中子程序及功能要求:path(MGraph g,int i,int j,int k):确定路径上第k+1个顶点的序号,k初始值为0apath(MGraph g,int i,int j):初始化访问标志与路径条数,并调用path()函数cpath(MGraph g,int path1,int i,int v0):输出最短路径bpath(MGraph g,int dist,int path1,int s,int n,int v0,int i):由path1计算从v0到i的最短路径Dijkstra(M

7、Graph g,int v0,int p):采纳迪杰斯特拉算法求从顶点v0到顶点p的最短路径chaname(MGraph g):查询景点的信息chapath1(MGraph g):查询两个景点间的所有路径chapath2(MGraph g):查询两个景点间的最短路径3、各程序模块之间的调用关系:函数的调用关系图mainchaname chapath1 chapath2apath Dijkstrapath bpathpath cpath cpath主函数可调用子程序 子程序可调用子程序子程序可调用子程序子程序可调用子程序子程序可调用子程序子程序可调用子程序子程序可调用子程序子程序可调用子程序子程

8、序可调用子程序三 详细设计顶点、边和图的类型:typedef structint num;/*顶点编号*/ char nameMAXSIZE;/*顶点名称*/ char discriptionMAXLEN;/*顶点信息描述*/VertexType; typedef structint edgesMAXVMAXV; int vexnum,arcnum;VertexType vexsMAXV; MGraph;int visitedMAXV;int pMAXV;创建连云港市景点地图:int i,j;int b11=1,2,3,4,5,6,7,8,9,10,11;char *c11=/*各个景点名称*

9、/;char *d11=/*字符串指针数组,用来给每个顶点的简介信息进行赋值*/;MGraph g;/*创建一个无向网*/ int A1111=/*景点的相关简介进行赋值*/ ; g.vexnum=顶点个数;g.arcnum=顶点边数;/*建立无向网的邻接矩阵*/for(i=0;i图的顶点个数;i+) /*给每个顶点一个编号*/ /*通过字符串复制函数给每个顶点一个名称*/ /*通过字符串复制函数给每个顶点加上信息,即作为景点的简介信息*/ 查询景点的信息:int i;char s; while(1)/*可提供循环查询,当输入为N或n时,结束循环*/printf(ttt 请输入你要查询的景点:

10、); scanf(%d,&i);for(int j=0;j图的顶点个数;j+) /*输出信息*/ printf(接着查询?(y或n):);scanf(%s,&s);if(s=N|s=n)break;查询景点间的巡游路径:void chapath1(MGraph g) int i,j; char s; while(1)/*可提供循环查询,当输入为N或n时,结束循环*/*输入起点与终点*/; disppath(g,i,j);/*调用disppath函数,用来输出两个景点间的所有路径*/ printf(接着查询?(y或n):);scanf(%s,&s);if(s=N|s=n)break;查询两个景点

11、间的最短路径:int i,j; char s; while(1)/*可提供循环查询,当输入为N或n时,结束循环*/*输入起点与终点*/Dijkstra(g,i,j);/*调用Dijkstra函数,用来输出两个景点间的最短路径*/printf(接着查询?(y或n):);scanf(%s,&s);if(s=N|s=n)break;主函数:int select;/*定义一个整型变量,用来输入不同的选择*/ do/*可提供循环输入选择,当输入的选择为4时,退出循环*/ switch(select)/*推断select的值,依照其值跳转到相应的子模块接着执行*/ case 1: /*查询景点的信息*/

12、break; case 2: ;/*查询景点间的巡游路径*/ break; case 3: /*查询景点间的最短巡游路径*/ break; case 4:/*退出程序*/ break; while(select!=4);/*当select的值不为4时,接着循环*/四 设计与调试分析1、在执行查询景点间的巡游路径时,我之前考虑到深度优先遍历,我能够以指定的为起点开始遍历,在到达指定的终点时,让他停止并输出路径,只是这之间要定义一个s,来存放访问过的同时可走通的顶点编号,以便能够方便输出,但是,如一个顶点有多个邻接点,它是选取其中一条的,有可能在那个顶点能够通过这些邻接点照样能够走到我们指定的终点,在那个地点就出现了问题,如何样让它在访问一个邻接点之后还能够在访问它的另外一个邻接点。之后想到了递归调用,以及邻接矩阵并通过visited来解决那个问题;2、在执行导游程序时,需要依照用户的临时输入求最短路径。尽管迪杰斯特拉算法的时刻复杂度比弗洛伊德算法低,但每次在求一条最短路径时都必须重新

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号