| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:在导航系统中查询路线的时候我想显示具体地址,不是编号,这里需要怎么改啊 ...
只看楼主 加入收藏
筱镜尘
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-11-17
结帖率:66.67%
收藏
 问题点数:0 回复次数:0 
在导航系统中查询路线的时候我想显示具体地址,不是编号,这里需要怎么改啊?麻烦帮看看。
#include"stdio.h"
#include"windows.h"
#define MAXV 14
#define INF 32767
typedef struct
{
    int edges[MAXV][MAXV];
    int n;
}MGraph;
int G[MAXV][MAXV]={
    {000,60,100,INF,INF,INF,40,INF,INF,INF,INF,INF,INF,INF},
    {60,000,INF,90,INF,INF,30,INF,INF,INF,INF,INF,INF,INF},
    {100,INF,000,INF,50,INF,INF,INF,80,INF,INF,INF,INF,INF},
    {INF,90,INF,000,INF,INF,INF,INF,INF,INF,INF,INF,INF,INF},
    {INF,INF,50,INF,000,INF,INF,INF,50,INF,INF,INF,INF,INF},
    {INF,INF,INF,INF,INF,000,20,INF,40,20,INF,INF,INF,INF},
    {40,30,INF,INF,INF,20,000,130,INF,20,INF,INF,INF,INF},
    {INF,INF,INF,INF,INF,INF,130,000,INF,INF,INF,INF,110,INF},
    {INF,INF,80,INF,50,40,INF,INF,000,40,150,INF,INF,INF},
    {INF,INF,INF,INF,INF,20,20,INF,40,000,INF,170,INF,INF},
    {INF,INF,INF,INF,INF,INF,INF,INF,150,INF,000,200,INF,INF},
    {INF,INF,INF,INF,INF,INF,INF,INF,INF,170,200,000,200,180},
    {INF,INF,INF,INF,INF,INF,INF,110,INF,INF,INF,200,000,120},
    {INF,INF,INF,INF,INF,INF,INF,INF,INF,INF,INF,180,120,000}
};
MGraph r[]={"南门,逸夫楼,大礼堂,东门,物电楼,图书馆,灯光球场,校医院,多媒体,超市,大学生活动中心,五坡文化广场,民族餐厅,田径场"};
void Home()
{
    printf("\n----------欢迎使用广西民族大学校园导航系统----------\n");
    printf("\n     1-----路径查询             2-----各景点详细信息\n");
    printf("\n     3-----退出\n");
    printf("\n     请输入你的选择:   ");
}
void menu()
{
    printf("\n\n  1、南门        2、逸夫楼    3、大礼堂             4、东门\n");
    printf("\n  5、物电楼      6、图书馆    7、灯光球场           8、校医院\n");
    printf("\n  9、多媒体      10、超市     11、大学生活动中心    12、五坡文化广场\n");
    printf("\n  13、民族餐厅   14、田径场     \n");
}
/*void Pathquery()
{
    int a1,a2;
    menu();
    printf("\n所处位置:  ");
    scanf("%d",&a1);
    printf("\n目的地:   ");
    scanf("%d",&a2);
}*/
void Ppath(int path[],int i,int v)
{
    int k;
    k=path[i];
    if(k==v)
        return;
    Ppath(path,k,v);
    printf("%d,",k);
}
void Dispath1(int dist[],int path[],int s[],int v,int a)
{
    int i;
    if(s[a]==1)
    {if(i==dist[a])
        printf("从%d到%d的距离是:  %d\t\t路径为:",v,a,dist[a]);
        printf("%d,",v);
        Ppath(path,a,v);
        printf("%d\n",a);
    }
    else
        printf("从%d到%d不存在路径\n",v,a);
}
void Dijkstra1(MGraph g)
{
    int dist[MAXV],path[MAXV];
    int s[MAXV];
    int mindis,i,j,u;
    int v,a;
    printf("\n请输入任意两个顶点(1到14之间): ");
    scanf("%d\t%d",&v,&a);
    for(i=0;i<g.n;i++)
    {  
        dist[i]=g.edges[v][i];
        s[i]=0;
        if(g.edges[v][i]<INF)
            path[i]=v;
        else
            path[i]=-1;
    }
    s[v]=1;path[v]=0;
    for(i=0;i<g.n;i++)
    {   
        mindis=INF;
        for(j=0;j<g.n;j++)
            if(s[j]==0 && dist[j]<mindis)
            {
                u=j;
                mindis=dist[j];
            }
            s[u]=1;
            for(j=0;j<g.n;j++)
                if(s[j]==0)
                    if(g.edges[u][j]<INF && dist[u]+g.edges[u][j]<dist[j])
                    {   
                        dist[j]=dist[u]+g.edges[u][j];
                        path[j]=u;
                    }
    }
    Dispath1(dist,path,s,v,a);
}
void main()
{
    MGraph g;
    int a,x=1;
    Home();
    scanf("%d",&a);
    system("cls");
    while(x==1)
    {
        switch(a)
        {
        case 1:
            {
                system("cls");
                menu();
                g.n=MAXV;
                for(int i=0;i<MAXV;i++)
                    for(int j=0;j<MAXV;j++)
                        g.edges[i][j]=G[i][j];
                    Dijkstra1(g);
            }break;
        case 2:break;
        case 3:break;
        }printf("\n\n继续请按1,否则请按2:  ");
    scanf("%d",&x);   
    }
}
搜索更多相关主题的帖子: 100 导航系统 include 
2011-06-28 20:08
快速回复:在导航系统中查询路线的时候我想显示具体地址,不是编号,这里需要怎么 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036450 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved