资源简介
在地图上有很多坐标点,
任意点击2点可以显示最短的连接路径,
进行导航
任意点击一点也显示当前坐标信息
代码片段和文件信息
#include “Diagraph.h“
#include
#include
#include
template
Digraph::Digraph( ){
count =0;
}
template
int Digraph::get_count(){
return count;
}
template
void Digraph::readVertex(){//读取结点的编号极其地址
ifstream infile;
infile.open(“graphVertex.txt“);
if(!infile){
cout<<“Open file error!“< return;
}
int noxy;
infile>>no>>x>>y;
while(infile){
VertexRecord vt(noxy);
vertexList.insert(vertexList.size()vt);
infile>>no>>x>>y;
}
}
template
void Digraph::read( )
/*
Post: A user specified Digraph has been read from the terminal
5
0 1 3
0 2 5
1 3 5
*/
{
ifstream infile;
infile.open(“graphTable.txt“);
if(!infile){
cout<<“Open file error!“< return;
}
int sdw;
infile>>count;
infile>>s;
while(infile) {
infile>>d>>w;
Vertex v(dw);
neighbors[s].insert(neighbors[s].size()v);
infile>>s;
}
cout<<“okread is finished!“< }
template
void Digraph::write( )/*
Post: The Digraph has been printed to the terminal
*/
{
for (int i = 0; i < count; i++) {
int degree = neighbors[i].size();
cout << “Vertex “ << i << “ : “;
if (degree == 0)
cout << “has no successors“ << endl;
else
cout << “has successors: “;
for (int j = 0; j < degree; j++) {
Vertex w;
neighbors[i].retrieve(j w);
cout << w.no;
if (j < degree - 1)
cout << “ “;
else
cout << “\n“;
}
}
}
//Dijkstra shortest path
template
void Digraph::set_distances(Vertex source int distance[]int preceding[] /*记录路径信息*/) const{
int ij;
bool found[graph_size]; // Vertices found in S
//initialize set s;
for ( i = 0; i < count; i++) {
found[i] = false;
distance[i] = infinity;
preceding[i] = source.no;
}
//initialize distance[]
Vertex x;
for(i=0; i
neighbors[source.no].retrieve(ix);
distance[x.no] = x.weight;
preceding[x.no] = source.no;
}
found[source.no] = true; // Initialize with vertex source alone in the set S.
distance[source.no] = 0;
preceding[source.no] = source.no;
for (i = 0; i < count; i++) { // Add one vertex v to S on each pass.
int min = infinity;
int minPos=-1;
for ( j = 0; j < count; j++)
if (!found[j])
if (distance[j] < min) {
minPos = j;
min = distance[j];
}
found[minPos] = true;
Vertex v(minPos0);
Vertex w;
//for (i = 0; i < count; i++)
for (int k = 0; k < count; k++)
if (!found[k]){
w.no = k;
getAdjacency(vw);
if(min + w.weight < distance[k]){
distance[k] = min + w.weight;
preceding[k] = v.no;
}
}
}
}
template
void Digraph
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-01-18 13:43 校园导航\
目录 0 2013-01-18 13:50 校园导航\DrawText\
目录 0 2013-01-18 13:43 校园导航\DrawText\Debug\
文件 10925 2012-10-08 08:35 校园导航\DrawText\Debug\Digraph.obj
文件 647252 2012-10-08 08:35 校园导航\DrawText\Debug\DrawText.exe
文件 280236 2012-10-08 08:35 校园导航\DrawText\Debug\DrawText.ilk
文件 34164 2012-10-08 08:35 校园导航\DrawText\Debug\DrawText.obj
文件 5627352 2012-10-08 08:35 校园导航\DrawText\Debug\DrawText.pch
文件 353280 2012-10-08 08:35 校园导航\DrawText\Debug\DrawText.pdb
文件 426356 2012-10-08 08:34 校园导航\DrawText\Debug\DrawText.res
文件 123456 2012-10-08 08:35 校园导航\DrawText\Debug\DrawTextDlg.obj
文件 10183 2012-10-08 08:35 校园导航\DrawText\Debug\li
文件 1268 2012-10-08 08:35 校园导航\DrawText\Debug\Node.obj
文件 105980 2012-10-08 08:35 校园导航\DrawText\Debug\StdAfx.obj
文件 254976 2013-01-18 13:50 校园导航\DrawText\Debug\vc60.idb
文件 462848 2012-10-08 08:35 校园导航\DrawText\Debug\vc60.pdb
文件 1894 2012-07-04 09:07 校园导航\DrawText\detial.txt
文件 1001 2012-07-04 13:13 校园导航\DrawText\Diagraph.h
文件 6004 2012-07-02 15:56 校园导航\DrawText\Digraph.cpp
文件 444808 2013-01-18 13:50 校园导航\DrawText\DrawText.aps
文件 1031 2013-01-18 13:50 校园导航\DrawText\DrawText.clw
文件 2091 2012-07-03 22:47 校园导航\DrawText\DrawText.cpp
文件 5176 2012-07-03 23:56 校园导航\DrawText\DrawText.dsp
文件 522 2012-07-03 22:47 校园导航\DrawText\DrawText.dsw
文件 1346 2012-07-03 22:47 校园导航\DrawText\DrawText.h
文件 254976 2013-01-18 13:50 校园导航\DrawText\DrawText.ncb
文件 49664 2013-01-18 13:50 校园导航\DrawText\DrawText.opt
文件 250 2012-10-08 09:48 校园导航\DrawText\DrawText.plg
文件 5278 2012-07-03 23:10 校园导航\DrawText\DrawText.rc
文件 9863 2012-07-04 15:23 校园导航\DrawText\DrawTextDlg.cpp
文件 1921 2012-07-04 13:10 校园导航\DrawText\DrawTextDlg.h
............此处省略17个文件信息
- 上一篇:MicroStation--SDK--培训教程
- 下一篇:用MFC做的图书管理系统
相关资源
- 用MFC做的图书管理系统
- Visual C++程序设计学习笔记光盘源码
- 餐厅管理系统 C++,自己随便做做的,
- 简单LISP算术表达式计算器
- MFC做的画板MFC做的画板
- MFC 聊天室 高级
- MFC 浏览器的实现
- MFC UDP 聊天
- MFC 网络时钟
- 学生信息管理系统C++简单教学版
- MFC数字图像处理
- MFC_学生信息管理系统
- 用vs2015编译好的百度ocr c++依赖库
- C++基于MFC与ACCESS数据库的成绩管理系
- C++并发编程第二版,中文版
- 抓包源码,有兴趣的拿走
- MFC些的串口调试助手源码
- c++贪吃蛇编程源代码论文设计c语言
- vc++调用usb摄像头,进行拍照,保存为
- C++。电信计费系统
- C++MFC界面美化源代码
- MFC资料两本详细讲解MFC的资料,对M
- 遥感图像融合C++代码
- 计算机图形学 图形变换 C++ MFC
- 二维码生成 C++
- C++东南大学何洁月课件(总)ppt
- V isual C++ 端口扫描 源代码
- 计算机网络课程设计农大socket实现F
- c++短路电流计算软件设计
- C++五子棋程序带禁手功能
评论
共有 条评论