数据结构课程设计校园导游咨询_校园导游咨询课程设计

2020-02-27 其他范文 下载本文

数据结构课程设计校园导游咨询由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“校园导游咨询课程设计”。

9、校园导游咨询 问题描述:

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

⑴设计华东交通大学的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,⑵存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。⑶为来访客人提供图中任意景点相关信息的查询。⑷为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

#include #define MAXV 100

//最大顶点个数 #define INF 32767

//用32767表示∞ #include

//调用函数system改变字体颜色的头文件

typedef int InfoType;#define MAXV 100

//最大顶点个数 //以下定义邻接矩阵类型 typedef struct {

int no;

//顶点编号

InfoType info;

//顶点其他信息 } VertexType;

//顶点类型 typedef struct

//图的定义 {

int edges[MAXV][MAXV];//邻接矩阵

int vexnum,arcnum;

//顶点数,弧数

VertexType vexs[MAXV];//存放顶点信息 } MGraph;

void ecjtumap()//建立华东交通大学地图

{ printf(“t|------------------------------|n”);printf(“t|

|n”);printf(“t|

|n”);printf(“t|

----------

|n”);printf(“t|

==============================| 国防生宿舍|

|n”);printf(“t|。

----------

|n”);printf(“t|。

|n”);printf(“t|。

|n”);printf(“t|。

|n”);printf(“t|。

|n”);printf(“t|。

|n”);printf(“t|

|南区四食堂|

----------

|n”);printf(“t|。

|南区礼堂 |

|n”);printf(“t|。

----------

|n”);printf(“t|。

|n”);printf(“t|。

|n”);printf(“t|。

--------。

|n”);printf(“t|

================| 校训牌|。。。。

|n”);printf(“t|

=

--------

|n”);printf(“t|

=。

|n”);printf(“t|

=。

|n”);printf(“t|

--------

---------

|n”);printf(“t|----| 南区后门 |---------| 南区大门 |------------------------|n”);printf(“t|

--------

---------

|n”);printf(“t|

---------

|n”);printf(“t|-------------------------| 北区大门 |------------------------|n”);printf(“t|

--------

|n”);printf(“t|。

--------------

|n”);printf(“t|

===========================| 15栋综合教学楼 |

|n”);printf(“t|

=

--------------

|n”);printf(“t|

=。

|n”);printf(“t|

=。

|n”);printf(“t|

=。

|n”);printf(“t|

=。

|n”);printf(“t|

=

----------

|n”);printf(“t|

===============================| 经管食堂 |

|n”);printf(“t|

=

----------

|n”);printf(“t|

=

=

|n”);printf(“t|

=

=

|n”);printf(“t|

-----------

=

|n”);printf(“t|

|轨道交通食堂|====================| 学生宿舍 |

|n”);printf(“t|

------------

|n”);printf(“t|

|n”);printf(“t|------------------------------|n”);printf(“n”);} void DispMat(MGraph g)

//输出邻接矩阵g,即输出地图各景点的图的距离 { int i,j;for(i=0;i

for(j=0;j

if(g.edges[i][j]==INF)

printf(“%3s”,“∞”);//这里分别用%3s和%3d控制输出字符∞或数字宽度为3个字符

else printf(“%3d”,g.edges[i][j]);//这样比较方便观看景点的图的邻接矩阵g

printf(“n”);} } void listmap()//建立 景点的相关信息的总浏览表

{ printf(“t

华东交通大学景点一览

nn”);printf(“t|--------|n”);printf(“t| 1:南区大门

|n”);printf(“t|--------|n”);printf(“t| 2:校训牌

|n”);printf(“t|--------|n”);printf(“t| 3:图书馆

|n”);printf(“t|--------|n”);printf(“t| 4:南区一食堂

|n”);printf(“t|--------|n”);printf(“t| 5:孔目湖

|n”);printf(“t|--------|n”);printf(“t| 6:北区大门

|n”);printf(“t|--------|n”);printf(“t| 7:15栋教学楼

|n”);printf(“t|--------|n”);printf(“t| 8:北区食堂

|n”);printf(“t|--------|n”);printf(“t| 9:科技楼

|n”);printf(“t|--------|n”);printf(“t| 10:北区篮球场

|n”);printf(“t|--------|n”);} void introduce()//根据上面的浏览表,对应出相关信息 { int a=1;printf(“n”);printf(“请输入要查看的景点:n”);printf(“输入1~10的数字选择景点,其他数字返回上一级n”);while(0

switch(a)

