校园导游系统实验报告1Word文档下载推荐.docx

上传人:b****2 文档编号:6138033 上传时间:2023-05-06 格式:DOCX 页数:15 大小:115.72KB
下载 相关 举报
校园导游系统实验报告1Word文档下载推荐.docx_第1页
第1页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第2页
第2页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第3页
第3页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第4页
第4页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第5页
第5页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第6页
第6页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第7页
第7页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第8页
第8页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第9页
第9页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第10页
第10页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第11页
第11页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第12页
第12页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第13页
第13页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第14页
第14页 / 共15页
校园导游系统实验报告1Word文档下载推荐.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

校园导游系统实验报告1Word文档下载推荐.docx

《校园导游系统实验报告1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《校园导游系统实验报告1Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。

校园导游系统实验报告1Word文档下载推荐.docx

若G中存在顶点u,则返回该顶点在图中的位置;

否则返回其他信息。

GetVex(G,v);

图G存在,v是G中的某个顶点。

返回v的值。

FirstAdjVex(G,v);

返回v的第一个邻接顶点。

若没有邻接点则返回为空。

NextAdjVex(G,v,w);

返回v的(相对于w的)下一个邻接顶点。

若w是v的最后一个邻接点,则返回空。

本程序用到了8个函数,函数列表如下:

1)主函数main()函数

2)对图中的节点进行初始化的InitGraph()函数

3)显示景点平面图和操作提示的Menu()函数

4)执行选择操作的功能的cmd()函数

5)显示所有景点描述信息的Browser()函数

6)实现迪杰斯特拉算法的ShortestPath_DIJ()函数

7)实现弗洛伊德算法的Floyd()函数

8)显示具体景点信息的Search()函数

各函数之间的调用关系如下:

3、详细设计:

typedefstructArCell{

intadj;

}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedefstruct{//图中顶点表示主要景点,存放景点的编号、名称、简介等信息,

charname[30];

intnum;

charintroduction[100];

}infotype;

typedefstruct{

infotypevexs[MAX_VERTEX_NUM];

AdjMatrixarcs;

intvexnum,arcnum;

}MGraph;

MGraphG;

Creategraph(&

G,V,VR){

Initial(G);

//初始化G

}

