C++校园导游系统课程设计Word文档格式.docx

上传人:b****6 文档编号:15948875 上传时间:2022-11-17 格式:DOCX 页数:15 大小:85.32KB
下载 相关 举报
C++校园导游系统课程设计Word文档格式.docx_第1页
第1页 / 共15页
C++校园导游系统课程设计Word文档格式.docx_第2页
第2页 / 共15页
C++校园导游系统课程设计Word文档格式.docx_第3页
第3页 / 共15页
C++校园导游系统课程设计Word文档格式.docx_第4页
第4页 / 共15页
C++校园导游系统课程设计Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++校园导游系统课程设计Word文档格式.docx

《C++校园导游系统课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++校园导游系统课程设计Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

C++校园导游系统课程设计Word文档格式.docx

1.以输出流显示校园的界面

2.以图的形式存储校园景点

3.以循环算法运行操作界面

4.以函数调用实现导游功能

4.使用说明

1.运行时显示校园景观图,同时显示选择菜单

2.选择菜单:

1.地点介绍2.最短路径3.结束“请选择功能”

3.地点介绍:

出现景点选择:

A.操场B.偏门C.图书馆D.大门E.食堂F.诚智楼G.博学楼H.创新楼I.海天楼J.明德楼请选择地点(选择加回车即能查询景点信息)

4.最短路径:

出现“输入起点位置”,输入后即出现“输入终点位置”(输入加回车即显示两景点的最短路径)

5.测试结果

1.运行界面

2.地点介绍

3.最短路径

6.附录

1.校园景观图实现函数:

voidviewshow()

{

cout<

<

"

东方学院实景图"

endl;

A操场-----B偏门"

/\\"

C图书馆------D大门E食堂----------\\"

/\\\\"

/\\F诚智楼---G博学楼-H创新楼"

/\\/"

I海天楼--------J明德楼"

}

2.建立图函数:

#include"

SeqList.h"

SeqQueue.h"

constintMaxVertices=10;

constintMaxWeight=10000;

classAdjMWGraph

private:

SeqListVertices;

//顶点信息的线性表

intEdge[MaxVertices][MaxVertices];

intnumOfEdges;

public:

AdjMWGraph(constintsz=MaxVertices);

intGraphEmpty()const

{returnVertices.ListEmpty();

intNumOfVertices(void)

{returnVertices.ListSize();

intNumOfEdges(void)

{returnnumOfEdges;

VerTGetValue(constinti);

intGetWeight(constintv1,constintv2);

voidInsertVertex(constVerT&

vertex);

voidInsertEdge(constintv1,constintv2,intweight);

voidDeleteVertex(constinti);

voidDeleteEdge(constintv1,constintv2);

intGetFirstNeighbor(constintv);

intGetNextNeighbor(constintv1,constintv2);

voidDepthFirstSearch(constintv,intvisited[],voidvisit(VerTitem));

voidBroadFirstSearch(constintv,intvisited[],voidvisit(VerTitem));

voidDepthFirstSearch(voidvisit(VerTitem));

voidBroadFirstSearch(voidvisit(VerTitem));

};

AdjMWGraph:

:

AdjMWGraph(constintsz)

for(inti=0;

i<

sz;

i++)

for(intj=0;

j<

j++)

{

if(i==j)Edge[i][j]=0;

elseEdge[i][j]=MaxWeight;

}

numOfEdges=0;

VerTAdjMWGraph:

GetValue(constinti)

if(i<

0||i>

Vertices.ListSize())

{

cerr<

参数i越界出错!

exit

(1);

}

returnVertices.GetData(i);

intAdjMWGraph:

GetWeight(constintv1,constintv2)

if(v1<

0||v1>

Vertices.ListSize()||v2<

0||v2>

参数v1或v2越界出错!

returnEdge[v1][v2];

voidAdjMWGraph:

InsertVertex(constVerT&

vertex)

Vertices.Insert(vertex,Vertices.ListSize());

InsertEdge(constintv1,constintv2,intweight)

Vertices.ListSize())

Edge[v1][v2]=weight;

numOfEdges++;

DeleteVertex(constintv)

i<

Vertices.ListSize();

i++)

j<

j++)

if((i==v||j==v)&

&

Edge[i][j]>

0&

Edge[i][j]<

MaxWeight)

{

Edge[i][j]=MaxWeight;

numOfEdges--;

}

Vertices.Delete(v);

DeleteEdge(constintv1,constintv2)

Vertices.ListSize()||v1==v2)

参数v1或v2出错!

Edge[v1][v2]=MaxWeight;

numOfEdges--;

GetFirstNeighbor(constintv)

if(v<

0||v>

Vertices.ListSize())

参数v1越界出错!

for(intcol=0;

col<

=Vertices.ListSize();

col++)

if(Edge[v][col]>

0&

Edge[v][col]<

MaxWeight)returncol;

return-1;

GetNextNeighbor(constintv1,constintv2)

for(intcol=v2+1;

col<

col++)

if(Edge[v1][col]>

Edge[v1][col]<

MaxWeight)returncol;

DepthFirstSearch(constintv,intvisited[],voidvisit(VerTitem))

visit(GetValue(v));

visited[v]=1;

intw=GetFirstNeighbor(v);

while(w!

=-1)

if(!

visited[w])DepthFirstSearch(w,visited,visit);

w=GetNextNeighbor(v,w);

}

BroadFirstSearch(constintv,intvisited[],voidvisit(VerTitem))

VerTu,w;

SeqQueuequeue;

//定义队列queue

queue.QInsert(v);

while(!

queue.QueueEmpty())

u=queue.QDelete();

w=GetFirstNeighbor(u);

while(w!

if(!

visited[w])

visit(GetValue(w));

visited[w]=1;

queue.QInsert(w);

w=GetNextNeighbor(u,w);

DepthFirstSearch(voidvisit(VerTitem))

int*visited=newint[NumOfVertices()];

NumOfVertices();

i++)visited[i]=0;

for(i=0;

visited[i])DepthFirstSearch

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1