{case 1:printf(“1:南区大门是进入华东交通大学南区的正门n”);break;

case 2:printf(“2:校训牌是激励我们大学生积极向上n”);break;

case 3:printf(“3:图书馆是给我们大学生丰富知识的海洋n”);break;

case 4:printf(“4:南区一食堂是南区学生的吃饭的地方n”);break;

case 5:printf(“5:孔目湖是华东交通大学最迷人的地方n”);break;

case 6:printf(“6:北区大门是进入华东交通大学北区的正门n”);break;

case 7:printf(“7:15栋教学楼是一栋综合型的教学楼n”);break;

case 8:printf(“8:北区食堂是北区学生吃饭的地方n”);break;

case 9:printf(“9:科技楼是大学生上机做实验的教学楼n”);break;

case 10:printf(“10:北区篮球场是大学生锻炼身体的地方n”);break;

} } } void show_didian(int n)//根据算法求出的整型数,对应出地点//根据 xx算法求出的数字,转化为文字描述 { switch(n){case 0:printf(“1.南区大门”);break;case 1:printf(“2.校训牌”);break;case 2:printf(“3.图书馆 ”);break;case 3:printf(“4.南区一食堂”);break;case 4:printf(“5.孔目湖”);break;case 5:printf(“6.北区大门”);break;case 6:printf(“7.15栋教学楼”);break;case 7:printf(“8.北区食堂”);break;case 8:printf(“9.科技楼”);break;case 9:printf(“10.北区篮球场”);break;} } void ppath(int path[][MAXV],int i,int j)//求最短路径经过的地点 { int k=path[i][j];if(k==-1)return;ppath(path,i,k);show_didian(k);printf(“->> ”);ppath(path,k,j);} void put_shortdistance(int x,int y,int A[][MAXV],int path[][MAXV],int n){ int i,j;for(i=0;i

for(j=0;j

if(A[i][j]==INF)

{

if(i!=j)printf(“从%d到%d没有路径n”,i,j);

}

else

{

if(i==x&&j==y)

{ printf(“最短路径为:从--”);

show_didian(i);

printf(“--到--”);

show_didian(j);

printf(“--路径为--:n”);

show_didian(i);//输出起点

printf(“->>”);

ppath(path,i,j);//求最短路径经过的中间路径,若没有则不输出

show_didian(j);//输出 终点

printf(“nt路径长度为:%dn”,A[i][j]);

}

} } void shortdistance(MGraph g,int x,int y)//求最短路径用的是弗洛伊德算法

{ int A[MAXV][MAXV],path[MAXV][MAXV];//path为中间路径不包括 起点 终点

int i,j,k,n=g.vexnum;for(i=0;i

//给A数组置初值

for(j=0;j

{

A[i][j]=g.edges[i][j];path[i][j]=-1;

} for(k=0;k

//计算Ak {

for(i=0;i

for(j=0;j

//这里的3个for循环

if(A[i][j]>(A[i][k]+A[k][j]))//所以时间复杂度O(n3)

{

A[i][j]=A[i][k]+A[k][j];path[i][j]=k;

} } put_shortdistance(x,y,A,path,n);} void menu(MGraph g)//建立 菜单 页面,可以无数次选择菜单,当输入5时退出系统 { int m=1,x=1,y=1;//m的菜单选择的功能x,y分别表示从x到y的问路查询

while(m!=5){ printf(“ttt|------------------------|n”);

printf(“ttt|----------菜单----------|n”);

printf(“ttt| 1:查看地图

|n”);

printf(“ttt| 2:地图详解

|n”);

printf(“ttt| 3:景点一览表

|n”);

printf(“ttt| 4:问路查询

|n”);

printf(“ttt| 5:退出

|n”);

printf(“ttt|------------------------|n”);

printf(“请输入1~5的数字n”);

scanf(“%d”,&m);

switch(m)

{case 1:ecjtumap();break;

case 2:listmap();

introduce();break;

case 3:listmap();

introduce();

printf(“n”);break;

case 4:listmap();

printf(“请输入起点:”);

scanf(“%d”,&x);x+=-1;

printf(“请输入终点:”);

scanf(“%d”,&y);y+=-1;

shortdistance(g,x,y);break;

case 5:printf(“ttt感想使用本系统,欢迎下次继续使用n”);break;

} } } void main(){ system(“color 0a”);//输出字体为绿色

int i,j;MGraph g;int A[MAXV][10]={

{INF, 1,INF,INF,INF, 1,INF,INF,INF,INF},{ 1,INF, 5, 6, 7,INF,INF,INF,INF,INF},{INF, 5,INF,INF, 2,INF,INF,INF,INF,INF},{INF, 6,INF,INF, 5,INF,INF,INF,INF,INF},{INF, 7, 2, 5,INF,INF,INF,INF,INF,INF},{ 1,INF,INF,INF,INF,INF, 3,INF, 5,INF},{INF,INF,INF,INF,INF, 3,INF, 2,INF,INF},{INF,INF,INF,INF,INF,INF, 2,INF, 8, 10},{INF,INF,INF,INF,INF, 5,INF, 8,INF, 2},{INF,INF,INF,INF,INF,INF,INF, 10, 2,INF}};g.vexnum=11;g.arcnum=11;for(i=0;i

for(j=0;j

g.edges[i][j]=A[i][j];printf(“n”);printf(“ttt华东交通大学导游咨询系统n”);menu(g);//进入导游系统,执行菜单功能 }

《数据结构课程设计校园导游咨询.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数据结构课程设计校园导游咨询
点击下载文档
相关专题 校园导游咨询课程设计 数据结构 导游 课程设计 校园导游咨询课程设计 数据结构 导游 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文