武汉工商简单校园导游系统

这些代码是我们学校课程设计的作业,仅供参考,其中部分代码参考了csdn中大神的算法

#

  • 下面是jdxx.h头文件,介绍了数据结构以及功能函数声明

    #include stdio.h>
    #pragma once
    #define maxview 50//最大景点
    #define FINITY 8888//无穷大
    #define NOTVISITED 0//没有参观到
    #define VISITED 1
    #define MaxSize 100
    //typedef int edg;//权值类型
    typedef struct
    {
    char name[20];//景点名称
    char number[10];//景点数字编号
    char intro[500];//景点介绍
    }xinx;//存放景点信息
    typedef struct
    {
    int num;//顶点编号
    xinx date;//景点信息
    }view;//单个景点类型
    typedef struct
    {
    int n,e;//n为实际顶点数,e为实际边数
    view view1 [maxview];//存放顶点信息
    int len [maxview][maxview];//路径长度
    }way;//路径图类型
    way mgr;//全局变量,定义mgr为way类型
    void input();//录入信息
    void chage();//修改信息
    void map();//地图
    void show();//查询景点信息
    void sshort();//最短路径
    void all();//所有路径
    //void dfsm();//深度优先遍历
    void add();//增加信息
    void del();//删除信息
    void creat(way *g,char *s ,int c)//辅助函数文件导入
    {
    int i,j,k,w; /*建立网络的邻接矩阵存储结构*/
    FILE *rf ;
    rf = fopen(s, "r") ; /*从文件中读取图的边信息*/
    if (rf)
    {
    fscanf(rf,"%d%d",&g->n,&g->e); /*读入图的顶点数与边数*/
    for(i=0;i<g->n;i++) /*读入图中的顶点值*/
    fscanf(rf,"%1s",&g->view1[i]);
    for(i=0;i<g->n;i++) /*初始化邻接矩阵*/
    for(j=0;j<g->n;j++)
    if (i==j) g->len[i][j]=0;//主对角全零
    else g->len[i][j]=FINITY;//趋于正无穷大
    for(k=0;k<g->e;k++)
    {
    fscanf(rf,"%d%d%d", &i,&j,&w);
    g->len[i][j]=w;
    if (c==0) g->len[j][i]=w; /*如果C==0则建立无向网邻接矩阵,否 则建立有向网邻矩阵*/
    }
    fclose(rf);
    }
    else g->n=0;
    }//建立邻接表
    //void print(way g)
    //{ /*辅助函数,输出邻接矩阵表示的图g*/
    // int i,j;
    //
    // for (i=0;i<g.n;i++)
    // printf("%c ",g.view1[i]);
    //
    // printf("\n");
    // for (i=0;i<g.n;i++)
    // {
    // for (j=0;j<g.n;j++)
    // printf("%6d",g.len[i][j]);
    // printf("\n");
    // }
    //}

    上面代码中creat()函数表示建立邻接表存储结构,我们采用文件导入的方式建立一个图,这个图是我们自己在文件中自定义的,在我们需要的地方用creat()调用相应文件就可以达到建图目的
  • 下面是我们各功能的实现代码
