- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
题号:第七题
题目:校园导航问题
1,需求分析:
设计你的学校的平面图,至少包括10个以上的景点(场所),每两个景点间可以有不同的路,且路长也可能不同,找出从任意景点到达另一景点的最佳路径(最短路径)。
要求:
(1)以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。实现提示:
一般情况下,校园的道路是双向通行的,可设计校园平面图是一个无向网。顶点和边均含有相关信息。
选做内容:
(1)提供图的编辑功能:增、删景点;增、删道路;修改已有信息等。
(2)校园导游图的仿真界面。
2,设计:
2.1 设计思想:
1,数据结构设计:
(1)图。采用邻接矩阵存储,其中图所用到的结构体为:
typedef struct
{
SeqList vertices; //表示图中的顶点
int Edge[MaxVertices][MaxVertices]; //表示图中的边
int numOfEdge; //表示图中边的数目
}AdjMGraph;
(2)景点。用顺序表存储。所用到的结构体为:
typedef struct
{
char name[20]; //顶点名称
int code; //顶点代号
char introduction[50]; //顶点信息简介
}DataType;
(3)景点之间的连接描述,所用到的结构体为:
typedef struct
{
int row;
int col;
int weight;
}RowColWeight;
用图来存放所提供的所有景点,然后用线性表来存放每一个景点的信息,其中包括景点的名称,代号,信息简介,以及其它的一些信息。这样就将对景点的操作,变成对图中各顶点的操作 。
2,算法设计:
关于本课题的算法,很大部分来源于这学期数据结构课程的学习,其中包括:
图的创建,线性表的一些操作。对于具体的问题实现,都有不同的算法,在下面的分析中,我将详细说明
2.2 设计表示:
1, 函数调用关系及函数说明:
首先,main()函数调用Creat()函数,用来创建图,然后调用menu()函数来选择用户所要进行的操作。其中menu()函数就是一个菜单供使用者来选择他所要进行的相关操作,比如信息的查询,最短路径查询之类。
对于要求1:以图中顶点表示校园内各景点,存放景点名称、代号、简介等信
息;以边表示路径,存放路径长度等有关信息。图的创建设计流程图为:
Creat()函数原型为:
void Creat(AdjMGraph *G, DataType v[], RowColWeight E[], int n,int e)
其中,G为所创建的图结构体对象,v[] 为所有顶点的集合,它是DataType
型,这个类型前面已经介绍过;E[] 存放着各顶点之间的连接关系,它是RowColWeight型,前面也介绍过;n表示顶点的个数;e表示边数。
Creat()函数的功能就是实现图的创建,将已知的景点的一些信息,转换成图的
信息,并进行存储。
对于要求2:为来访客人提供图中任意景点相关信息的查询。流程图为:
menu()函数的原型为:
void menu() 他就是一个菜单,供用户选择他们所要进行的操作。
Information1()函数原型为:
void Information1() 它的功能就是输入查询景点的信息,并调用Information()
Information()函数原型为:
void Information(AdjMGraph G, char scenery[]) G 依然是所创建的图的结构
体对象,后面所有的G 都是表示这个意思;scenery[] 是在Information1() 中输入的景点的
名称。此函数的功能就是根据输入的景点的名称来查询其相关的信息。
对于要求3:为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条
最短路径。流程图为:
Path1()函数原型为:
void
文档评论(0)