• 大小: 2.51MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: C/C++
  • 标签: c++  mfc  校园导航  

资源简介

在地图上有很多坐标点, 任意点击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\linkList.obj
     文件        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个文件信息

评论

共有 条评论