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

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

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

校园导游系统

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

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

基本要求:

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

#include<iostream>usingnamespacestd;intmain(){intn;constintMAX=1000;staticintr[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}};structvertex{stringname;intnumber;stringintroduction;}ver[MAX]={{"校门",0,"学校主校门"},{"体育场",1,"学校举办体育活动的地方"},{"六号公寓",2,"校内学生宿舍"},{"沉思广场",3,"大草地"},{"知源亭",4,"小亭子"},{"图书馆",5,"书的栖息地"},{"综合实验楼",6,"实验室云云"},{"大学会馆",7,"举办会议和活动的地方"},{"鹏远公寓",8,"鹏远学生宿舍"},{"工学馆",9,"主教楼"}};intb;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<<"请输入您将要进行的编辑操作编号:";inta;cin>>a;if(a==1){cout<<"请输入你将要添加的校园景点编号:";intm;cin>>m;ver[m].number=m;cout<<"请输入你将要添加的校园景点的名称:";stringx;cin>>x;ver[m].name=x;cout<<"请输入你将要添加的校园景点的介绍:";stringy;cin>>y;ver[m].introduction=y;cout<<"添加成功~"<<endl;}if(a==2){cout<<"请输入你将要删除的校园景点编号:";intm;cin>>m;ver[m]=ver[MAX-1];cout<<"删除成功~"<<endl;}if(a==3){cout<<"请输入你将要修改的校园景点编号:";intm;cin>>m;cout<<"你将要修改的景点信息如下:"<<endl;cout<<"景点名称:"<<ver[m].name<<endl;cout<<"景点介绍:"<<ver[m].introduction<<endl;cout<<"请输入修改后的景点名称:";stringx;cin>>x;ver[m].name=x;cout<<"请输入修改后的景点介绍信息:";stringy;cin>>y;ver[m].introduction=y;cout<<"修改成功~"<<endl;}}elseif(n==2){cout<<"|-----------------------------------------------------------------------------|"<<endl;cout<<"|游客您好,欢迎来到校园导游系统|"<<endl;cout<<"|1.查询校园景点信息|"<<endl;cout<<"|2.校门问路查询|"<<endl;cout<<"|3.任意景点问路查询|"<<endl;cout<<"|-----------------------------------------------------------------------------|"<<endl;cout<<"请按对应数字选择您所需要的服务:";into;cin>>o;switch(o){case1:{cout<<"查询校园景点信息"<<endl<<"请输入所要查询的景点号码:";intm;cin>>m;cout<<"景点名称:"<<ver[m].name<<endl;cout<<"景点介绍:"<<ver[m].introduction<<endl;}break;case2:{cout<<"校门问路查询"<<endl;cout<<"请输入您想要到达的目的地:";staticintx=0;staticinty;cin>>y;cout<<"最短路径为:";staticintu;staticintv;staticintw;staticinti;intt;staticints[MAX];staticintD[MAX][MAX];staticboolP[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];}intq=0;for(t=0;t<10;t++)if(P[x][y][t]==true){s[q]=t;q++;}intd;inth;intf[10]={100};staticintl=0;intz=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;case3:{cout<<"任意景点问路查询"<<endl<<"请输入您现在所在的地点";staticintx;cin>>x;cout<<"请输入您想要到的地点";staticinty;cin>>y;cout<<"最短路径为:";staticintu;staticintv;staticintw;staticinti;intt;staticints[MAX];staticintD[MAX][MAX];staticboolP[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];}intq=0;for(t=0;t<10;t++)if(P[x][y][t]==true){s[q]=t;q++;}intd;inth;intf[10]={100};staticintl=0;intz=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);}}}

到此,关于“C++如何实现校园导游系统”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!

发布于 2022-03-17 21:18:33
收藏
分享
海报
0 条评论
27
上一篇:pytorch中的view()函数怎么使用 下一篇:js位运算在实际中如何使用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码