数据结构地图导游系统含源码(4)

2019-04-21 16:29

void ShowSchool() //显示校园全景图 {

printf(\┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\\n\

printf(\┃ xxxxxxxx大学校园平面图 ┃\\n\

printf(\┣━━━━━━━━━━━━━━━━━━━━━━━━━━┫\\n\

printf(\┃┏━━━━━ ━━━━━┓ ┃\\n\

printf(\┃┃ ┃ 10.┃ ┃ \\n\

printf(\┃┃ 宿舍楼2 ┃━━━━━ ┃ 宿舍楼1 ┃ \\n\

printf(\┃┗━━━┳━┛ 15┃ ┣━━━━━┫ \\n\

printf(\┃ 11. ┃180 ┃ 10┃ 70┃ \\n\

printf(\┃ ┏┻┓ 150 ┏━━┻━━━━┓┃ ┏┻┓┃\\n\

printf(\┃ ┃体┣━━━┫ 旭日苑 ┣╝ ┃美┃┃\\n\

printf(\┃ 8.┃育┃ 9.┗━━┳━━━━┛ 7.┃食┃┃\\n\

printf(\┃ ┃馆┃ ┃ ┃广┃┃\\n\

printf(\┃ ┗┳┛ ┃ 200 ┃场┃┃\\n\

printf(\┃ ┃ ┃ ┗┳┛┃\\n\

printf(\┃ ┃60 6. ┃ ┃ \\n\

printf(\┃ ┃━━┳━━━━┻━┓ 130┃ \\n\

printf(\┃ ┃ 图书馆 ┣ ╬━━━╝ \\n\

printf(\┃ 80 ┗━━┳━━━┛ 4.┏━┻━━━┓ \\n\

printf(\┃ ┣━━┓━━╝ ┃ ┃ \\n\

printf(\┃ 5. ┃大活┃ ┏┻ ┳┛ \\n\

printf(\┃ ┃学动┃ ┃ 实验楼 ┃ \\n\

printf(\┃ ┃生中┃ ┏┻ ┳┛ \\n\

┃┃┃┃┃┃┃┃┃┃┃┃ printf(\┃ ┃ 心┃ ┃ ┃ ┃\\n\

printf(\┃ ┗┳━┛ 20 ┗━┳━━━┛ ┃\\n\

printf(\┃ ┃100 2.┏━━━┻━┓ ┃\\n\

printf(\┃ ┃ ┃ 教学楼 ┃ ┃\\n\

printf(\┃ ┏━━┻┓ 40 50 ┗━━┳━━┛┏━━━┓┃\\n\

printf(\┃ 3.┃行政楼┣━━━━━━━━━━╝ ┃ 南 ┃┃\\n\

printf(\┃ ┗━━━┛ ┃ ┃东╋西┃┃\\n\

printf(\┃ ┏━┻━━━┓ ┃ 北 ┃┃\\n\

printf(\┃ 1.┃ 北门 ┃ ┗━━━┛┃\\n\

printf(\┗━━━━━━━━┻━━━━━┻━━━━━━━━━━━┛\\n\ }

void ShowRoute(AdjMatrix *G) //显示图的所有路线 {

int i,j;

printf(\校园里一共有%d条路线.\\n\\n\ for(i=1;i<=G->vexnum;i++) for(j=1;j<=i;j++)

if(G->arcs[i][j]!=INFINITY) printf(\\\t距离为:%dm\\n\}

void ShowVex(AdjMatrix *G) //显示所有景点 {

int i;

printf(\校园共有%d个景点,编号、名称及介绍如下:\\n\\n\ for(i=1;i<=G->vexnum;i++)

printf(\}

void Serach(AdjMatrix *G) //查询景点 {

int i,n;

char name[20];

printf(\请选择你要查询的方式:\\n\

printf(\编号 2.名称\\n\ scanf(\

if(n == 1) {

printf(\请输入景点的编号(1~~%d):\ scanf(\ if(VexExit(G,n)) {

printf(\该景点情况及周围景点如下:\\n\

printf(\ %s\\n\\n\ for(i=1;i<=G->vexnum;i++) //找出与该景点相关的路线 if(G->arcs[n][i] != INFINITY)

printf(\ } }

else if(n == 2) {

printf(\该校园有以下景点,请选择:\\n\ for(i=1;i<=G->vexnum;i++)

printf(\

printf(\请输入要查询景点的名称:\ scanf(\

n=Locate(G,name); //通过名称找到该景点的序号 if(VexExit(G,n)) {

printf(\该景点名称、介绍及可以直达的景点如下:\\n\

printf(\ %s\\n\\n\ for(i=1;i<=G->vexnum;i++)

if(G->arcs[n][i]!=INFINITY)

printf(\ if(i>G->vexnum+1)

printf(\此景点为独立的点,返回!\\n\ } } else

printf(\输入错误,返回!\\n\}

void AddRoute(AdjMatrix *G) //增加新路线 {

char name[20];

int start,ending,distance;

ShowRoute(G);

printf(\请输入要增加路线的起点和终点名称:\\n\

printf(\起点:\ scanf(\ start=Locate(G,name); printf(\终点:\ scanf(\

ending=Locate(G,name); printf(\距离:\

scanf(\

//将新路线的距离存入权值数组中 G->arcs[start][ending]=distance; G->arcs[ending][start]=distance;

G->arcnum++; //图的边集加1 printf(\添加新路线成功。\\n\}

void DeleteRoute(AdjMatrix *G) //删除路线 {

char name[20]; int start,ending;

ShowRoute(G);

printf(\请输入要删除路线的起点和终点名称:\\n\ printf(\起点: \ scanf(\ start=Locate(G,name); printf(\终点: \ scanf(\

ending=Locate(G,name);

if(G->arcs[start][ending] == INFINITY)

printf(\您要删除的路线不存在,请重新输入!\\n\ //将对应权值数组中的元素赋值,删除路线 else {

G->arcs[start][ending]=INFINITY ; G->arcs[ending][start]=INFINITY ; G->arcnum--;

printf(\删除路线成功。\\n\ } }

void AddVex(AdjMatrix *G) //增加景点 {

int i;

char name[20]; char intro[100];

printf(\该校园包含以下景点:\\n\ for(i=1;i<=G->vexnum;i++)

printf(\ printf(\请输入增加景点的名称和介绍:\\n\ scanf(\

//图的顶点集先加1,将增加景点的信息赋值到图的末尾景点中 G->vexnum++;

G->vex[G->vexnum].num=G->vexnum; strcpy(G->vex[G->vexnum].name,name); strcpy(G->vex[G->vexnum].introduce,intro); //对新增景点的权值数组元素赋初值 for(i=1;i<=G->vexnum;i++)

G->arcs[G->vexnum][i]=INFINITY; for(i=1;i<=G->vexnum;i++)

G->arcs[i][G->vexnum]=INFINITY; printf(\增加景点成功!\\n\}

void DeleteVex(AdjMatrix *G) //删除景点 {

int i,j,count=0; char name[20];

printf(\该校园有以下景点:\\n\ for(i=1;i<=G->vexnum;i++)

printf(\ printf(\请输入删除景点的名称:\\n\ scanf(\ i=Locate(G,name); if(VexExit(G,i)) {

for(j=1;j<=G->vexnum;j++) //找出与该景点相关的路线数目 if(G->arcs[i][j]!=INFINITY) count++;

//先找到景点在图中的位置,从后往前依次覆盖原值 for(i;i<=G->vexnum;i++) {

G->vex[i].num=G->vex[i+1].num;

strcpy(G->vex[i].name,G->vex[i+1].name);

strcpy(G->vex[i].introduce,G->vex[i+1].introduce); }

G->vexnum--; //图的顶点集减1

G->arcnum=G->arcnum-count; //图的边数目减去与删除景点有关的路线数目

printf(\删除景点成功!\\n\ } }

void Dijkstra(AdjMatrix *G,int start,int ending,int dist[],int path[][MAXVEX]) //求起点到终点的最短路线


数据结构地图导游系统含源码(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东省菏泽市2018届高三第一次模拟考试英语试题Word版答案详解

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: