• 大小: 6KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-09-11
  • 语言: C/C++
  • 标签: 校园导航  

资源简介

数据结构课程设计校园导航系统源代码,原创。【问题描述】 以我校为例,设计一个校园导游程序,主要为来访的客人提供信息查询。 【基本要求】 提供至少5个景点的校园导游咨询(包括景点介绍、景点间距离等)。 本程序的目的是为来客提供路径咨询和景点查询(根据用户指定的始点和终点输出相应最短简单路径或者输出用户指定景点的详细信息);系统管理员又可根据实际情况对导游图进行修改,删除路径或景点。

资源截图

代码片段和文件信息

//顶点为0-8//顶点为0-8//顶点为0-8//顶点为0-8//顶点为0-8//顶点为0-8//顶点为0-8
#include
#include
#define inf 0xfffffff
#define MAXV 1000
#define sizes 9
using namespace std;
int v;
int xy;
int m=1;
int maps[sizes][sizes]={
{0inf100200100infinfinfinf}
{inf0500inf200infinfinfinf}
{1005000infinfinfinf500inf}
{200infinf0infinfinfinf200}
{100200infinf0infinfinfinf}
{infinfinfinfinf0100inf500}
{infinfinfinfinf1000100inf}
{infinf500infinfinf1000700}
{infinfinf200inf500inf7000}
};
int mapkey[sizes][sizes];
int dis[100];
int judge;
int jishu=0;
void dfs(int xint path[]int d)
{
    d++;
    path[d]=x;
    dis[x]=1;
    if(x==y&&d>=0)
    {
        jishu++;
        cout<<“路径“<        for(int i=0;i<=d;i++)
        {
            printf(“%d “path[i]);
        }
        cout<    }
    for(int i=0;i    {
        if(dis[i]==0&&maps[x][i]!=inf&&x!=i)
        {
            dfs(ipathd);
            dis[i]=0;
        }
    }
}
void chakan()
{
    int n;
    cout<<“欢迎来到查看函数\n“;
    cout<<“请输入想要查看的标记序号\n“;
    cin>>n;
    if(n==1)
        cout<<“宿舍“<    else if(n==2)
        cout<<“图书馆“<    else if(n==3)
        cout<<“办公楼“<    else if(n==4)
        cout<<“理学院“<    else if(n==5)
        cout<<“文学院“<    else if(n==6)
        cout<<“食堂“<    else if(n==7)
        cout<<“工程实训中心“<    else if(n==8)
        cout<<“计算机中心“<    else if(n==9)
        cout<<“校史馆“<    system(“pause“);
    exit(0);
}
void Dispath(int dist[]int path[]int S[])//输出从顶点v出发的所有最短路径
{
    int ijk;
int apath[MAXV]d; //存放一条最短路径(逆向)及其顶点个数
cout<<“请输入另一个节点“< cin>>i;
while(i==v)
    {
        cout<<“非法输入,请重新操作“<        cin>>i;
    }
if(S[i]==1&&i!=v)
    {
        printf(“  从顶点%d到顶点%d的路径长度为:%d\t路径为:“vidist[i]);
        d=0;
        apath[d]=i; //添加路径上的终点
        k=path[i];
        if(k==-1) //没有路径的情况
            printf(“无路径\n“);
        else //存在路径时输出该路径
        {
            while(k!=v)
            {
                d++;
                apath[d]=k;
                k=path[k];
            }
            d++;
            apath[d]=v; //添加路径上的起点
            printf(“%d“apath[d]); //先输出起点
            for(j=d-1;j>=0;j--) //再输出其他顶点
                printf(“%d“apath[j]);
            printf(“\n“);
        }
    }
}
void dijkstra()
{
    cout<<“欢迎来到查询所有路线函数\n“;
    cout<<“请输入起点\n“;
    cin>>v;
    int dist[MAXV]path[MAXV];
int S[MAXV]; //S[i]=1表示顶点i在S中 S[i]=0表示顶点i在U中
int Mindisiju;
for (i=0;i {
    dist[i]=maps[v][i]; //距离初始化
S[i]=0; //S[]置空
if (maps[v][i]

评论

共有 条评论