目录
一、项目要求
1、【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
2、【基本要求】
(1) 设计你所在学校的校园平面图,所含景点不少于10个.以图中顶点表示校内各景点,存放景点名称、代号、简介 等信息;以边表示路径,存放路径长度等相关信息。
(2) 为来访客人提供图中任意景点相关信息的查询。
(3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
3、【测试数据】
以江苏科技大学长山校区为例。
4、【实现提示】
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网.顶点和边均含有相关信息.
二、问题分析
1、任务功能
(1)为来访客人提供图中任意景点相关信息的查询。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(3)提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
(4)校园导游图的景点和道路的修改扩充功能。
2、限制条件
数据的条件限定:采用无向图-邻接数组的存储结构
操作的限定:根据选择提示进行选择,输入特定指令实现人机交互
输出的限定:输出的是字符串
三、逻辑设计
1、变量类
景点类 景点代号(int)、景点名字、景点介绍(string)
边类 顶点,权值(int)
邻接矩阵类 顶点数组、关系数组、定点数、边数、图的类型、标志数组
最短路径类 前驱顶点、最短路径
2、变量
景点数组
边数组
路径 path
路径长度 length
3、函数
建图函数
读取景点信息函数
最短路径函数
修改信息函数
创建景点信息函数
菜单函数
画地图函数
main()
4、函数调用关系图
四、物理设计
伪代码
景点类 景点代号(int)、景点名字、景点介绍(string)
边类 顶点,权值(int)
邻接矩阵类 顶点数组、关系数组、定点数、边数、图的类型、标志数组
最短路径类 前驱顶点、最短路径
景点数组
边数组
路径 path
路径长度 length
建图函数 无向带权图、
读取景点信息函数 访问节点读取景点信息
最短路径函数 用DFS算法找到所有路径函数,在求出最短路径
修改信息函数 以景点的节点为媒介修改景点信息
创建景点信息函数 存入各景点的基本信息
菜单函数 将各景点以printf()函数展示出来
画地图函数 用printf()函数画一个简易的地图
main() 主函数,调用其他函数,以便进行人机交互