滨江学院 《数据结构》课程设计 题 目 校园导游咨询程序设计 学 号 学生姓名 院 系 专 业 指导教师 二O一二 年 月 日 1、题目的内容及要求 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 2、需求分析 (1)设计你的学校的校园平面图,所含景点不少于 10 个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 (3)为来访客人提供图中任意景点相关信息的查询。 3、概要设计 1.功能模块图; void CreateUDN();//创建无向网 void Search();//查询景点信息 void Shortestpath(int i);//计算最短路径 void Output(int sight1,int sight2);//输出函数 2.各个模块详细的功能描述。 CreateUDN();//创建无向网、主要用来保存各景点信息 Search();//查询景点信息、景点的名称及介绍 Shortestpath(int i);//计算两景点间最短路径 Output(int sight1,int sight2);//输出两景点最短路径及信息 3.模块图 4、详细设计 一、图的储存结构 #define Max 30000 #define NUM 10 typedef struct ArcCell { int adj; /* 相邻接的景点之间的路程 */ }ArcCell; /* 定义边的类型 */ typedef struct VertexType { int number; /* 景点编号 */ char *sight; /* 景点名称 */ char *description;/* 景点描述 */ }VertexType; /* 定义顶点的类型 */ typedef struct { VertexType vex[NUM]; /* 图中的顶点,即为景点 */ ArcCell arcs[NUM][NUM];/* 图中的边,即为景点间的距离 */ int vexnum,arcnum;/* 顶点数,边数 */ }MGraph; /* 定义图的类型 二、算法 1 .主程序 void main() { int v0,v1; char ck; CreateUDN(NUM,11); do { ck=Menu(); switch(ck) { case '1': system("cls"); // narrate(); printf("\n\n\t\t\t 请选择起点景点(0~9):"); scanf("%d",&v0); printf("\t\t\t 请选择终点景点(0~9):"); scanf("%d",&v1); ShortestPath(v0); /* 计算两个景点之间的最短路径 */ output(v0,v1); /* 计算两个景点之间的最短路径 */ printf("\n\n\t\t\t\t 请按任意键继续...\n"); getchar(); getchar(); break; case '2':search(); break; case '3'...