MFC实现交通咨询系统
以某真实地区为数据源(自己选择),模拟一个类似百度或者高德的交通图导航系统。
背景描述:
伴随人们的生活节奏加快,汽车的数量陡增,由此引发的交通拥挤问题也日益明显。为此,世界各国都开始投入人力物力对交通系统进行研究。面对拥堵的交通,一款智能的交通导航系统能在指导人们出行的同时,在一定程度上也能缓解当前拥挤的交通现状。为了深化同学们对图的学习,本系统通过对基于时间依赖的最短路径查询的研究,设计与实现高效的导航系统,为人们出行提供重要指导。
数据分析:
地图信息:保存在文件中,包括各个地区的基本信息,路线信息等;
交通工具信息:包括运行时间信息、交通工具信息,例如:起始时间、结束时间信息等;
需求分析:
导航系统的基本功能有:实现地图的模拟,向地图中添加、删除、修改、查找地点信息、路线信息,查找起点和终点之间的最优路径。
功能分析
界面设计
a. 界面要求可以进行交互,要求实现图形界面而不是简单的控制台应用,界面要求美观、布局合理,符合用户使用习惯。
b. 界面可以体现出与用户的交互过程。
c. 可视化系统(QT、MFC等),根据交通工具的选择可视化交通路线。
添加、删除、修改、查看地点或者路线信息,并在可视化部分同步显示出来。
选择不同的交通工具,查看起点和终点之间的最优路径,同步显示路径长度,并用特定的颜色把路径标识出来。(交通工具:公交、地铁、公交与地铁混合乘坐)
获取当前系统时间以及目标交通工具的运行时刻表。
实现鼠标选择功能,即用鼠标完成路线信息查看、起点和终点的选择等。
需求分析
语言:C++
框架:MFC(实现交通图的图形化展现)
交通图编辑功能
采用文件存储交通图信息,从易读性考虑,采用文本格式存储数据,数据含每个顶点的信息和每条边的权重信息,另外顶点信息中包含图显示时候的X,Y坐标位置。考虑到能可视化编辑交通图(添加删除顶点和边信息,以及调整顶点的位置,修改顶点和边的信息等),因此需要额外做一个交通图编辑界面,在此界面可以创建新的顶点,创建新的边,以及删除不要的顶点和边,最重要的是支持鼠标选择某个顶点,将该顶点安置到其他位置,所有信息编辑好后,选择编辑菜单的保存功能,会把修改后的交通图信息重新保存到文件。
交通图编辑功能展现
交通图查询功能
读取文件中的图信息,构建邻接矩阵,采用迪杰斯特拉算法计算单源最短路径。考虑到用户界面的友好化设计,因此设计了一个起点的下拉框列表和一个终点的下拉框列表,用户从下拉框列表中选择起点和终点后,再选择按路程或是耗时查询,即可将路径在交通图中高亮显示,同时为了进一步提升用户体验,支持鼠标点击起点,再点击终点,就能高亮显示起点和终点之间的路径。
交通图查询功能展现
源码下载
链接:https://pan.baidu.com/s/1xmkQRFLmCrwWc9EY9qM4Gg?pwd=1111
提取码:1111
原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/277991.html