logo资料库

数据结构课程设计—郑州师范校园导游系统.doc

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
摘 要
本次选做的课程设计是校园导游系统。该系统按照最短路的思想,为你寻找最优路径并介绍相应的景点信息,该导
基于数据结构的学习,我们设计了包含郑州师范学院老校区的全部景点和信息的该系统,为新生和外来来
目 录
1.需求分析
1.1功能分析
1.2设计平台
2.概要设计
2.1抽象数据类型图的定义如下:
2.2主程序:
2.3主要程序模块:
2.4程序详细的流程图:
3.主要设计(数据结构及模块算法说明)
3.1顶点、边、和图类型:
3.3函数调用模块:
4.测试分析
5.使用说明
6.测试结果
7.设计总结:
附录1:参考资料
附 录2:
程序源码:
郑州师范学院 信息科学与技术学院 《校园导游系统》课程设计报告 设计题目: 校园导游系统 班 组 组 级: 长: 员: 指导教师: 完成日期: 成绩:
摘 要 本次选做的课程设计是校园导游系统。该系统按照最短路的思想,为你寻找最优路径 并介绍相应的景点信息,该导游系统能为来访者提供景点介绍、景点查询、仿真地图和最 短路径之类的快捷指导。所谓系统,也不尽然,只是一个小小的信息提示程序。其中主要 运用到的程序、算法(Floyd 和 Dijkstra)也较简单实用。 基于数据结构的学习,我们设计了包含郑州师范学院老校区的全部景点和信息的该系 统,为新生和外来来宾提供方便。我们选择用二维数组来存储各个地点之间的距离和信息。 其中用到了两个比较经典的最短路算法:Floyd 和 Dijkstra 算法,相对来说比较简单。另 外,我们能够输出相应的仿真地图,和查询你想要了解的地点的详细信息。 I
目 录 摘 要.............................................................................................................................. I 目 录.............................................................................................................................II 1.需求分析.................................................................................................................... 3 1.1 功能分析 .............................................................................................................................. 3 1.2 设计平台 .............................................................................................................................. 3 2.概要设计.................................................................................................................... 4 2.1 抽象数据类型图的定义如下: .......................................................................................... 4 2.2 主程序: .............................................................................................................................. 4 2.3 主要程序模块: .................................................................................................................. 4 2.4 程序详细的流程图: .......................................................................................................... 5 3. 主要设计(数据结构及模块算法说明).............................................................. 6 3.1 顶点、边、和图类型: ...................................................................................................... 6 3.2 基本函数操作: .................................................................................................................. 6 3.3 函数调用模块: .................................................................................................................. 7 4.测试分析.................................................................................................................... 7 5.使用说明.................................................................................................................... 8 6.测试结果.................................................................................................................... 9 7.设计总结:...............................................................................................................11 附录 1:参考资料 ................................................................................................................... 12 附 录 2:程序源码................................................................................................................. 12 II
《郑州师范学院校园导游系统》课程设计 1.需求分析 1.1 功能分析 本次选做的课程设计是校园导游系统。本系统的目的是为用户提供路径查 询。根据用户指定的始点和终点输出相应路径,或者根据用户指定的景点输出景 点的信息。该系统为同学们提供快捷和最优的路径,本次课题要求用程序语言的 方式解决实际生活问题。此问题仅使用数据结构相应的图的知识就可以解决,也 可以解决实际问题。 1. 从郑州师范学院老校区的平面图中选取 16 个有代表性的景点,抽象成 一个无向带权图,以图中顶点表示景点,边上的权表示两地的之间的距离。 2. 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提 示信息”之后,由用户在键盘上输入演示程序中规定的运算命令:相应的输入 数据和运算结果显示在其后。 3. 程序执行的命令包括: ⑴ 构造相应的图存储相关信息; ⑵ 按照提示进行功能选择,(1:了解各个景点信息,2:按照 Floyd 算法 进行最短路查询,3:按照 Dijkstra 算法进行最短路径查询,4:打印出仿真地图, 5:退出,等); ⑶ 当用户选择退出时,结束。 4. 测试数据 (附后); 1.2 设计平台 (1)Windows2000 以上操作系统; (2)Microsoft Visual C++ 6.0; 3
《郑州师范学院校园导游系统》课程设计 2.概要设计 2.1 抽象数据类型图的定义如下: ADT Graph{ 数据对象 View:View 是具有相同特性的数据元素的集合,称为顶 点集。 数据关系 MGr: MGr.View[] MGr.length={(i,j)|i,j∈View,(i,j)表示 i 和 j 之间存在路径。} 基本操作: 此程序不涉及诸如创建图、销毁图等; } 2.2 主程序: int main() { 初始化; while() { 接受命令; 处理命令; 退出; } 2.3 主要程序模块: 4
《郑州师范学院校园导游系统》课程设计 主函数 调 用 函 数 2.4 程序详细的流程图: 通过设计思想,可设计出如下图所示的校园导游系统总流程图: 开始 进入程序 选择相应的操作 退 出 1.查询景点信息或4.打印地图 2.3.查找最短路径 执行相关操作 进入相关算法的函数 结束 图 4.1 一元多项式总流程图 5
《郑州师范学院校园导游系统》课程设计 3.主要设计(数据结构及模块算法说明) 3.1 顶点、边、和图类型: #define MaxViewNum 50 #define MaxRoad 1000 #define N 16 typedef struct { char name; char number; char introduce; }Elemtype; typedef struct { int num; Elemtype date; }View; typedef struct { //景点个数最大值 //定义路径无穷大 //目前景点个数 //景点名称 //景点代号 //景点介绍 //景点编号 //景点信息 //定义景点 View view[MaxViewNum];// unsigned int length[MaxViewNum][MaxViewNum];// int m,n; }MGraph; 3.2 基本函数操作: void init(GraphType &MGr.view,int i j) 6
《郑州师范学院校园导游系统》课程设计 //景点信息函数,初始化各个景点信息数据; void introduce(GraphType &MGraph.view,int m) //查询景点介绍函数,若 m 存在,则返回景点编号所在信息,并返回 TRUE //否则返回 FALSE; void floyd(GraphType &MGr.view,int i,j,k) //弗洛伊德算法,求两景点最短距离; void display(GraphType &MGr.view,int a b) //输出两景点路径及最短路径; int shortdistance(GraphType &MGr.view,int i j) //计算两景点最短路径函数; void map(GraphType &MGr.view) //景点平面图函数; 3.3 函数调用模块: main init introduce shortdistance display floyd map 4.测试分析 4.1 本程序参考数据结构图相关知识编写而成,其中的景点编号设计,弗 洛伊德算法部分以及迪杰斯拉算法,平面图绘制均由组员相关知识积累而完 成。期间或自我摸索,或查找资料,或请教同学,最终实现了该系统。编程过 程不断出现各种 BUG,均能设法将其化解,算是在实践中有了不小的收获。 以下是编写过程中出现过的几个较大漏洞,直接导致程序的 BUG,在此 记录下来作为之后自省。 7
分享到:
收藏