C++校园导游系统课程设计.docx

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

C++校园导游系统课程设计.docx

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

C++校园导游系统课程设计.docx

C++校园导游系统课程设计

1.需求分析…………………………………………………3

2.概要设计.............................………………………………3

3.详细设计………………………………………………….3

4.使用说明………………………………………………….3

5.测试结果……………………………………………….…4

6.附录………………………………………………………5

7.参考文献…………………………………………………14

 

1.

需求分析

设计一个校园导游程序,为来访的客人提供各种信息查询服务。

2.概要设计

(1)设计你所在学校的校园平面图,所含景点不少于10个。

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

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

(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

3.详细设计

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<<"东方学院实景图"<

cout<<""<

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

cout<<"/\\"<

cout<<"/\\"<

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

cout<<"/\\\\"<

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

cout<<"/\\/"<

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

cout<<""<

}

2.建立图函数:

#include"SeqList.h"

#include"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

for(intj=0;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>Vertices.ListSize())

{

cerr<<"参数v1或v2越界出错!

"<

exit

(1);

}

returnEdge[v1][v2];

}

voidAdjMWGraph:

:

InsertVertex(constVerT&vertex)

{

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

}

voidAdjMWGraph:

:

InsertEdge(constintv1,constintv2,intweight)

{

if(v1<0||v1>Vertices.ListSize()||v2<0||v2>Vertices.ListSize())

{

cerr<<"参数v1或v2越界出错!

"<

exit

(1);

}

Edge[v1][v2]=weight;

numOfEdges++;

}

voidAdjMWGraph:

:

DeleteVertex(constintv)

{

for(inti=0;i

for(intj=0;j

if((i==v||j==v)&&Edge[i][j]>0&&Edge[i][j]

{

Edge[i][j]=MaxWeight;

numOfEdges--;

}

Vertices.Delete(v);

}

voidAdjMWGraph:

:

DeleteEdge(constintv1,constintv2)

{

if(v1<0||v1>Vertices.ListSize()||v2<0||v2>Vertices.ListSize()||v1==v2)

{

cerr<<"参数v1或v2出错!

"<

exit

(1);

}

Edge[v1][v2]=MaxWeight;

numOfEdges--;

}

intAdjMWGraph:

:

GetFirstNeighbor(constintv)

{

if(v<0||v>Vertices.ListSize())

{

cerr<<"参数v1越界出错!

"<

exit

(1);

}

for(intcol=0;col<=Vertices.ListSize();col++)

if(Edge[v][col]>0&&Edge[v][col]

return-1;

}

intAdjMWGraph:

:

GetNextNeighbor(constintv1,constintv2)

{

if(v1<0||v1>Vertices.ListSize()||v2<0||v2>Vertices.ListSize())

{

cerr<<"参数v1或v2越界出错!

"<

exit

(1);

}

for(intcol=v2+1;col<=Vertices.ListSize();col++)

if(Edge[v1][col]>0&&Edge[v1][col]

return-1;

}

voidAdjMWGraph:

:

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);

}

}

voidAdjMWGraph:

:

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

{

VerTu,w;

SeqQueuequeue;//定义队列queue

visit(GetValue(v));

visited[v]=1;

queue.QInsert(v);

while(!

queue.QueueEmpty())

{

u=queue.QDelete();

w=GetFirstNeighbor(u);

while(w!

=-1)

{

if(!

visited[w])

{

visit(GetValue(w));

visited[w]=1;

queue.QInsert(w);

}

w=GetNextNeighbor(u,w);

}

}

}

voidAdjMWGraph:

:

DepthFirstSearch(voidvisit(VerTitem))

{

int*visited=newint[NumOfVertices()];

for(inti=0;i

for(i=0;i

if(!

visited[i])DepthFirstSearch

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

当前位置:首页 > 求职职场 > 笔试

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

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