设计一个校园导游系统,为来访的客人提供各种信息查询服务。(限1人完成)
(一)基本要求
1、 设计你的学校的校园平面图,所含景点10-15个。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
2、 为来访客人提供图中任意景点相关信息的查询。
3、 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
4、 提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
5、 提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳路径。
6、 区分汽车线路与步行线路。
7、 设计一实用的查询界面和功能菜单。
(二)、测试数据
由读者根据实际情况设定。
(三)、选做内容
1、 扩充道路信息,如道路类别(车道、人行道等)、沿途景色等级,以至可按客人所需分别查询人行路径和车行路径或观察路径。
2、 扩充每个景点的邻接景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
3、 实现校园导游图的仿真界面。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <cstdio>
#include <string>
#include <stack>
#include <deque>
using namespace std;
#define MAX 0x3f3f3f
stack<int> S;
deque <int> dq;
deque <deque<int> > dd;
int mapp[13][13];//步行;
int mapp1[13][13];//驾车
int dis[13]; //最短路
int vis[13]; // 标记
int path[20];
int flag[200]= {
0};
int e=0;
int aa[20]= {
0};
void dijstra(int b,int a,int c);
void init()//最初将长度存好
{
memset(mapp,MAX,sizeof(mapp));
memset(mapp1,MAX,sizeof(mapp));
memset(dis,MAX,sizeof(dis));
memset(vis,0,sizeof(vis));
mapp[1][2]=mapp[2][1]=200;
mapp[1][4]=mapp[4][1]=50;
mapp[1][5]=mapp[5][1]=80;
mapp[1][7]=mapp[7][1]=90;
mapp[2][3]=mapp[3][2]=40;
mapp[2][4]=mapp[4][2]=130;
mapp[2][6]=mapp[6][2]=50;
mapp[2][8]=mapp[8][2]=40;
mapp[2][9]=mapp[9][2]=55;
mapp[2][10]=mapp[10][2]=170;
mapp[2][11]=mapp[11][2]=280;
mapp[3][4]=mapp[4][3]=230;
mapp[3][8]=mapp[8][3]=5;
mapp[3][9]=mapp[9][3]=35;
mapp[3][10]=mapp[10][3]=28;
mapp[3][12]=mapp[12][3]=380;
mapp[4][5]=mapp[5][4]=50;
mapp[4][7]=mapp[7][4]=55;
mapp[4][10]=mapp[10][4]=180;
mapp[4][12]=mapp[12][4]=300;
mapp[5][6]=mapp[6][5]=80;
mapp[5][7]=mapp[7][5]=15;
mapp[5][10]=mapp[10][5]=200;
mapp[6][7]=mapp[7][6]=65;
mapp[6][8]=mapp[8][6]=275;
mapp[7][10]=mapp[10][7]=220;
mapp[7][11]=