数据结构实验报告实验十一.docx

上传人:b****1 文档编号:1665473 上传时间:2023-05-01 格式:DOCX 页数:18 大小:115.13KB
下载 相关 举报
数据结构实验报告实验十一.docx_第1页
第1页 / 共18页
数据结构实验报告实验十一.docx_第2页
第2页 / 共18页
数据结构实验报告实验十一.docx_第3页
第3页 / 共18页
数据结构实验报告实验十一.docx_第4页
第4页 / 共18页
数据结构实验报告实验十一.docx_第5页
第5页 / 共18页
数据结构实验报告实验十一.docx_第6页
第6页 / 共18页
数据结构实验报告实验十一.docx_第7页
第7页 / 共18页
数据结构实验报告实验十一.docx_第8页
第8页 / 共18页
数据结构实验报告实验十一.docx_第9页
第9页 / 共18页
数据结构实验报告实验十一.docx_第10页
第10页 / 共18页
数据结构实验报告实验十一.docx_第11页
第11页 / 共18页
数据结构实验报告实验十一.docx_第12页
第12页 / 共18页
数据结构实验报告实验十一.docx_第13页
第13页 / 共18页
数据结构实验报告实验十一.docx_第14页
第14页 / 共18页
数据结构实验报告实验十一.docx_第15页
第15页 / 共18页
数据结构实验报告实验十一.docx_第16页
第16页 / 共18页
数据结构实验报告实验十一.docx_第17页
第17页 / 共18页
数据结构实验报告实验十一.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构实验报告实验十一.docx

《数据结构实验报告实验十一.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告实验十一.docx(18页珍藏版)》请在冰点文库上搜索。

数据结构实验报告实验十一.docx

数据结构实验报告实验十一

深圳大学实验报告

 

课程名称:

数据结构实验与课程设计

实验项目名称:

实验十一:

最短路径

学院:

计算机与软件学院

专业:

指导教师:

蔡平

报告人:

文成学号:

2011150259班级:

5

实验时间:

2012-11-12

实验报告提交时间:

2012-11-19

教务部制

一、实验目的与要求:

目的:

1.掌握图形结构的输入方法。

2.掌握图形结构的说明,创建及图的存储表示。

3.掌握最短路径算法原理。

4.掌握最短路径的实现方法。

 

二、实验内容:

校园导航问题

一、问题描述:

设计深圳大学的平面图,至少包括8个以上的场所,每两个场所间可以有不同的路,且路长也可能不同。

1.(必做)找出从一个场所出发到达其它场所的最佳路径(最短路径)。

2.(选做)找出从任意场所到达另一场所的最佳路径(最短路径)。

二、基本要求

1、设计校园平面图,在校园景点选8个以上的景点。

以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。

2、为来访客人提供图中任意景点相关信息的查询。

3、为来访客人提供景点的问路查询,如查询从深大正门到各景点之间的最短路径。

(必做)

4、为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。

(选做)

5、界面要求:

有合理提示;每个功能可以设立菜单;根据提示,可以完成相关的功能要求

三、实验步骤与过程:

程序总流程:

输出地点信息

对应的邻接矩阵:

12345678

10max15max4max9max

2maxmaxmaxmax22maxmax

315maxmaxmax5maxmaxmax

4maxmax10maxmaxmaxmaxmax

54max5maxmaxmaxmax5

6max2maxmaxmaxmax3max

792maxmaxmax3maxmax

8maxmaxmaxmax5max6max

源代码:

#include

#include

#include

constintmax=99;

constintWeight[8][8]={{0,max,15,max,4,max,9,max},

{max,0,max,max,max,2,2,max},

{15,max,0,10,5,max,max,max},

{max,max,10,0,8,max,max,max},

{4,max,5,max,0,max,max,5},

{max,2,max,max,max,0,3,max},

{9,2,max,max,max,3,0,6},

{max,max,max,max,5,max,6,0}};

classscenery

{

public:

intNo;

char*name;

char*introduction;

voidscenerySet(intno,char*pname,char*pintroduction)

{

No=no;

name=pname;

introduction=pintroduction;

}

scenery(){}

~scenery(){}

};

classSZU

