1、 数据结构课程设计报告书 系 部 名 称系 部 名 称 计算机学院计算机学院 学 生 姓 名学 生 姓 名 专 业 名 称专 业 名 称 班班 级级 学号学号 指 导 教 师指 导 教 师 时间时间 20122012 年年 1212 月月 1515 日日 至至 20122012 年年 1212 月月 2121 日日 实验题目实验题目 *市著名景点导游系统市著名景点导游系统 一、实验目的一、实验目的 1.通过本次课程设计巩固数据结构课程中的所学 内容; 2.提高自己上机编程以及调试能力。 二、实验内容二、实验内容 1.设计家乡著名景点平面图,所含景点不少于 10 个。 以图中顶点表示城市中的各景
2、点,存放景点名称、代 号、简介等信息;以边表示路径,存放路径长度等相 关信息。 2.为来访游客提供图中任意景点相关信息的查询。 3.为来访游客提供图中任意景点的问路查询,即查询 任意两个景点之间的所有路径和一条最短的简单路 径。 三、需求分析三、需求分析 对所开发系统功能的描述,想要实现的目标,测试数据等 (问题提出、功能要求) 此系统可以进行韩城市的著名景点平面图查询, 可以所有任意景点的详细介绍,可以查询任意两景点 的所有路径,最短路径以及中转最少的路径,充当的 导航的功能,使得出来此地的人可以方便游览。 四、概要设计四、概要设计 1、方案设计 对系统进行分析,给出景区图 该系统给出了*市
3、的著名景点查询系统,可以实 现任意两点间的所有路径和最短路径查询,也可以从 文件中查询任意景点的信息。 2、数据结构说明 程序中定义的数据类型结构体(各个成员的作用) typedef struct Arcnode int top; /景点序号 char infoMax; /景点名称 char introduceMax; /景点介 绍 data; typedef struct node int adj; /景点间的距离 node; int visitedMax; typedef struct data dingdianMax; /景点数组 node arcsMaxMax; /邻接矩阵 int v
4、exnum,arcnum; /图的顶点数和 边数 AdjMatrix; 3、模块功能说明 对各个模块进行功能的描述 int LocateVex(); 求顶点位置函数 void CreateDN(); 创建图 void creatvisited(); 标志是否被访问过 void depthfirstsearch(); 深度遍历 void search(); 从任意一个顶点开始访问遍历 void chaxun(); 查询 void allways(); 所有路径 void zuiduan(); 最短路径 void menu(); 主菜单 五、详细设计及运行结果五、详细设计及运行结果 各模块流程图,
5、 函数之间相互调用的图示 ,程序设计过程及编码(不必给 出完整程序), 运行结果。 1, 功能函数的调用关系图; 2, 各功能函数的数据流程图 执行函数的操作执行函数的操作 调用相应函数调用相应函数 开始程序开始程序 显示主菜单显示主菜单 具体分函数具体分函数 退出程序退出程序 Main Dfs-path menu Leastpath depthfirstsearch allways chaxun creatvisited grap zuiduan search 3 重点设计及编码。 void zuiduan(AdjMatrix *G) int vi,v0;/起始点与终点 int visitM
6、ax;/访问标志 int pathMax;/记录当前查找到的最短路径 int distMax;/当前查找的最短路径长度 int i,j,k,t; int min; printf(“请输入起始点:n“); scanf(“%d“, if(v0G-vexnum) printf(“the data is error!n“); printf(“请重新输入:n“); scanf(“%d“, /初始化 for(vi=0;vivexnum;vi+) visitvi=0; distvi=G-arcsv0vi.adj; if(distvijidazhi) pathvi=v0; else pathvi=-3; /迪杰斯特拉斯算法求任意两点间的最短路径 v