




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数据结构课程设计报告 第一篇:数据结构课程设计报告扬州大学信息工程学院《数据结构》---课程设计报告题目:校园导游咨询班级:学号:姓名指导教师:一、设计题目设计一个校园导游程序,为来访的客人提供各种信息查询服务。二、需求分析要求:(1)设计你所在学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点相关信息的查询。(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。三、概要设计1.创建校园图:(1)先定义节点个数N,边的最大值(MAXedg),节点(景点名称、景点信息),邻接点,边,顶点向量,当前顶点数和边数。(2)先给一个节点赋上其相关信息,然后再用p=(Node)malloc(sizeof(edgenode))语句申请下一结点,再给所申请的节点赋上相关信息,直到节点数为N=10为止。(3)读入道路的起始点,为邻接矩阵的边赋相应的值。(4)节点和边的相关信息都弄好了后,校园图也就创建好了。2.利用函数Name给10个节点赋上相应的名称,利用函数Information给各节点添加相应的介绍信息。3.利用函数travgraph来查找景点信息,要查找景点名称时调用Name函数,要查找景点介绍信息时调用Information函数。4.手动创建一个校园图creat(Matrix_Graph*G),然后为相应的边赋上真正的值。5.用path函数来求任意两景点之间的最短路径。6.用main函数来输出结果:用switch语句分别输出,要创建校园图时调用creatgraph函数;查找景点相关信息时调用travgraph函数;要查找任意两景点之间的最短路径时,先输入你目前所在的位置,再输入你的目的地,最后调用path函数。四、详细设计typedefintAdjMatrix[MAX][MAX];typedefstruct{intvexs[MAX];AdjMatrixarcs;}Matrix_Graph;//图的矩阵表示法。typedefstructedgenode{intadjvex;//临接点序号intlength;//道路长度charinfo[10];//景点名称charinfo2[100];//景点详细信息structedgenode*next;}edgenode,*Node;typedefstruct{charname[10];//存储景点的名称.charinformation[100];//具体的介绍此景点structedgenode*link;//指向下一个景点}vexnode;//景点及其信息.typedefstructEdge{intlengh;//边的权值,表示路径长度.intivex,jvex;//边的两端顶点号structEdge*next;//指向下一条边}EdgeType;//边及其信息.typedefstruct{intnum;//顶点编号。charname[10];//顶点名称}vertex;typedefstruct{vertexvexs[MAX];//顶点集合intedges[MAX][MAX];//临街矩阵}adjmax;//adj(1)首先创建一个校园图并用邻接矩阵存储,程序会自动调用creatgraph(g,&n,e,&adj),函数进入到创建校园图界面,用循环语句来完成:for(i=1;ifscanf(fp,“%d%d%dn”,&e[i].lengh,&e[i].ivex,&e[i].jvex);//读入道路长度和起始点s=e[i].ivex;//s是起点,d是终点。d=e[i].jvex;len=e[i].lengh;adj->edges[s][d]=e[i].lengh;//为邻接矩阵中相应的边赋值adj->edges[d][s]=e[i].lengh;p=(Node)malloc(sizeof(edgenode));//申请一个弧节点。p->next=NULL;q=(Node)malloc(sizeof(edgenode));q->next=NULL;p->adjvex=d;//弧p指向的定点p->length=len;strcpy(p->info,g[d].name);//为景点赋名称strcpy(p->info2,g[d].information);//为景点赋介绍信息q->adjvex=s;//弧q指向的定点q->length=len;strcpy(q->info,g[s].name);//为景点赋名称strcpy(q->info2,g[s].in

Jo****63
实名认证
内容提供者


最近下载