我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++实现校园导游系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++实现校园导游系统

本文实例为大家分享了C++实现校园导游系统的具体代码,供大家参考,具体内容如下

校园导游系统

问题描述:设计一个校园导游程序,完成校园信息的维护以及为来访的客人提供信息查询等服务功能。

基本要求:

设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,顶点的信息包括:景点名称、代号、简介等,以边表示道路,边上信息包括:两点距离、所需时间等相关信息。(注:数据的输入可以是键盘输入或文件输入两种方式)
提供对校园景点信息的编辑(如:添加、删除、修改等)的功能;
为来访客人提供图中任意景点相关信息的查询(可提供多种查询方式);
为来访客人提供从校门口到图中任意景点的问路查询(最短路径);
为来访客人提供图中任意景点间的问路查询。

#include<iostream>
using namespace std;
int main()
{    
     int n;
     const int MAX=1000;
     static int r [MAX][MAX]={
         {0,100,20,200,MAX,MAX,MAX,MAX,MAX,MAX},
        {100,0,MAX,80,MAX,MAX,MAX,90,MAX,MAX},
        {20,MAX,0,MAX,MAX,MAX,200,MAX,MAX,MAX},
        {200,80,MAX,0,40,MAX,MAX,70,MAX,50},
        {MAX,MAX,MAX,40,0,300,MAX,MAX,MAX,60},
        {MAX,MAX,MAX,MAX,300,0,50,MAX, MAX,MAX},
        {MAX,MAX,200,MAX,MAX,50,0,MAX,MAX,400},
        {MAX,90,MAX,70,MAX,MAX,MAX,0,50,50},
        {MAX,MAX,MAX,MAX,MAX,MAX,MAX,50,0,70},
        {MAX,MAX,MAX,50,60,MAX,400,50,70,0}
     };
     struct vertex
      {string name;
      int number;
      string introduction;
      }ver[MAX]={
      {"校门",0,"学校主校门"}, 
      {"体育场",1,"学校举办体育活动的地方"},
      {"六号公寓",2,"校内学生宿舍"},
      {"沉思广场",3,"大草地"},
      {"知源亭",4,"小亭子"},
      {"图书馆",5,"书的栖息地"},
      {"综合实验楼",6,"实验室云云"},
      {"大学会馆",7,"举办会议和活动的地方"},
      {"鹏远公寓",8,"鹏远学生宿舍"},
      {"工学馆",9,"主教楼"}
   };
     int b;
     for(b=0;b<1000;b++) {
         cout<<"|-----------------------------------------------------------------------------|"<<endl;
         cout<<"|                             欢迎来到校园导游系统                            |"<<endl; 
         cout<<"|                              1.管理员登陆                                   |"<<endl;
     cout<<"|                              2.游客登录                                     |"<<endl;
     cout<<"|                              3.退出校园导游系统                             |"<<endl;
     cout<<"|-----------------------------------------------------------------------------|"<<endl;
     cout<<"校园导游图:"<<endl; 
     cout<<"   8----------9--------------------------"<<endl;
     cout<<"    |        /||                        | "<<endl;
     cout<<"     |   ---/ | |                       |  "<<endl;
     cout<<"      | /     |  ---                    | "<<endl;
     cout<<"       7      |     |                   | "<<endl;
     cout<<"       | |    |      |                  | "<<endl;
     cout<<"       |  |   |       |                 |          "<<endl;
     cout<<"       |   ---3-------4--------------5  |      "<<endl;
     cout<<"       |  ---/|                       | |    "<<endl;
     cout<<"       | /    |                        ||  "<<endl;
     cout<<"       1      |                 ------- 6    "<<endl;
     cout<<"        |     |                /        "<<endl;
     cout<<"         |    |    ------------         "<<endl;
     cout<<"          |   |   /        "<<endl;
     cout<<"           |  |  /              "<<endl;
     cout<<"            | | 2    "<<endl;
     cout<<"              |/ "<<endl;      
     cout<<"              0          "<<endl;
     cout<<"景点编号:"<<endl;
     cout<<"0.校门              1.体育场"<<endl;
     cout<<"2.六号公寓          3.沉思广场"<<endl;
     cout<<"4.知源亭            5.图书馆"<<endl; 
     cout<<"6.综合实验楼        7.大学会馆"<<endl;
     cout<<"8.鹏远公寓          9.工学馆"<<endl;
     cout<<"请按对应数字选择您操作:";
     cin>>n;
    if(n==1)
    {        
        cout<<"|-----------------------------------------------------------------------------|"<<endl;
            cout<<"|                        管理员您好,欢迎来到校园导游系统                     |"<<endl; 
        cout<<"|                              1.添加校园景点信息                             |"<<endl;
        cout<<"|                              2.删除校园景点信息                             |"<<endl;
            cout<<"|                              3.修改校园景点信息                             |"<<endl;
        cout<<"|-----------------------------------------------------------------------------|"<<endl;
        cout<<"请输入您将要进行的编辑操作编号:";
        int a;
        cin>>a;
        if(a==1){
        cout<<"请输入你将要添加的校园景点编号:";
        int m;
        cin>>m;
        ver[m].number=m;
        cout<<"请输入你将要添加的校园景点的名称:";
        string x;
        cin>>x;
        ver[m].name=x; 
        cout<<"请输入你将要添加的校园景点的介绍:";
        string y;
        cin>>y;
        ver[m].introduction=y;
        cout<<"添加成功~" <<endl; 
        }
        if(a==2){
            cout<<"请输入你将要删除的校园景点编号:";
            int m;
            cin>>m;
            ver[m]=ver[MAX-1];
            cout<<"删除成功~"<<endl;
        }
        if(a==3){
        cout<<"请输入你将要修改的校园景点编号:"; 
        int m;
        cin>>m;
        cout<<"你将要修改的景点信息如下:"<<endl;
        cout<<"景点名称:"<<ver[m].name<<endl;
        cout<<"景点介绍:"<<ver[m].introduction<<endl;
        cout<<"请输入修改后的景点名称:";
        string x;
        cin>>x;
        ver[m].name=x;
        cout<<"请输入修改后的景点介绍信息:";
        string y;
        cin>>y;
        ver[m].introduction=y;
        cout<<"修改成功~"<<endl;
        }
            
            
    } 
    else if(n==2)
        {
            cout<<"|-----------------------------------------------------------------------------|"<<endl;
            cout<<"|                         游客您好,欢迎来到校园导游系统                      |"<<endl; 
        cout<<"|                              1.查询校园景点信息                             |"<<endl;
        cout<<"|                              2.校门问路查询                                 |"<<endl;
            cout<<"|                              3.任意景点问路查询                             |"<<endl;
        cout<<"|-----------------------------------------------------------------------------|"<<endl;
        cout<<"请按对应数字选择您所需要的服务:";
        int o;
        cin>>o;
    
    switch(o) 
    {
        case 1:{cout<<"查询校园景点信息"<<endl<<"请输入所要查询的景点号码:";
        int m;
        cin>>m;
        cout<<"景点名称:"<<ver[m].name<<endl;
        cout<<"景点介绍:"<<ver[m].introduction<<endl;    
        }break;
        case 2:{
        cout<<"校门问路查询"<<endl;
        cout<<"请输入您想要到达的目的地:";
        static int x=0;
        static int y;
        cin>>y; 
        cout<<"最短路径为:" ;
     static int u;
     static int v;
     static int w;
     static int i;
     int t;
     static int s[MAX];
     static int D[MAX][MAX];
     static bool P[10][10][10];
     for(v=0;v<10;v++)
     for(w=0;w<10;w++){
         D[v][w]=r[v][w];
         for(u=0;u<10;u++) P[v][w][u]=0;
         if(D[v][w]<MAX){
             P[v][w][v]=1;P[v][w][w]=1;
         }
     }
     for(u=0;u<10;u++)
     for(v=0;v<10;v++)
     for(w=0;w<10;w++)
     if(D[v][u]+D[u][w]<D[v][w]){
         D[v][w]=D[v][u]+D[u][w];
         for(i=0;i<10;i++)
         P[v][w][i]=P[v][u][i]||P[u][w][i];
     }
      int q=0;
     for(t=0;t<10;t++)
     if(P[x][y][t]==true) {
         s[q]=t;
         q++;
     }
     int d;
     int h;
     int f[10]={100};
     static int l=0;
     int z=x;
     for(d=0;d<q-1;d++)
     for(h=0;h<q;h++)
     if(D[z][s[h]]==r[z][s[h]]&&D[z][s[h]]>0&&s[h]!=f[l]){
       cout<<z<<"-->";
       l=l+1;
       f[l]=z;
     z=s[h];
     break;
     }
     cout<<y;
     cout<<"这两个地点间的最短距离为"<<D[0][y]<<"m"<<endl;
     cout<<"从所在地步行到目的地约用时为"<<D[0][y]/80.0<<"min"<<endl;
     
        }break;
        case 3:{cout<<"任意景点问路查询"<<endl<<"请输入您现在所在的地点";
        static int x;
        cin>>x;
        cout<<"请输入您想要到的地点";
        static int y;
        cin>>y;
        cout<<"最短路径为:" ;
     static int u;
     static int v;
     static int w;
     static int i;
     int t;
     static int s[MAX];
     static int D[MAX][MAX];
     static bool P[10][10][10];
     for(v=0;v<10;v++)
     for(w=0;w<10;w++){
         D[v][w]=r[v][w];
         for(u=0;u<10;u++) P[v][w][u]=false;
         if(D[v][w]<MAX){
             P[v][w][v]=true;P[v][w][w]=true;
         }
     }
     for(u=0;u<10;u++)
     for(v=0;v<10;v++)
     for(w=0;w<10;w++)
     if(D[v][u]+D[u][w]<D[v][w]){
         D[v][w]=D[v][u]+D[u][w];
         for(i=0;i<10;i++)
         P[v][w][i]=P[v][u][i]||P[u][w][i];
     }
     int q=0;
     for(t=0;t<10;t++)
     if(P[x][y][t]==true) {
         s[q]=t;
         q++;
     }
     int d;
     int h;
     int f[10]={100};
     static int l=0;
     int z=x;
     for(d=0;d<q-1;d++)
     for(h=0;h<q;h++)
     if(D[z][s[h]]==r[z][s[h]]&&D[z][s[h]]>0&&s[h]!=f[l]){
       cout<<z<<"-->";
       l=l+1;
       f[l]=z;
     z=s[h]; 
     break; 
     }
     cout<<y;
     cout<<"这两个地点间的最短距离为"<<D[x][y]<<"m"<<endl;
     cout<<"从所在地步行到目的地约用时为"<<D[x][y]/80.0<<"min"<<endl;
        
        }break;
 
    }
    }
    else {cout<<"感谢使用校园导游系统"<<endl;
        exit(0);    
    }
    
     }
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++实现校园导游系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++如何实现校园导游系统

这篇文章主要介绍“C++如何实现校园导游系统”,在日常操作中,相信很多人在C++如何实现校园导游系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++如何实现校园导游系统”的疑惑有所帮助!接下来,请跟着小编
2023-06-29

如何使用C语言实现校园导游系统

这篇文章主要介绍了如何使用C语言实现校园导游系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设计目的中国地大物博,文化底蕴颇深,旅游资源更是丰富多彩,也越来越流行“大学打卡
2023-06-29

如何使用C++实现简单校园导游系统

小编给大家分享一下如何使用C++实现简单校园导游系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下#include #includ
2023-06-29

Java怎么实现的具有GUI的校园导航系统

小编给大家分享一下Java怎么实现的具有GUI的校园导航系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java基本数据类型有哪些Java的基本数据类型分为:1
2023-06-14

Java怎么实现校园外卖点餐系统

这篇文章主要介绍“Java怎么实现校园外卖点餐系统”,在日常操作中,相信很多人在Java怎么实现校园外卖点餐系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现校园外卖点餐系统”的疑惑有所帮助!
2023-06-29

怎么用Java实现校园跑腿管理系统

这篇文章主要介绍“怎么用Java实现校园跑腿管理系统”,在日常操作中,相信很多人在怎么用Java实现校园跑腿管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Java实现校园跑腿管理系统”的疑惑有所
2023-06-26

Java中如何进行校园一卡通系统的实现

这篇文章的内容主要围绕Java中如何进行校园一卡通系统的实现进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!一、项目简述(+需求文档+PPT)功能:卡
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录