#include "jdxx.h"//景点信息
#include<stdlib.h>
#include <string.h>
#define N 14//现有最大景点数
void input()//存入景点信息
{
    mgr.view1[1].num=1;
    strcpy (mgr.view1[1].date.name,"校门");
    strcpy (mgr.view1[1].date.number,"001");
    strcpy (mgr.view1[1].date.intro,"毗邻三环,几经返修,终于形成现在的校门,正面武汉工商学院几个大字,背后是我们的校训:弘德博问,和谐拓新。");
    mgr.view1[2].num=2;
    strcpy (mgr.view1[2].date.name,"实验楼");
    strcpy (mgr.view1[2].date.number,"002");
    strcpy (mgr.view1[2].date.intro,"实验楼顾名思义肯定是我大工商学子做实验的地方,此楼是我校多个实验基地,人才的发源地,旁边有一个快递收发点。");
    mgr.view1[3].num=3;
    strcpy (mgr.view1[3].date.name,"综合楼");
    strcpy (mgr.view1[3].date.number,"003");
    strcpy (mgr.view1[3].date.intro,"综合楼是我们学校教学的主要地方,也是老师办公的主要集聚地,综合楼大气美丽,是我们学校楼群中的颜值担当。");
    mgr.view1[4].num=4;
    strcpy (mgr.view1[4].date.name,"外语楼");
    strcpy (mgr.view1[4].date.number,"004");
    strcpy (mgr.view1[4].date.intro,"此楼全名应叫外语艺术楼,因为它一般是外语楼,一半是艺术楼,我们却更习惯以叫它外语楼,因为我们是非艺术类专业,但它的正门是有艺术与设计学院的,要找到它这几个大字是很明显的标志");
    mgr.view1[5].num=5;
    strcpy (mgr.view1[5].date.name,"1-4栋宿舍群");
    strcpy (mgr.view1[5].date.number,"005");
    strcpy (mgr.view1[5].date.intro,"这四栋寝室住着我们学校各个学院的学生,其中单数是女生宿舍,双数为男生宿舍");
    mgr.view1[6].num=6;
    strcpy (mgr.view1[6].date.name,"一食堂");
    strcpy (mgr.view1[6].date.number,"006");
    strcpy (mgr.view1[6].date.intro,"这里呢是有3个建筑的,一食堂、弘德楼和5栋宿舍,一食堂分两层特色各不同,味道算是可以的,和一食堂紧挨的楼栋呢就是弘德楼,也是我们学校最高的楼,这栋楼以租房的形式呢提供给老师同学自由的住宿,5栋是女生宿舍,就没什么好说的呢,只是听说有段时间,都叫它考研楼,因为有一整个宿舍都一起考上了研究生");
    mgr.view1[7].num=7;
    strcpy (mgr.view1[7].date.name,"体育馆");
    strcpy (mgr.view1[7].date.number,"007");
    strcpy (mgr.view1[7].date.intro,"体育馆全名体育运动中心,室内有各种“小球”项目,室外一边是足球场一边是篮球场。学校医务室就在体育管的靠湖那边。");
    mgr.view1[8].num=8;
    strcpy (mgr.view1[8].date.name,"足球场");
    strcpy (mgr.view1[8].date.number,"008");
    strcpy (mgr.view1[8].date.intro,"我们学校最大的一块活动区域,是不是会有露天活动在这举行,同时每天都会有人在这跑步、散步、运动。");
    mgr.view1[9].num=9;
    strcpy (mgr.view1[9].date.name,"图书馆");
    strcpy (mgr.view1[9].date.number,"009");
    strcpy (mgr.view1[9].date.intro,"图书馆是一个大学的灵魂,我们学校也是,图书馆需刷卡进入,还会不定时举行各种读书活动,以及各类讲坛,6楼是考研的学长学姐们的聚集地");
    mgr.view1[10].num=10;
    strcpy (mgr.view1[10].date.name,"静思湖");
    strcpy (mgr.view1[10].date.number,"010");
    strcpy (mgr.view1[10].date.intro,"静思湖是我们学校的内湖,有一个不能过湖的桥所以久而久之我们都叫那个桥为“回心转意桥”,同时每天也会有人去那里散步。");
    mgr.view1[11].num=11;
    strcpy (mgr.view1[11].date.name,"二食堂");
    strcpy (mgr.view1[11].date.number,"011");
    strcpy (mgr.view1[11].date.intro,"总会觉得二食堂的饭会比一食堂好吃,因为本人是住在一食堂这边的。二食堂也是两层,各种风味都有");
    mgr.view1[12].num=12;
    strcpy (mgr.view1[12].date.name,"清真食堂");
    strcpy (mgr.view1[12].date.number,"012");
    strcpy (mgr.view1[12].date.intro,"由于我们学校有预科班,所以就为信仰伊斯兰教的少数民族专门准备了清真食堂。");
    mgr.view1[13].num=13;
    strcpy (mgr.view1[13].date.name,"6-13栋宿舍群");
    strcpy (mgr.view1[13].date.number,"013");
    strcpy (mgr.view1[13].date.intro,"6-13栋寝室的男女分布情况我就不是特别清楚了,只知道13栋是女生寝室,9栋是男寝,9栋一楼有一个小食堂一样吃东西的地方。");
    mgr.view1[14].num=14;
    strcpy (mgr.view1[14].date.name,"黄家湖");
    strcpy (mgr.view1[14].date.number,"014");
    strcpy (mgr.view1[14].date.intro,"黄家湖很大,我们学校只是沾了一个黄家湖的边而已");
    way g;

}
void add()
{

    while(1)
    {printf("请输入要添加的顶点编号:<按00结束添加>");
        int a;
        xinx b;
        scanf("%d",&a);
        if(a==00)
        {
            break;
        }else{
            N+1;
        printf("请输入要添加的景点名称:");
        scanf("%s",b.name);
        printf("请输入要添加的景点编号:");
        scanf("%s",b.number);
        printf("请输入要添加的景点描述:");
        scanf("%s",b.intro);
        mgr.view1[a].num=a;
        strcpy (mgr.view1[a].date.name,b.name);
        strcpy (mgr.view1[a].date.number,b.number);
        strcpy (mgr.view1[a].date.intro,b.intro);}
    }
}
void chage()//修改信息 
{
    int n,a;

    for(int i=0;i<N;i++)
    {
        printf("请输入要修改的景点编号<输入00结束插入>\n");
        scanf("%d",&n);
        if(n==00)
        {
            break;
        }
        printf("********************************************************\n");
        printf("                     1.顶点编号                         \n");
        printf("                     2.景点名称                         \n");
        printf("                     3.景点编号                         \n");
        printf("                     4.景点简介                         \n");
        printf("                     5.退出                             \n");
        printf("********************************************************\n");
        printf("请按提示输入要修改的信息:");
        scanf("%d",&a);
        switch(a)
        {
        case 1:
        printf("请输入顶点编号:");
        scanf("%d",&mgr.view1[n].num);
        break;
        case 2:
        printf("请输入景点名称:");
        scanf("%s",mgr.view1[n].date.name);
        break;
        case 3:
        printf("请输入景点编号:");
        scanf("%s",mgr.view1[n].date.number);
        break;
        case 4:
        printf("请输入景点简介:");
        scanf("%s",mgr.view1[n].date.intro);
        break;
        case 5:return;
        }
    }
}
void map()
{   
    printf("|------------------------------------------------------------------------------------------------------|\n");
    printf("|   |-------------------------------------------------------------------|    |---------------------|   |\n");
    printf("|   |               武  汉  工  商  学  院  地  图                      |    |  6-12   |  |        |   |\n");
    printf("|   |                                           made in  vivi           |    |---------|  |--------|   |\n");
    printf("|   |-------------------------------------------------------------------|    |  学 生  |  |     13   | |\n");
    printf("|                                                                            |---------|  |----------| |\n");
    printf("|                           |----------|                                     |  公 寓  |  |    13栋  | |\n");
    printf("| |                         |  实验楼2 |                                     |-----------------------| |\n");
    printf("| |                         |----------|                                              |-------------|  |\n");
    printf("| |                 |--------------|                                                  | 清 真食堂12 |  |\n");
    printf("|---|               |    综合楼3   |                          ~~~~~~~~                |-------------|  |\n");
    printf("|校 |               |--------------|            /--\\        ~    静   ~          |---------|           |\n");
    printf("|门 |                                     |---       ---|   ~    思    ~         |   二    |           |\n");
    printf("| 1 |                                     |   图书馆 9  |   ~    湖    ~         |      11 |           |\n");
    printf("|---|     |-------|---|                   |-------------|    ~    10   ~         |   食 堂 |           |\n");
    printf("| |       |-------|---|                                       ~~~~~~~~           |         |           |\n");
    printf("| |        外 语 楼 4 |             |-----------------------|                    |---------|           |\n");
    printf("| |       |-------|---|             |     足  球  场        |                                          |\n");
    printf("|         |-------|---|             |           8           |                                          |\n");
    printf("|                                   |-----------------------|              ~ ~ ~                       |\n");
    printf("|      |---------|------|             |-----   -----|                    ~             ~  ~            |\n");
    printf("|      |         |      |             |   体 育 馆7 |                    ~                  ~          |\n");
    printf("|      |-------|--------|             |---        --|                            ~黄~              ~   |\n");
    printf("|      |1-4学生|  宿舍5 |                                              ~                          ~    |\n");
    printf("|      |-------|--------|                                             ~                          ~     |\n");
    printf("|                                                                    ~           ~家~             ~    |\n");
    printf("|             |-----|                                                 ~                           ~    |\n");
    printf("|             |  弘-|                  |----|                       ~                      14      ~   |\n");
    printf("|             |  德-|----  -----  -----|- 5-|                                      ~湖~            ~   |\n");
    printf("|             |  楼-|    一食堂 6      |-栋-|                          ~                          ~    |\n");
    printf("|             |-----|__________________|----|                          ~                           ~   |\n");
    printf("|                                                                      ~ ~                      ~~     |\n");
    printf("|------------------------------------------------------------------------------------------------------|\n");
}
typedef int dist[N];//距离向量类型
typedef int path[N];//路径类型
//typedef enum{F,T} boolean;//F为0,T为1
void dijkstra(way g,int v0,path p,dist d)//迪杰斯拉算法
{
    int final[N];
    int i,j,k,v,min,x;
    /*第一步 初始化集合s与距离向量d*/
    for(v=0;v<g.n;v++)
    {
        final[v]=NOTVISITED;
        d[v]=g.len[v0][v];
        if (d[v]<FINITY&&d[v]!=0)
            p[v]=v0;
        else
            p[v]=-1;//v无前驱
        final[v0]=VISITED; d[v0]=0;//初始状态
    }
    /*第二步 依次找出n-1个节点加入到s*/
    for (i=1;i<g.n;i++)
    {
        min=FINITY;
        for (k=1;k<g.n;++k)//找最小边入节点
            if(!final[k]&&d[k]<min)//!final[k]表示k还在v-s中
            {
                v=k;min=d[k];
            }
            //printf("\n%c---%d\n",g.view1[v],min);//输出本次入选的顶点距离
            if(min==FINITY) return;
            final[v]=VISITED;
            /*第三步 修改s与v-s中各节点的距离*/
            for(k=1;k<g.n;++k)
                if(!final[k]&&(min+g.len[v][k]<d[k]))
                {
                    d[k]=min+g.len[v][k];
                    p[k]=v;
                }
    }
}
void print_gpd(way g,path p,dist d)//输出路径
{
    int st[N],i,pre,top=-1;
    for(i=0;i<g.n;i++)
    {
        printf("\n距离:%7d,路径:",d[i]);
        st[++top]=i;
        pre=p[i];
        while(pre!=-1)
        {
            st[++top]=pre;
            pre=p[pre];
        }
        while(top>0)
            printf("-->%2d",st[top--]);
    }
}
typedef int dist1[N][N];//距离向量类型
typedef int path1[N][N];//路径
void floyd(way g,path1 p,dist1 d)//佛洛依德算法
{
    int i,j,k;
    for(i=0;i<g.n;i++)//初始化
        for(j=0;j<g.n;j++)
        {
            d[i][j]=g.len[i][j];
            if(/*i!=j&&*/d[i][j]<FINITY)
                p[i][j]=i;
               /* p[j][i]=i;*/
            /*else p[i][j]=-1;*/
        }
        for (k=0;k<g.n;k++)//递推求解每一对定点间的最短距离
          {
              for(i=0;i<g.n;i++)
                  for(j=0;j<g.n;j++)
                      if(d[i][j]>(d[i][k]+d[k][j]))
                      {
                    d[i][j]=d[i][k]+d[k][j];
                    p[i][j]=k;
                    /*p[j][i]=k;*/
                      }
        }
}
void display(way g,dist1 d,path1 p,int i,int j)  
{         /*打印两个景点的路径及最短路径*/  
    int x,y;  /*creat(&g,"map.txt",0);*/
    x=i;  
    y=j;  
    printf("您要查询的两景点间最短路径是: \n\n"); 
    fflush(stdin);
    if(i<j)  
    {  
        printf("结束点:%d",y);  
        while(p[i][j]!=0)  
        {  
            printf("<--%d",d[i][j]);  
            if(i<j)  
                j=d[i][j];  
            else  
                i=d[j][i];  
        }  
        printf("<--开始点:%d\n\n",x);  
        printf("%d->%d的最短路径是: %d 米。\n\n",x,y,p[x][y]);  
    }  
    else  
    {  
        printf("开始点:%d",x); 
        while(p[i][j]!=0)  
        {  
            printf("-->%d",d[i][j]);  
            if(i<j)  
                j=d[i][j];  
            else  
                i=d[j][i];  
        }  
        printf("->%d结束点:\n\n",y);  
        printf("%d->%d的最短路径是: %d 米。\n\n",x,y,p[x][y]);  
    }  
}
void sshort()  
{    /*要查找的两景点的最短路径*/  
    int i,j;
    way g;dist1 d;path1 p;
    creat(&g,"map.txt",0);
    printf("请输入要查询的两个景点的数字编号(1->14)中间用空格间隔开。\n");  
    scanf("%d %d",&i,&j);  
    if(i>N||i<0||j>N||j<0)  
    {  
        printf("输入信息错误!\n\n");  
        printf("请输入要查询的两个景点的数字编号(1->14)中间用空格间隔开。\n");  
        scanf("%d %d",&i,&j);  
    }  
    else  
    {  
        floyd(g,d,p);  
        display(g,d,p,i,j);  
    }     
}
//void print_gpd1(way g,path1 p,dist1 d)
//{
//  int i,j,pre;
//  for(i=0;i<g.n;i++)
//      for(j=0;j<g.n;j++)
//          /*if(i!=j)
//          {
//              printf("%d-->%d:",&i,&j);*/
//              if(d[i][j]==FINITY)
//              {
//                  if(i!=j)
//                      printf("不存在路径");
//              }
//              else
//              {
//                  printf("%d->%d路径长度为%d:路径为:",i,j,d[i][j]);
//                  printf("%d,",i);//输出路径上的
//                  //Ppath(p,i,j);    //输出路径上的中间点
//                   printf("%d\n",j);//输出路径上的终点
//                  /*pre=d[i][j];
//                  while(pre!=-1)
//                  {
//                      pre=d[pre][j];
//                  }
//                  printf("%d",j);*/
//              }
//          }
//void sshort()
//{
//  way g;path1 p;dist1 d;int i,j;
//  creat(&g,"map.txt",0);
//  printf("请输入您的所在位置:");
//  scanf("%d",&i);
//  printf("请输入您要去的位置:");
//  scanf("%d",&j);
//  floyd(g,p,d);
//  print_gpd1(g,p,d);
//}
void all()
{
    way g;path p;dist d;int v0,v;
    creat(&g,"map.txt",0);
    printf("请输入您的所在位置v0:");
    scanf("%d",&v0);
    if(v0>N||v0<0)  
    {  
        printf("输入信息错误!\n\n");  
        printf("请输入您的所在位置v0:");  
        scanf("%d ",&v0);  
    }
    else{
    dijkstra(g,v0,p,d);
    printf("从当前位置出发的所有路径如下:\n");
    print_gpd(g,p,d);}
}
void show()
{
    int m;  
    printf("请输入查询景点序号(序号以地图标识为准):\n");  
    scanf("%d",&m); fflush(stdin);
    if(m>maxview)
        printf("\n输入错误");
    else if(m){
        printf("景点编号:%s\t",mgr.view1[m].date.number);  
        printf("景点名称:%s\n",mgr.view1[m].date.name);  
        printf("景点简介:%s\n",mgr.view1[m].date.intro);  }

   /* switch(m)  
    {  
    case m:  
        printf("景点编号:%s\t",mgr.view1[m].date.number);  
        printf("景点名称:%s\n",mgr.view1[m].date.name);  
        printf("景点简介:%s\n",mgr.view1[m].date.intro);  
        break;  
    case 2:  
        printf("景点编号:%s\t",mgr.view1[2].date.number);  
        printf("景点名称:%s\n",mgr.view1[2].date.name);  
        printf("景点简介:%s\n",mgr.view1[2].date.intro);   
        break;  
    case 3:  
        printf("景点编号:%s\t",mgr.view1[3].date.number);  
        printf("景点名称:%s\n",mgr.view1[3].date.name);  
        printf("景点简介:%s\n",mgr.view1[3].date.intro);  
        break;  
    case 4:  
        printf("景点编号:%s\t",mgr.view1[4].date.number);  
        printf("景点名称:%s\n",mgr.view1[4].date.name);  
        printf("景点简介:%s\n",mgr.view1[4].date.intro); 
        break;  
    case 5:  
        printf("景点编号:%s\t",mgr.view1[5].date.number);  
        printf("景点名称:%s\n",mgr.view1[5].date.name);  
        printf("景点简介:%s\n",mgr.view1[5].date.intro);  
        break;  
    case 6:  
        printf("景点编号:%s\t",mgr.view1[6].date.number);  
        printf("景点名称:%s\n",mgr.view1[6].date.name);  
        printf("景点简介:%s\n",mgr.view1[6].date.intro);  
        break;  
    case 7:  
        printf("景点编号:%s\t",mgr.view1[7].date.number);  
        printf("景点名称:%s\n",mgr.view1[7].date.name);  
        printf("景点简介:%s\n",mgr.view1[7].date.intro);
        break;  
    case 8:  
        printf("景点编号:%s\t",mgr.view1[8].date.number);  
        printf("景点名称:%s\n",mgr.view1[8].date.name);  
        printf("景点简介:%s\n",mgr.view1[8].date.intro);  
        break;  
    case 9:  
        printf("景点编号:%s\t",mgr.view1[9].date.number);  
        printf("景点名称:%s\n",mgr.view1[9].date.name);  
        printf("景点简介:%s\n",mgr.view1[9].date.intro);  
        break;  
    case 10:  
        printf("景点编号:%s\t",mgr.view1[10].date.number);  
        printf("景点名称:%s\n",mgr.view1[10].date.name);  
        printf("景点简介:%s\n",mgr.view1[10].date.intro);  
        break;  
    case 11:  
        printf("景点编号:%s\t",mgr.view1[11].date.number);  
        printf("景点名称:%s\n",mgr.view1[11].date.name);  
        printf("景点简介:%s\n",mgr.view1[11].date.intro);  
        break;  
    case 12:  
        printf("景点编号:%s\t",mgr.view1[12].date.number);  
        printf("景点名称:%s\n",mgr.view1[12].date.name);  
        printf("景点简介:%s\n",mgr.view1[12].date.intro);  
        break;  
    case 13:  
        printf("景点编号:%s\t",mgr.view1[13].date.number);  
        printf("景点名称:%s\n",mgr.view1[13].date.name);  
        printf("景点简介:%s\n",mgr.view1[13].date.intro);  
        break;  
    case 14:  
        printf("景点编号:%s\t",mgr.view1[14].date.number);  
        printf("景点名称:%s\n",mgr.view1[14].date.name);  
        printf("景点简介:%s\n",mgr.view1[14].date.intro); 
        break;  
    default:  
        printf("输入序号错误。\n");  
        break;  
    }  */
    printf("\n");  
}
int visit[N];//标记数组
//void init()//初始化标记术组
//{
//  for(int i=0;i<N;i++)
//      visit[i]=0;
//}
//void dfsm(way g,int v)
//{
//  
//  if(!visit[v])
//  {
//      printf("%d",g.len);
//      visit[v]=1;
//  }
//  for(int i=0;i<g.n;i++)
//      dfsm(g,v);
//}
//void dfsp()
//{
//  way g;init();
//  creat(&g,"map.txt",0);
//  
//  dfsm(g,1);
//}
void del()
{
int n,a;
     xinx c;  
    for(int i=0;i<N;i++)
    {
        printf("请输入要删除的景点编号<输入00结束插入>\n");
        scanf("%d",&n);
        if(n==00)
        {
            break;
        }
        printf("********************************************************\n");
        printf("                     1.顶点编号                         \n");
        printf("                     2.景点名称                         \n");
        printf("                     3.景点编号                         \n");
        printf("                     4.景点简介                         \n");
        printf("                     5.退出                             \n");
        printf("********************************************************\n");
        printf("请按提示输入要删除的信息:");
        scanf("%d",&a);
        switch(a)
        {
        case 1:
            mgr.view1[n].num=00/*mgr.view1[n+1].num*/;
            N-1;
        break;
        case 2:
            strcpy(mgr.view1[n].date.name,"删除成功"/*mgr.view1[n+1].date.name*/);
            N-1;
        break;
        case 3:
            strcpy(mgr.view1[n].date.number,"删除成功"/*mgr.view1[n+1].date.number*/);
            N-1;
        break;
        case 4:
            strcpy(mgr.view1[n].date.intro,"删除成功"/*mgr.view1[n+1].date.intro*/);
            N-1;
        break;
        case 5:return;
        }
    }
}
void menu()
{
    while(1)
    {
        printf("**********************************************************************\n");
        printf("*                    欢迎进入武汉工商学院导游系统                    *\n");
        printf("**********************************************************************\n");
        printf("                     1.武汉工商学院地图                               \n");
        printf("                     2.查询景点信息                                   \n");
        printf("                     3.修改景点信息                                   \n");
        printf("                     4.最短路径查询                                   \n");
        printf("                     5.所有路径查询                                   \n");
        printf("                     6.删除景点信息                                   \n");
        printf("                     7.添加景点信息                                   \n");
        printf("                     8.退出                                           \n");
        printf("**********************************************************************\n");
    int m;way g;
    printf("请输入你的选择:");
    scanf("%d",&m);
    switch(m)
    {
    case 1:
        map();
        break;
    case 2:
        show();
        break;
    case 3:
        chage();
        break;
    case 4:sshort();
        break;
    case 5:all();
        break;
    case 6:del();
        break;
    case 7:add();
        break;
    case 8:
        exit(0);
        break;
        default:  
        printf("输入序号错误。\n");  
        break;  
    }system("pause");
    system("cls");}
}
void main()
{   way g;
    input();
    menu();
    system("pause");
}
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值