您的位置:首页 > 其它

初探MFC之校园导航系统

2016-05-20 19:11 501 查看

1.前言:

  c++实验课,作死选了个校园导航项目,没办法,只能写界面了,一切从头开始。

2.简介

  mfc是c++可用的一个开发框架,包括了界面和很多的类库,界面的实现全部是封装的windows api。并且很多类库非常强大。

3.简单的校园导航系统

3.1项目简介

  校园导航系统需要有类似于GPS的导航功能,即突破传统地图的限制性,帮助用户选择出最短路径。为实现此功能,需要用户输入起始地点和终止地点的编号,输出结果为路径导向图,用沿途经过的景点作为路径组成部分,用箭头表示走向。另外,为满足用户的了解需求,需要给每个景点配以描述,供用户查询。为实现此功能,需要用户输入待查询地点的编号或名称,输出结果为具体描述。

3.2系统设计

  本项目由两大部分组成:最短路径算法部分与GUI显示部分。用户通过GUI发送信息与指令,GUI显示部分将信息与指令传递给算法部分,由算法部分找出问题的最优解,并返回给GUI显示部分显示输出,用户便可通过GUI部分得到相应的信息,过程如下图所示:



3.3最短路径算法

  本项目的本质是无向图上的最短路径问题。根据现实问题中路径的权值均为非负的情况,显然可以使用效率较高的Dijkstra算法求出两点之间的最短路径,而不致遇到负权边与负权回路的问题。对于用户的每次查询操作,最短路径算法部分接收GUI部分传来的路径起始点与终止点,以起始点为Dijkstra算法单源最短路径搜索的源点进行搜索,最后返回源点到终止点的路径上各点的编号与各条边的权值。通过GUI部分反馈给用户。

3.4GUI部分

  本项目的GUI部分利用MFC完成。将用户输入传递给后台程序,即最短路径算法程序和景点信息介绍程序,并将后台程序返回的结果反馈给用户。

3.5最终效果

  下图是最终界面,之所以选择复选框表示建筑物,是为了实现用户不必在起点,终点处选择起始点,可以直接点击建筑物选择起始点,但是最终因为时间原因,这个简单的功能没能加上。

  路径由最下面给出,同时沿途建筑物会被选中,另外用户可以查询建筑物的介绍。



3.6心得

  虽然界面很丑,但是每一点是自己两三天内从0开始的,所以收获还是很大的。在查询资料过程中发现,MFC居然可以结合HTML、CSS、JS,很厉害的样子。自己应该还算为入门阶段吧,以后有时间还会继续探索。

源代码下载地址:http://download.csdn.net/detail/wbcg111/9535767
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: