基于MFC和C++的校园导航系统
基于MFC和C++实现校园导航系统
项目简介
设计一款面向广大师生和外来办公或参观人员的校园导航系统,为校外人员来校办事提供便利。
校园导航系统提供校园内场所信息和路径查询。系统有两类登陆账号,一类是游客,使用该系统进行场所信息功能查询和校内路线查询;一类是管理员,可以使用该系统查询校内路线,可对校园场所和路线编辑。
学习目标
一、主要内容:
开发一个能够创建校园地图、查询校园地图,并能给出校园内两个地点之间的查路线的软件。设计并实现这样一个软件主要是锻炼学生通过数据结构课程设计,进行熟悉图的创建过程、最短路径的计算、字符串、排序等数据结构内容,提高编程能力,为后续课程学习打下坚实基础。
二、基本要求:
在这个软件中,要创建一个图,可以在图中增加、修改结点(即地点)和边(即道路),能够查询各个结点,并能够给出两个结点之间的导引路线。此外,地图信息应能存储到一个硬盘文件中,而且具有读取硬盘地图信息文件的功能。
三、扩展要求:
在掌握求解最短路径算法的基础上,学习图形化界面设计(例如MFC或者QT),将校园地图信息以图形化呈现,绘制各顶点、边、最短路径。
需求
面向游客
(1)查找到相关场所的位置、信息和功能介绍;
(2)查询两点之间的最短路径。
面向管理员
(1)查询校内路径;
(2)对校园场所和道路编辑,包括添加和删除场所、道路;修改场所信息(加分项)。
输入功能
键盘输入;
输出功能
(1)输入两个点,输出最短距离及最短路径;
(2)可视化地图最短路径显示(加分项)。
实现思路描述及类之间关系图
校园导航系统的思想是将地图抽象为一个数据类型“图”,利用最短路算法计算出两位置点的最短路径。
图可以用邻接表、邻接矩阵存储,最短路算法可以使用Dijkstra算法,Floyd算法,A*算法等。
数据采集与校园地图测绘;(给出校园地图的拓扑图;数据存储表等)
语言框架
语言:C++
框架:MFC
程序界面
管理员功能
管理员登录后,可以编辑校园地图信息,修改校园地图信息。地图信息采用文件存储,从易读性考虑,采用文本格式存储数据,数据含每个顶点的信息和每条边的权重信息,另外顶点信息中包含图显示时候的X,Y坐标位置。考虑到能可视化编辑交通图(添加删除顶点和边信息,以及调整顶点的位置,修改顶点和边的信息等),因此需要额外做一个校园导航地图编辑界面,在此界面可以创建新的顶点,创建新的边,以及删除不要的顶点和边,最重要的是支持鼠标选择某个顶点,将该顶点安置到其他位置,所有信息编辑好后,选择编辑菜单的保存功能,会把修改后的交通图信息重新保存到文件。
游客功能
游客登录后,程序自动读取文件中的图信息,构建邻接矩阵,采用迪杰斯特拉算法计算单源最短路径。考虑到用户界面的友好化设计,因此设计了一个起点的下拉框列表和一个终点的下拉框列表,用户从下拉框列表中选择起点和终点后,再选择按路程或是耗时查询,即可将路径在交通图中高亮显示,同时为了进一步提升用户体验,支持鼠标点击起点,再点击终点,就能高亮显示起点和终点之间的路径。
源码传送门
传送门:https://pan.baidu.com/s/1fy7QBQydoZmJlrUS0pOLUw?pwd=1111