资源简介

为了解决离散数学的最短路径问题,使用DJ斯特拉算法解决此问题。

资源截图

代码片段和文件信息

#include “stdafx.h“
#include 
#include 
#include  
#include 
#include “Waterpass.h“
using namespace std;

int vill[16][2];
double dis[17][17];
double first[17];
int cun[17][2];
int use[17] = { 0 };
int sum;

void readfile() {
FILE*fp = NULL;
fp = fopen(“data.txt“ “r“);

if (NULL == fp) return;
    int i = 0 c;
fscanf_s(fp “%d“ &c);
while (fscanf_s(fp “%d %d “ &vill[i][0] &vill[i][1]) != EOF) i++;
fclose(fp);
fp = NULL;

vill[16][1] = 0;
vill[17][0] = 0;
}

void dist() {
for (int i = 0; i < 17; i++) {
for (int j = 0; j < 17; j++) {
if (i == 16 || j == 16) {
dis[i][j] = abs(vill[i][1] - vill[j][1]);
}
else {
dis[i][j] = sqrt((vill[i][0] - vill[j][0])*(vill[i][0] - vill[j][0]) + (vill[i][1] - vill[j][1])*(vill[i][1] - vill[j][1]));
}
}
}
}

void dist1() {
for (int i = 0; i < 18; i++) {
for (int j = 0; j < 18; j++) {
if (i == 16 || j == 16) {
int x = abs(vill[i][1] - vill[j][1]);
int y = abs(vill[i][0] - vill[j][0]);
if (x < y)
dis[i][j] = x;
else
dis[i][j] = y;
}
else {
dis[i][j] = sqrt((vill[i][0] - vill[j][0])*(vill[i][0] - vill[j][0]) + (vill[i][1] - vill[j][1])*(vill[i][1] - vill[j][1]));
}
}
}
}

void dist2() {
for (int i = 0; i < 18; i++) {
for (int j = 0; j < 18; j++) {
if (i == 16 || j == 16) {
int x = abs(vill[i][1] - vill[j][1]);
int y = abs(vill[i][0] - vill[j][0]);
if (x < y)
dis[i][j] = x;
else
dis[i][j] = y;
}
else {
dis[i][j] = sqrt((vill[i][0] - vill[j][0])*(vill[i][0] - vill[j][0]) + (vill[i][1] - vill[j][1])*(vill[i][1] - vill[j][1]));
}
}
}
for (int i = 0; i < 17; i++) {
if (dis[11][i] > dis[10][i]) {
dis[11][i] = dis[10][i];
}
dis[10][i] = unable;
dis[i][10] = unable;
}
dis[10][11] = 0;
dis[11][10] = 0;

}

void result1b() {
FILE*fp = NULL;
fp = fopen(“result1b.txt“ “w+“);

if (NULL == fp) return;
for (int i = 1; i<17; i++)
fprintf_s(fp “%d %d\n“ cun[i][0] cun[i][1]);
}

void result1c() {
for (int i = 0; i < 17; i++) {
if (cun[i][0] == 16) {
if (vill[cun[i][1]][0] < vill[cun[i][1]][1])
cun[i][0] = 17;
}
if (cun[i][1] == 16) {
if (vill[cun[i][0]][0] < vill[cun[i][0]][1])
cun[i][1] = 17;
}
}
FILE*fp = NULL;
fp = fopen(“result1c.txt“ “w+“);

if (NULL == fp) return;
for (int i = 1; i<17; i++)
fprintf(fp “%d %d\n“ cun[i][0] cun[i][1]);
}

void result1d() {
double x y;
for (int i = 0; i < 17; i++) {

if (cun[i][0] == 16) {
if (vill[cun[i][1]][0] < vill[cun[i][1]][1])
cun[i][0] = 17;
}

if (cun[i][1] == 16) {
if (vill[cun[i][0]][0] < vill[cun[i][0]][1])
cun[i][1] = 17;
}

if (cun[i][0] == 11) {
x = sqrt((vill[cun[i][1]][0] - vill[10][0])*(vill[cun[i][1]][0] - vill[10][0]) + (vill[cun[i][1]][1] - vill[10][1])*(vill[cun[i][1]][1] - vill[10][1]));

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     29696  2018-04-27 22:08  Waterpass\.vs\Waterpass\v15\.suo

     文件   36458496  2018-04-27 22:08  Waterpass\.vs\Waterpass\v15\Browse.VC.db

     文件    3473408  2018-04-27 21:54  Waterpass\.vs\Waterpass\v15\ipch\f0e79d2685dc836f.ipch

     文件     131072  2018-04-27 22:00  Waterpass\Debug\Waterpass.exe

     文件     737172  2018-04-27 22:00  Waterpass\Debug\Waterpass.ilk

     文件     946176  2018-04-27 22:00  Waterpass\Debug\Waterpass.pdb

     文件         99  2014-11-21 21:27  Waterpass\Waterpass\data.txt

     文件      83665  2018-04-27 22:00  Waterpass\Waterpass\Debug\main.obj

     文件       5884  2018-04-27 12:48  Waterpass\Waterpass\Debug\stdafx.obj

     文件     609280  2018-04-27 22:00  Waterpass\Waterpass\Debug\vc141.idb

     文件     536576  2018-04-27 22:00  Waterpass\Waterpass\Debug\vc141.pdb

     文件        101  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.log

     文件     297704  2018-04-27 16:47  Waterpass\Waterpass\Debug\Waterpass.obj

     文件    2883584  2018-04-27 12:48  Waterpass\Waterpass\Debug\Waterpass.pch

     文件       2640  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.tlog\CL.command.1.tlog

     文件      77436  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.tlog\CL.read.1.tlog

     文件       2118  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.tlog\CL.write.1.tlog

     文件       1508  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.tlog\link.command.1.tlog

     文件       4026  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.tlog\link.read.1.tlog

     文件        728  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.tlog\link.write.1.tlog

     文件        217  2018-04-27 22:00  Waterpass\Waterpass\Debug\Waterpass.tlog\Waterpass.lastbuildstate

     文件       5041  2018-04-27 22:00  Waterpass\Waterpass\main.cpp

     文件        110  2018-04-27 22:01  Waterpass\Waterpass\result1b.txt

     文件        112  2018-04-27 22:01  Waterpass\Waterpass\result1c.txt

     文件        113  2018-04-27 22:01  Waterpass\Waterpass\result1d.txt

     文件        134  2018-04-27 22:00  Waterpass\Waterpass\result2b.txt

     文件        128  2018-04-27 22:00  Waterpass\Waterpass\result2d.txt

     文件        134  2018-04-27 22:00  Waterpass\Waterpass\result2e.txt

     文件        134  2018-04-27 22:00  Waterpass\Waterpass\result2f.txt

     文件        320  2018-04-26 20:29  Waterpass\Waterpass\stdafx.cpp

............此处省略21个文件信息

评论

共有 条评论