校园导游咨询设计说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*******************

实践教学

*******************

兰州理工大学

计算机与通信学院

2012年春季学期

算法与数据结构课程设计

题目:校园导游咨询

专业班级:10级软件工程基地班

姓名:

学号:10500231

指导教师:王旭阳

成绩:

目录

摘要 (1)

1.采用类C语言定义相关的数据类型 (2)

2.各模块的伪码算法 (3)

3.函数的调用关系图 ........................... 错误!未定义书签。

4.调试分析 (5)

5.测试结果 (6)

6.源程序(带注释) (9)

总结 (21)

参考文献 (22)

致谢 (23)

附件Ⅰ任务一源程序代码 (24)

摘要

一个校园导游程序,为来访的客人提供各种信息查询服务:即查询任意两个景点之间的一条最短的简单路径。

校园平面图采用邻接矩阵(或邻接表)表示,主要功能有:校园平面图邻接矩阵(或邻接表)的建立、路径的查询、从某一景点到另一景点的最短路径查找、游客从大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在大门旁边)、显示输出等功能。

校园内景点不少于10个,算法对于合法的输入数据都能产生满足规格说明要求的结果。

通过该题目的设计过程,可以加深理解图的基本概念、逻辑结构及存储结构,掌握图的重要应用——最短路径等算法的应用,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养动手能力。

关键词:校园导游咨询;图;邻接矩阵。

1.采用类c语言定义相关的数据类型

typedef struct ArCell

{

int adj; //路径长度

}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

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

{

char name[30];

int num;

char introduction[100];//简介

}infotype;

typedef struct

{

infotype vexs[MAX_VERTEX_NUM];

AdjMatrix arcs;

int vexnum,arcnum;

}MGraph;

MGraph b;

void cmd(void);

MGraph InitGraph(void);

void Menu(void);

void Browser(MGraph *G);

void ShortestPath_DIJ(MGraph * G);

void Floyd(MGraph *G);

void Search(MGraph *G);

int LocateVex(MGraph *G,char* v);

2.各模块的伪码算法

void print(MGraph *G)

{

int v,w,t=0;

for(v=0;vvexnum;v++)

for(w=0;wvexnum;w++)

{ if(G->arcs[v][w].adj==INFINITY)

printf("∞ ");

else printf("%-7d",G->arcs[v][w].adj);

t++;

if(t%G->vexnum==0)

printf("\n");

}

}

3.函数调用关系

4.调试分析

调试中遇到的问题及对问题的解决方法

首先遇到问题是:库函数的调用,因为本程序调用很多系统库函数,所以在使用时常出错,有很多错从未见过,只能通过学习系统函数的是用来解决。还有就是对每位C或C++编程者来说最难用最灵活的指针了,虽然此程序用的不是很多但难免也会出错,这样的错误有时在编译时也发现不了,甚至是在用行时,也是是有是无,很难捉摸,这就要求我们,树立掌握指针的使用,在申明时记得初始化,至少应该是NULL,在运行时要注意,指针的越位和指针的悬挂等,面对如此难的问题,必须细心认真,和用一些习惯操作(防止意外发生)。算法的时间复杂度和空间复杂度:

此算法的空间复杂度是:200KB,

此算法的时间复杂度是:O(n4)。

5.测试结果

程序运行主界面如图5.1所示

图5.1 程序初始界面输入1后浏览校园全景如图5.2所示

图5.2浏览全景界面

图5.3查看游览路线界面输入3后运行界面如图5.4所示

图5.4两个景点间的最短距离

图5.5 查询景点界面

6.源程序(带注释)

#define INFINITY 10000 /*无穷大*/

#define MAX_VERTEX_NUM 40

#define MAX 40

#include

#include

#include

#include

typedef struct ArCell

{

int adj; //路径长度

}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

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

{

char name[30];

int num;

char introduction[100];//简介

}infotype;

typedef struct

{

infotype vexs[MAX_VERTEX_NUM];

AdjMatrix arcs;

int vexnum,arcnum;

}MGraph;

MGraph b;

void cmd(void);

相关文档
最新文档