程序代码#include#include#include #include#include#include#include#define MAX 100#define maxD 99999class CFixedMap{ struct Coordinate { int x; int y; int num; };//记录点的结构体 struct combp { int x1,y1; int x2,y2; };//连通点坐标 struct Combname { int num1; int num2; };//连通点名 public: int mVexNum; // 顶点数 int mEdgNum; // 边数 double mMatrix[MAX][MAX]; // 邻接矩阵 Combname comb[MAX]; //连通点名 combp cp[MAX]; //连通点坐标 Coordinate mVexs[MAX]; // 顶点集合 int getx(int n1); int gety(int n2); void Input();//以文件方式输入地图信息 void ShowMap();//easyx显示地图};int CFixedMap::getx(int n1){ int x=0; for(int i=0;i>panju; if(panju==2) { cout<<"请输入地图信息文件名:"; cin>>fname; } ifstream file(fname); char use1[100]; char use2[100]; char use3[100]; char use4[100]; //use数组用来储存提示信息。
file>>use1; file>>mVexNum; //端点个数 file>>use2; file>>mEdgNum; //边数 file>>use3; for(int i=0;i>mVexs[i].num>>mVexs[i].x>>mVexs[i].y; } file>>use4; for(i=0;i>comb[i].num1>>comb[i].num2; } file.close();}//easyx显示地图void CFixedMap::ShowMap(){ initgraph(800,600,SHOWCONSOLE| NOCLOSE); //初始化绘图环境 setbkcolor(WHITE); //设置背景色 cleardevice(); //用背景色清空屏幕 setfillcolor(BLACK); //设置填充色 //画顶点 for(int i=0;i>v0; v0--; int s[MAX]; int v; int i; int j; int w; double min; for(v=0;v
再假设由两个中转点到达会近些,验证穷举 { min=maxD; for(w=0;w>z; z--; int next; ofstream file2("fops.txt"); if(dist[z]"; rnum=i+1; file2<