用无向带权图实现校园导航系统
2015-04-15 23:14
204 查看
学校数据结构的课程实验之一。
用到的数据结构:无向带权图
用到的算法:Floyd最短路径算法,深度优先搜索(递归实现)
需求分析:
设计一个校园导航程序,为访客提供各种信息查询服务:
1. 以图中各顶点表示校内各单位地点,存放单位名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。
2. 图中任意单位地点相关信息的查询。
3. 图中任意单位的问路查询,即查询任意两个单位之间的一条最短的路径。
2. 从图中任意单位地点出发的一条深度优先遍历路径。
主函数:
图类(邻接矩阵存储,因有向图是无向图的超集,所以可以定义为有向图,邻接矩阵为对称阵)
School.txt
用到的数据结构:无向带权图
用到的算法:Floyd最短路径算法,深度优先搜索(递归实现)
需求分析:
设计一个校园导航程序,为访客提供各种信息查询服务:
1. 以图中各顶点表示校内各单位地点,存放单位名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。
2. 图中任意单位地点相关信息的查询。
3. 图中任意单位的问路查询,即查询任意两个单位之间的一条最短的路径。
2. 从图中任意单位地点出发的一条深度优先遍历路径。
主函数:
#include <iostream> #include "School.h" using namespace std; int main() { School mySchool=School("School.txt"); char choice='y'; while(choice=='y') { cout << "请选择操作"<<endl; cout << "--------------------------------" << endl; cout << "1----查看地点列表" << endl; cout << "2----查看地点简介" << endl; cout << "3----查询最短路径" << endl; cout << "4----从一点出发遍历" << endl; cout << "5----任意一点的可直达地点" << endl; cout << "--------------------------------" << endl; int option; cin >> option; switch (option) { case 1: mySchool.display(); break; case 2: mySchool.search(); break; case 3: mySchool.path(); break; case 4: mySchool.traverse(); break; case 5: mySchool.reachable(); break; } cout << "继续吗?[y/n]"; cin >> choice; } return 0; }
图类(邻接矩阵存储,因有向图是无向图的超集,所以可以定义为有向图,邻接矩阵为对称阵)
0 前门 南门;车辆进出 1 教一楼 阶梯教室;英语教室 2 教二楼 普通教室 3 教三楼 实验室;办公室;阶梯教室 4 学一公寓 男生宿舍 5 学二公寓 男生宿舍 6 学三公寓 女生宿舍 7 学四公寓 男生宿舍 8 食堂 一层;二层;清真 9 水房 在食堂旁边 10 操场 300米一圈的跑道 11 图书馆 借阅部;自习室 12 后门 北门;取快递 # 0 1 4 8 6 100 100 10 100 1 100 10 100 1 0 3 4 5 100 10 100 1 100 1 100 100 4 3 0 10 1 7 100 6 100 10 100 100 8 8 4 10 0 2 100 3 100 100 6 5 9 7 6 5 1 2 0 3 6 9 100 7 9 8 5 100 100 7 100 3 0 100 5 100 6 7 8 4 100 10 100 3 6 100 0 2 7 2 9 10 2 10 100 6 100 9 5 2 0 4 100 2 3 7 100 1 100 100 100 100 7 4 0 10 4 5 1 1 100 10 6 7 6 2 100 10 0 8 5 7 100 1 100 5 9 7 9 2 4 8 0 2 9 10 100 100 9 8 8 10 3 5 5 2 0 100 100 100 8 7 5 4 2 7 1 7 9 100 0
School.txt
相关文章推荐
- 用无向带权图实现校园导航系统
- 滨州学院信息工程学院2015级数据结构 校园导航系统的设计与实现
- Android系统联系人全特效实现(上),分组导航和挤压动画
- Android系统联系人全特效实现(上),分组导航和挤压动画
- 终于研究出在系统上实现文字转语音功能,可以实现本公司的语音导航功能了
- 校园导航系统——迪杰特斯拉算法
- jsp struts2 mysql实现的校园宿舍管理系统项目源码
- 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航
- (八十一)利用系统自带App来实现导航
- Android系统联系人全特效实现(上),分组导航和挤压动画
- Android系统联系人全特效实现(上),分组导航和挤压动画
- Android系统联系人全特效实现(上),分组导航和挤压动画
- Android 实现系统联系人软件的分组和字母表导航效果(优化版)
- (八十一)利用系统自带App来实现导航
- Android系统联系人全特效实现(上),分组导航和挤压动画
- Android实现系统联系人字符分组以及字母表导航效果 .
- Android系统联系人全特效实现(上)分组导航和挤压动画(附源码)
- 信息化系统导航菜单样式实现
- 校园导航系统
- 北斗GPS两系统实现兼容互操作 提升导航定位精度