数据结构校园导游程序附源码.docx
- 文档编号:1588411
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:13
- 大小:139.22KB
数据结构校园导游程序附源码.docx
《数据结构校园导游程序附源码.docx》由会员分享,可在线阅读,更多相关《数据结构校园导游程序附源码.docx(13页珍藏版)》请在冰豆网上搜索。
数据结构校园导游程序附源码
实习报告
实验名称:
校园导游程序日期:
2017年7月7日
姓名:
李琛学号:
20153204班级:
信1501-2指导教师:
陈娜
1.实验题目
校园导游程序
[问题描述]用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。
要求能够回答有关景点介绍、游览路径等问题。
2.需求分析
游客通过终端可询问:
(1)从某一景点到另一景点的最短路径。
(2)游客从公园进入,选取一条最佳路线。
(3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。
[基本要求]
(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离.为此图选择适当的数据结构。
(2)把各种路径都显示给游客,由游客自己选择浏览路线。
(3)画出景点分布图于屏幕上。
3.概要设计
数据类型定义
#include
#include
//图的邻接矩阵存储表示
#defineMaxInt32767//极大值
#defineMVNum100//最大顶点数//顶点类型为字符型
typedefintArcType;//边的权值为整型
usingnamespacestd;
inti,j;
intS[100],D[100],min,Path[100];
intN=49;
intbestcost=MaxInt;//记录目前最少运费或代价
intcurrentcost;//当前运费或代价
intcurrent[MaxInt];//当前路径
intbest[MaxInt];//记录最佳路径
structAMGraphd
{
stringvexs[MVNum];//顶点表
intarcs[MVNum][MVNum];//邻接矩阵
intvexnum;//图的当前点数
intarcnum;//边数
stringinfo[MVNum];//景点介绍
}G;
主函数调用其它函数
4.详细设计
#include
#include
//图的邻接矩阵存储表示
#defineMaxInt32767//极大值
#defineMVNum100//最大顶点数//顶点类型为字符型
typedefintArcType;//边的权值为整型
usingnamespacestd;
inti,j;
intS[100],D[100],min,Path[100];
intN=49;
intbestcost=MaxInt;//记录目前最少运费或代价
intcurrentcost;//当前运费或代价
intcurrent[MaxInt];//当前路径
intbest[MaxInt];//记录最佳路径
structAMGraphd
{
stringvexs[MVNum];//顶点表
intarcs[MVNum][MVNum];//邻接矩阵
intvexnum;//图的当前点数
intarcnum;//边数
stringinfo[MVNum];//景点介绍
}G;
//-------------------------------------------------
voidswap(int&a,int&b)
{
inttemp=a;
a=b;
b=temp;
}
voidbacktrack(intt)//其实就是一个排列问题。
。
。
{
intj;
if(t==N)//到了最后一层。
。
{
if(G.arcs[current[t-1]][current[t]]+G.arcs[current[t]][1]+currentcost { bestcost=G.arcs[current[t-1]][current[t]]+G.arcs[current[t]][1]+currentcost; for(j=1;j<=N;j++) { best[j]=current[j]; } } } for(j=t;j<=N;j++)//排列。 。 。 { swap(current[t],current[j]); if(G.arcs[current[t-1]][current[t]]+currentcost //其实currentcost就是包括了1-->(t-1)的代价或运费 { currentcost+=G.arcs[current[t-1]][current[t]]; backtrack(t+1);//递归回溯 currentcost-=G.arcs[current[t-1]][current[t]]; } swap(current[t],current[j]); } } //------------------------------------------- voidall() { inti; for(i=1;i<=N;i++) { current[i]=i; } backtrack (2);//树的第一层已经找到了,所以从第二层开始 cout<<"最少的运费为: "< cout<<"最佳路径为: "; for(i=1;i<=N;i++) { cout< } cout< } //------------------------------------------- //顶点定位 intLocateVex(AMGraphdG,stringu) { inti=0; while(G.vexs[i]! =u)i++; returni; } intCreateUD(AMGraphd&G) { G.vexs[0]="正门";G.info[0]="学校正门"; G.vexs[1]="二教";G.info[1]="学校的第二教学楼"; G.vexs[2]="一教";G.info[2]="学校的第一教学楼"; G.vexs[3]="四教";G.info[3]="学校的第四教学楼,苏式建筑"; G.vexs[4]="校医院";G.info[4]="学生就医的地方,现已搬迁"; G.vexs[5]="春晖楼";G.info[5]="学校办公场所"; G.vexs[6]="三教";G.info[6]="第三教学楼,阶梯教室"; G.vexs[7]="沁园";G.info[7]="有喷泉、小广场和一个世纪钟"; G.vexs[8]="翠园";G.info[8]="与沁园相望,有比较多的植物"; G.vexs[9]="大礼堂";G.info[9]="学校大礼堂,晚会、话剧等节目的表演场所"; G.vexs[10]="泽园";G.info[10]="学校一景,有个凉亭"; G.vexs[11]="综餐";G.info[11]="综合餐厅,有两层,消费水平较高"; G.vexs[12]="体育馆";G.info[12]="室内运动场所"; G.vexs[13]="图书馆";G.info[13]="学校图书馆,有五层书库,自习室,电子阅览室等"; G.vexs[14]="信息楼";G.info[14]="信息科学与技术学院,学院楼不大"; G.vexs[15]="五教";G.info[15]="第五教学楼,苏式建筑"; G.vexs[16]="基教";G.info[16]="新建的基础教学楼,18层和地下两层,环境比较好"; G.vexs[17]="4/5/7/8栋";G.info[17]="学生宿舍"; G.vexs[18]="学二";G.info[18]="学二餐厅,上下两层"; G.vexs[19]="游泳馆";G.info[19]="学校游泳馆,收费的"; G.vexs[20]="三实验楼";G.info[20]="第三实验楼"; G.vexs[21]="超市";G.info[21]="学校超市,银行都在这"; G.vexs[22]="九栋";G.info[22]="最大的学生宿舍楼"; G.vexs[23]="学一";G.info[23]="学一餐厅,地上两层,地下一层,共三层"; G.vexs[24]="西操";G.info[24]="学校西边的操场,塑胶操场,比较大"; G.vexs[25]="机械楼";G.info[25]="机械学院的楼"; G.vexs[26]="九实验楼";G.info[26]="第九实验楼,主要是计算机上机"; G.vexs[27]="交通楼";G.info[27]="交通学院的楼"; G.vexs[28]="1栋";G.info[28]="学生第一宿舍楼"; G.vexs[29]="10/11栋";G.info[29]="学生宿舍"; G.vexs[30]="土木楼";G.info[30]="土木学院的楼"; G.vexs[31]="招待所";G.info[30]="铁道大学的招待所"; G.vexnum=32; G.arcnum=49; for(i=0;i for(j=0;j { G.arcs[i][j]=MaxInt; } G.arcs[0][2]=1;G.arcs[1][2]=2;G.arcs[1][6]=1;G.arcs[2][7]=1;G.arcs[2][3]=2;G.arcs[3][8]=1;G.arcs[3][4]=1;G.arcs[4][9]=1;G.arcs[4][5]=3;G.arcs[5][10]=1; G.arcs[2][0]=1;G.arcs[2][1]=2;G.arcs[6][1]=1;G.arcs[7][2]=1;G.arcs[3][2]=2;G.arcs[8][3]=1;G.arcs[4][3]=1;G.arcs[9][4]=1;G.arcs[5][4]=3;G.arcs[10][5]=1; G.arcs[6][7]=2;G.arcs[6][12]=1;G.arc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 校园 导游 程序 源码
![提示](https://static.bdocx.com/images/bang_tan.gif)