{

public:

sceneryplace[8];

intweight[8][8];

intdist[8];//存放源点到其它各点的最短路径

intpath[8];//存放在最短路径上该该顶点的前一顶点号

ints[8];//已求得的在最短路径上的顶点的顶点号

voidshortestPath(intstart,intend)

{

for(inti=0;i<8;i++)

{

dist[i]=weight[start][i];

s[i]=0;

if(i!

=start&&dist[i]

path[i]=start;

else

path[i]=max;

}

s[start]=1;dist[start]=0;

for(i=0;i<8;i++)

{

intmin=max;

intu=start;

for(intj=0;j<8;j++)

if(!

s[j]&&dist[j]

{

u=j;

min=dist[j];

}

s[u]=1;

for(intw=0;w<8;w++)

if(!

s[w]&&weight[u][w]

{

dist[w]=dist[u]+weight[u][w];

path[w]=u;

}

}

if(end!

=start)

{

cout<

";

intpre=path[end];

cout<

";

inttemp[max],k=0;

while(pre!

=max)

{

temp[k]=pre;

pre=path[pre];

k++;

}

while(k--)

{

cout<";

}

cout<

}

else

cout<<"终点、始点为同一个地方!

";

}

SZU()

{

place[0].scenerySet(1,"深大正门","深圳大学的正门");

place[1].scenerySet(2,"深大北门","深圳大学北边的门");

place[2].scenerySet(3,"深大南门","深圳大学南边的门");

place[3].scenerySet(4,"南区学生宿舍","大部分11级工科学生居住的地方");

place[4].scenerySet(5,"教学楼","学生上课的地方");

place[5].scenerySet(6,"文科楼","学生强身健体的主要地方");

place[6].scenerySet(7,"元平体育馆","深圳大学的正门");

place[7].scenerySet(8,"科技楼","研究科技的楼");

for(inti=0;i<8;i++)

for(intj=0;j<8;j++)

weight[i][j]=Weight[i][j];

}

~SZU(){}

};

voidmain()

{

cout<<"正在启动校园导航系统,请稍后..."<

cout<<"加载中...";Sleep(500);cout<<"启动完毕"<

cout<<"欢迎使用校园导航系统!

"<

SZUszu;

cout<<"*****************************校园导航系统*********************************\n\n";

cout<<"1.景点信息查询\n\n";

cout<<"2.景点问路查询\n\n";

cout<<"3.退出系统\n\n";

cout<<"*************************请选择一个操作(1/2/3)****************************\n"<

intchooseMenu;

cout<<"请输入您要使用的功能:

";

cin>>chooseMenu;

while

(1)

{

switch(chooseMenu)

{

case1:

{

cout<<"------------------------景点信息查询-----------------------"<

cout<<"1.深大正门"<<"2.深大北门"<

cout<<"3.深大南门"<<"4.南区学生宿舍"<

cout<<"5.教学楼"<<"6.文科楼"<

cout<<"7.元平体育馆"<<"8.科技楼"<

cout<<"0.返回上级目录"<

cout<<"-----------------------------------------------------------"<

while

(1)

{

cout<<"请输入您要查找的景点信息(输入0则返回):

";

intchoosescenery;

cin>>choosescenery;

if(choosescenery<=8&&choosescenery>=1)

cout<

"<

elseif(choosescenery==0)

break;

else

{

cout<<"输入不合法,请重新输入:

"<

continue;

}

}

break;

}

case2:

{

cout<<"------------------------景点问路查询-----------------------"<

cout<<"1.深大正门"<<"2.深大北门"<

cout<<"3.深大南门"<<"4.南区学生宿舍"<

cout<<"5.教学楼"<<"6.文科楼"<

cout<<"7.元平体育馆"<<"8.科技楼"<

cout<<"-----------------------------------------------------------"<

intstart,end,flag;

while

(1)

{

cout<<"请选择起点:

";

cin>>start;

cout<<"请选择终点:

";

cin>>end;

if(start<=8&&start>=1&&end<=8&&end>=1)

szu.shortestPath(start-1,end-1);

else

{

cout<<"输入不合法,请重新输入:

"<

continue;

}

cout<<"继续查询请输入1,返回上级目录请输入0."<

cin>>flag;

while(flag)

{

if(flag==1)

break;

else

{

cout<<"输入不合法,请重新输入:

"<

cin>>flag;

}

}

if(flag==0)

break;

}

break;

}

case3:

{

cout<<"正在退出系统"<

Sleep(100);

cout<<"............"<

Sleep(300);

cout<<"............"<

Sleep(300);

cout<<"............"<

Sleep(300);

cout<<"成功退出。

"<

Sleep(100);

cout<<"谢谢使用!

"<

exit(0);

}

default:

{

cout<<"输入不合法,请重新输入:

"<

break;

}

}

cout<

";

cin>>chooseMenu;

}

}

4、实验结果及数据处理分析:

初始界面:

退出:

景点信息查询:

景点问路查询:

实验基本达到实验要求。

五、实验结论:

程序实现了两点的最短路径查询和单点周边查询,满足设计的基本要求,考虑了返回、重输入等细节。

实验让我了解数据结构及其分类、数据结构与算法的密切关系;熟悉各种基本数据结构及其操作,学会根据实际问题来选择数据结构;掌握设计算法的步骤和分析方法;掌握数据结构在排序和查找等常用算法中的应用。

指导教师批阅意见:

成绩评定:

指导教师签字:

年月日

备注:

注:

1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2