GetVex(G,v){

while(flag){

printf("

请输入要查询的景点编号:

"

);

scanf("

%d"

&

k);

while(k<

0||k>

=G->

vexnum){

景点编号不存在!

请重新输入景点编号:

}

if(k>

=0&

&

k<

G->

vexnum)

flag=0;

printf(G->

vexs[k].data)//输出查找的节点的信息

4、源程序代码:

#defineINFINITY10000/*无穷大*/

#defineMAX_VERTEX_NUM40//最大顶点数

#defineMAX40

#include<

stdlib.h>

stdio.h>

conio.h>

string.h>

windows.h>

typedefstructArCell{

typedefstruct{//图中顶点表示主要景点,存放景点的编号、名称、景点描述等信息,

MGraphb;

voidcmd(void);

MGraphInitGraph(void);

voidMenu(void);

voidBrowser(MGraph*G);

voidShortestPath_DIJ(MGraph*G);

voidFloyd(MGraph*G);

voidSearch(MGraph*G);

intLocateVex(MGraph*G,char*v);

voidmain(void){//主函数

system("

colorec"

modecon:

cols=110lines=30"

cmd();

voidcmd(void){

inti;

b=InitGraph();

Menu();

i);

while(i!

=5){

switch(i){

case1:

system("

cls"

Browser(&

b);

Menu();

break;

case2:

ShortestPath_DIJ(&

case3:

Floyd(&

case4:

Search(&

default:

}}

MGraphInitGraph(void){

MGraphG;

inti,j;

G.vexnum=10;

G.arcnum=24;

for(i=0;

i<

G.vexnum;

i++)

G.vexs[i].num=i;

strcpy(G.vexs[0].name,"

综合食堂"

strcpy(G.vexs[0].introduction,"

新建标准化食堂"

strcpy(G.vexs[1].name,"

东西办公楼"

strcpy(G.vexs[1].introduction,"

全体教师办公场所,楼高12层,各种设施齐全"

strcpy(G.vexs[2].name,"

7号学生宿舍楼"

strcpy(G.vexs[2].introduction,"

数理系男生宿舍楼,设备优良,顶层夏热冬冷,时常断水"

strcpy(G.vexs[3].name,"

医院"

strcpy(G.vexs[3].introduction,"

校医院,设施不是很齐全,只能看小病,收费较贵"

strcpy(G.vexs[4].name,"

图书馆"

strcpy(G.vexs[4].introduction,"

藏书60万册,设施良好,2楼为电子阅览室,环境幽雅"

strcpy(G.vexs[5].name,"

足球场"

strcpy(G.vexs[5].introduction,"

现代化塑胶跑道,人造草坪,适宜锻炼身体的场所"

strcpy(G.vexs[6].name,"

沁园"

strcpy(G.vexs[6].introduction,"

绿树成荫,适宜休息和读书"

strcpy(G.vexs[7].name,"

主教学楼"

strcpy(G.vexs[7].introduction,"

学院最大的教学楼,共5层,环形建筑,适宜学习"

strcpy(G.vexs[8].name,"

西教学楼"

strcpy(G.vexs[8].introduction,"

学院第二大教学楼,环境较差"

strcpy(G.vexs[9].name,"

多媒体楼"

strcpy(G.vexs[9].introduction,"

多媒体教学场所,设施先进,环境良好"

for(j=0;

j<

j++)

G.arcs[i][j].adj=INFINITY;

G.arcs[0][1].adj=120;

G.arcs[0][2].adj=150;

G.arcs[0][3].adj=195;

G.arcs[1][6].adj=210;

G.arcs[1][3].adj=100;

G.arcs[1][2].adj=180;

G.arcs[1][7].adj=215;

G.arcs[2][5].adj=350;

G.arcs[3][4].adj=100;

G.arcs[3][6].adj=110;

G.arcs[3][7].adj=175;

G.arcs[4][6].adj=20;

G.arcs[5][6].adj=110;

G.arcs[4][5].adj=100;

G.arcs[4][9].adj=80;

G.arcs[5][9].adj=150;

G.arcs[5][8].adj=200;

G.arcs[6][8].adj=80;

G.arcs[6][7].adj=60;

G.arcs[6][9].adj=70;

G.arcs[7][9].adj=120;

G.arcs[7][8].adj=80;

G.arcs[8][9].adj=150;

G.arcs[j][i].adj=G.arcs[i][j].adj;

returnG;

Sleep(2500);

voidShortestPath_DIJ(MGraph*G){

intv,w,i,min,t=0,x,flag=1,v0;

intfinal[20],D[20],p[20][20];

while(flag){

printf("

请输入一个起始景点编号:

v0);

while(v0<

0||v0>

vexnum){

if(v0>

v0<

for(v=0;

v<

vexnum;

v++){

final[v]=0;

D[v]=G->

arcs[v0][v].adj;

for(w=0;

w<

w++)

p[v][w]=0;

if(D[v]<

INFINITY){

p[v][v0]=1;

p[v][v]=1;

}

D[v0]=0;

final[v0]=1;

for(i=1;

i++){

min=INFINITY;

if(!

final[w])

if(D[w]<

min)

{v=w;

min=D[w];

}

final[v]=1;

w++)

final[w]&

(min+G->

arcs[v][w].adj<

D[w])){

D[w]=min+G->

arcs[v][w].adj;

for(x=0;

x<

x++)

p[w][x]=p[v][x];

p[w][w]=1;

}}

v++)

{if(v0!

=v)

{printf("

%s"

G->

vexs[v0].name);

if(v0<

v){

w++){

if(p[v][w]&

w!

=v0&

v0<

v)

printf("

-->

vexs[w].name);

t++;

}}

else{

for(w=G->

vexnum-1;

w>

=0;

w--){

v0>

v)

t++;

}}

if(t>

vexnum-1&

v0!

总路线长%dm\n\n"

D[v]);

voidFloyd(MGraph*G){

intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];

v++)

w++){

D[v][w]=G->

for(u=0;

u<

u++)

p[v][w][u]=0;

if(D[v][w]<

INFINITY){

p[v][w][v]=1;

p[v][w][w]=1;

if(D[v][u]+D[u][w]<

D[v][w]){

D[v][w]=D[v][u]+D[u][w];

i++)

p[v][w][i]=p[v][u][i]||p[u][w][i];

while(flag)

{

请输入出发点和目的地的编号,格式如:

(x->

y):

%d->

k,&

j);

vexnum||j<

0||j>

请重新输入出发点和目的地的编号:

vexnum&

j>

j)

{printf("

所走路径点:

%s-->

G->

vexs[k].name);

for(u=G->

u>

0;

u--)

if(p[k][j][u]&

k!

=u&

j!

k>

vexs[u].name);

vexs[j].name);

总路线长%dm\n"

D[k][j]);

else

if(p[k][j][u]&

voidSearch(MGraph*G)//查找函数。

{

intk,flag=1;

while(flag)

┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"

┃编号┃景点名称┃简介┃\n"

┃%-4d┃%-16s┃%-56s┃\n"

vexs[k].num,G->

vexs[k].name,G->

vexs[k].introduction);

┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"

Sleep(2500);

5、使用说明和功能测试:

程序初始执行的界面如下:

输入操作数1,查看全校景点的文字描述:

输入操作数2,查看从一个景点到其余各景点的路径:

输入操作数3,显示从一个景点到指定景点的最短路径:

输入操作数4,可以查看具体景点的详尽的文字描述:

选择5,退出程序。

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

当前位置:首页 > 总结汇报 > 学习总结

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

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