当前位置:网站首页>MFC实现交通图导航系统
MFC实现交通图导航系统
2022-08-01 10:00:00 【_程序设计_】
MFC实现交通图导航系统
以某真实地区为数据源(自己选择),模拟一个类似百度或者高德的交通图导航系统。
背景描述:
伴随人们的生活节奏加快,汽车的数量陡增,由此引发的交通拥挤问题也日益明显。为此,世界各国都开始投入人力物力对交通系统进行研究。面对拥堵的交通,一款智能的交通导航系统能在指导人们出行的同时,在一定程度上也能缓解当前拥挤的交通现状。为了深化同学们对图的学习,本系统通过对基于时间依赖的最短路径查询的研究,设计与实现高效的导航系统,为人们出行提供重要指导。
数据分析:
地图信息:保存在文件中,包括各个地区的基本信息,路线信息等;
交通工具信息:包括运行时间信息、交通工具信息,例如:起始时间、结束时间信息等;
需求分析:
导航系统的基本功能有:实现地图的模拟,向地图中添加、删除、修改、查找地点信息、路线信息,查找起点和终点之间的最优路径。
功能分析
界面设计
a. 界面要求可以进行交互,要求实现图形界面而不是简单的控制台应用,界面要求美观、布局合理,符合用户使用习惯。
b. 界面可以体现出与用户的交互过程。
c. 可视化系统(QT、MFC等),根据交通工具的选择可视化交通路线。
添加、删除、修改、查看地点或者路线信息,并在可视化部分同步显示出来。
选择不同的交通工具,查看起点和终点之间的最优路径,同步显示路径长度,并用特定的颜色把路径标识出来。(交通工具:公交、地铁、公交与地铁混合乘坐)
获取当前系统时间以及目标交通工具的运行时刻表。
实现鼠标选择功能,即用鼠标完成路线信息查看、起点和终点的选择等。
需求分析
语言:C++
框架:MFC(实现交通图的图形化展现)
交通图编辑功能
采用文件存储交通图信息,从易读性考虑,采用文本格式存储数据,数据含每个顶点的信息和每条边的权重信息,另外顶点信息中包含图显示时候的X,Y坐标位置。考虑到能可视化编辑交通图(添加删除顶点和边信息,以及调整顶点的位置,修改顶点和边的信息等),因此需要额外做一个交通图编辑界面,在此界面可以创建新的顶点,创建新的边,以及删除不要的顶点和边,最重要的是支持鼠标选择某个顶点,将该顶点安置到其他位置,所有信息编辑好后,选择编辑菜单的保存功能,会把修改后的交通图信息重新保存到文件。
交通图编辑功能展现
交通图查询功能
读取文件中的图信息,构建邻接矩阵,采用迪杰斯特拉算法计算单源最短路径。考虑到用户界面的友好化设计,因此设计了一个起点的下拉框列表和一个终点的下拉框列表,用户从下拉框列表中选择起点和终点后,再选择按路程或是耗时查询,即可将路径在交通图中高亮显示,同时为了进一步提升用户体验,支持鼠标点击起点,再点击终点,就能高亮显示起点和终点之间的路径。
交通图查询功能展现
源码下载
链接:https://pan.baidu.com/s/1xmkQRFLmCrwWc9EY9qM4Gg?pwd=1111
提取码:1111
边栏推荐
猜你喜欢
随机推荐
VS“无法查找或打开PDB文件”是怎么回事?如何解决
What's up with VS "Cannot find or open PDB file"?How to solve
IntellJ IDEA如何显示换行符(line endings)
STM32入门开发 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)
MacOS下postgresql(pgsql)数据库密码为什么不需要填写或可以乱填写
跨域网络资源文件下载
广域铭岛入选2022年重庆市数字经济产业发展试点示范项目名单
Quantify daily work metrics
cisco交换机基本配置命令(华为交换机保存命令是什么)
《时代》杂志:元宇宙时代将改变世界
STM32 personal notes - program run and fly
WTM:ASP.NET Core快速开发利器!
笔记。。。。
experiment....
Detailed explanation of JVM runtime data area and JMM memory model
会议OA(待开会议&所有会议)
Custom Types - Enums, Unions
STM32 Personal Notes - Embedded C Language Optimization
50.【Application of dynamic two-dimensional array】
【cartographer ros】十: 延时和误差分析