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);    
    }
    
     }
} 

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

(0)

相关推荐

  • C++实现校园运动会报名系统

    本文为大家分享了C++实现校园运动会报名系统的具体代码,供大家参考,具体内容如下 main.cpp #include "Campus.h" #include "List.h" /*校园运功会报名系统 实现报名信息录入 和 展示 */ /* 信息录入 1 . 建立运动会项目信息表 , 字段包括 , 项目编号 , 项目名称 , 学生姓名 ,院系 ,班级 ,性别 年龄,参赛时间 ,报名时间 ; 2 完成运动会报名信息新增页 , 3 查询报名 情况 4管理员系统可以更改报名

  • C语言实现校园导游系统

    本文实例为大家分享了C语言实现校园导游系统的具体代码,供大家参考,具体内容如下 前言 这是大二上学期刚学数据结构完成的课设项目,里面的功能还可以进一步的完善,仅供分享.参考.记录使用,加油! 设计目的 中国地大物博,文化底蕴颇深,旅游资源更是丰富多彩,也越来越流行“大学打卡热”,中国很多大学校园成为了游客们的打卡的“景区”,为了给来访西安邮电大学的游客更加方便.快捷的提供服务信息,以及为在校学生提供合适的行走路线,因此开发“西安邮电大学校园导航系统”给游客以及在校学生提供更好的服务.本次课程设计

  • C++实现校园导游系统

    本文实例为大家分享了C++实现校园导游系统的具体代码,供大家参考,具体内容如下 校园导游系统 问题描述:设计一个校园导游程序,完成校园信息的维护以及为来访的客人提供信息查询等服务功能. 基本要求: 设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,顶点的信息包括:景点名称.代号.简介等,以边表示道路,边上信息包括:两点距离.所需时间等相关信息.(注:数据的输入可以是键盘输入或文件输入两种方式)提供对校园景点信息的编辑(如:添加.删除.修改等)的功能:为来访客人提供图中任意景点

  • C++实现简单校园导游系统

    本文实例为大家分享了C++实现校园导游系统的具体代码,供大家参考,具体内容如下 #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <windows.h> #include <conio.h> #define INF 32767 int visited[100],password;  //password为后台管

  • Java基于Dijkstra算法实现校园导游程序

    本文实例为大家分享了Dijkstra算法实现校园导游程序的具体代码,供大家参考,具体内容如下 应用设计性实验 1.问题描述 校网导游程序: 一个校园有若干景点,如正校门.人工湖.磁悬浮列车实验室.樱花大道.图书馆.体育场体育馆和礼堂等.实现一个为来访客 人提供信息在询服务的程序,如查询景点的详细信息,查询两个景点之间的一条最短路径. 2.实验要求 (1)设计你所在学校的校园平面图,所含景点不少于10个.(2)来访客人可以输人任一个景点的名称,查询景点的详细信息.(3)来访客人可以输人任何两个景点

  • JavaWeb开发基于ssm的校园服务系统(实例详解)

    利用Javaweb开发的一个校园服务系统,通过发布自己的任务并设置悬赏金额,有些类似于赏金猎人,在这里分享给大家,有需要可以联系我:2186527424: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-

  • Java毕业设计实战之校园一卡通系统的实现

    一.项目简述(+需求文档+PPT) 功能:卡管理,卡消费,卡充值,图书借阅,消费,记录,注销等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: JSP + Servlet + html+ css + JavaScript + JQuery + Ajax 等等 用户管理操作控制层: /** * 用户管理操作 */ @Controller @Requ

  • C++用Dijkstra(迪杰斯特拉)算法求最短路径

    算法介绍 迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题.迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低. 算法思想 按路径长度递增次序产生算法: 把顶点集合V分成两组: (1)S:已求出的顶点的集合(初始时只含有源点V0) (2)V-S=T:尚未确定的顶点集合 将T中顶点按递增

  • Java 实战范例之校园二手市场系统的实现

    一.项目简述( +IW文档) 功能:本系统分用户前台和管理员后台. 本系统用例模型有三种,分别是游客.注册用户和系统管 理员.下面分别对这三个角色的功能进行描述: 1) 诞 游客是未注册的用户,他们可以浏览物物品,可以搜索物 品,如需购买物品,必须先注册成为网站用户.游客主要 功触吓: a.浏览物品 b.搜索物品 c.注册成为网站用户 2) 注册用户 注册用户是经过网站合法认证的用户,登录网站后可以浏 览物品.搜索物品.发布物品.关注物品.购买物品和查 看个人中心. 3) 系统管理员 系统管理员

  • Java实战之校园外卖点餐系统的实现

    目录 一.项目简述 二.效果图展示 三.核心代码 管理员controller控制层 管理员角色controler控制层 后台登录控制层 订单模块controller控制层 一.项目简述 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + css + JavaScript + JQuery + Ajax

随机推荐