资源简介
N ( N>10 )个居民区之间需要铺设煤气管道。假设任意两个居民区之间都可以铺设煤气管道,但代价不同。事先将任意两个居民区之间铺设煤气管道的代价存入磁盘文件中。设计一个最佳方案使得这 N 个居民区之间铺设煤气管道所需代价最少 , 并希望以图形方式在屏幕上输出结果。
代码片段和文件信息
#include
#include“MGraph.h“
#include “windows.h“
#include
#include
using namespace std;
vector > pos;
extern “C“ WINbaseAPI HWND WINAPI GetConsoleWindow (); //得到窗口句柄
void gotoxy(int xint y) //移动光标
{
HANDLE handle;
COORD coord;
coord.X=x;
coord.Y=y;
handle=GetStdHandle(STD_OUTPUT_HANDLE);//获得标准输出句柄
SetConsoleCursorPosition(handlecoord);//参数1:获得设备句柄,参数2:位置
}
void clearline(int k) //局部清屏
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi; //当前窗口信息
if (GetConsoleScreenBufferInfo(hConsole &csbi)) //获取当前光标位置
for(int i=0;i {
gotoxy(0csbi.dwCursorPosition.Y-i); //往前清k行
for(int j=0;j<=100;j++)
cout<<“ “;
cout.flush();
}
gotoxy(018);
}
void MGraph::FsetMGraph()
{
ifstream in(“test.txt“);
if(!in)
{
cerr<<“File \“test.txt\“ not found.“< }
string s;
getline(ins);
istringstream sin(s);
int ne;
sin>>n;
vexNum=n;
sin>>e;
edgeNum=e;
pos.resize(vexNum);
for (i=0;i {
pos[i].resize(2); //地点坐标格式XY是顶点数*2的二维数组
}
for(int i=0;i for(int j=0;j pos[i][j]=rand()%20;
getline(ins);
istringstream win(s);
for(int i=0;i {
win>>vertex[i];
gotoxy(pos[i][0]pos[i][1]);
cout<<“@“< }
for(i=0;i for(int j=0;j {
PrimEdge[i][j]=9999;
edge[i][j]=9999;
}
for(int k=0;k {
char ab;
int ijm;
getline(ins);
istringstream din(s);
din>>a;
din>>b;
i=Subscript(a);
j=Subscript(b);
din>>m;
edge[i][j]=m;
edge[j][i]=m;
}
reDraw();
in.close();
}
void MGraph::reDraw() //重置路线,使恢复初始色彩
{
int ij;
HWND hwnd;
HDC hdc;
hwnd = GetConsoleWindow(); //获取console的设备上下文句柄
hdc = GetDC(hwnd); //获取设备环境以作图
for (i=0;i for(j=0;j if(edges[i][j]>0&&edges[i][j]<10000)
{
MoveToEx(hdcpos[i][0]*8pos[i][1]*17NULL);//绘图位置移动到起始位置点
LineTo(hdcpos[j][0]*8pos[j][1]*17); //划线
}
ReleaseDC(hwndhdc); //释放设备上下文环境
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 185 2008-09-01 23:23 Pipeline\data.txt
文件 618543 2013-09-04 22:13 Pipeline\Debug\Pipeline.exe
文件 1221632 2013-09-04 22:13 Pipeline\Debug\Pipeline.pdb
文件 214016 2013-09-05 20:41 Pipeline\Debug\vc60.idb
文件 167936 2013-09-04 22:13 Pipeline\Debug\vc60.pdb
文件 92056 2013-09-04 22:04 Pipeline\Debug\main.obj
文件 5864456 2013-09-04 22:04 Pipeline\Debug\Pipeline.pch
文件 455479 2013-09-04 22:13 Pipeline\Debug\MGraph.obj
文件 886272 2013-09-04 22:13 Pipeline\Debug\Pipeline.ilk
文件 2319 2013-09-04 12:39 Pipeline\draw.cpp
文件 0 2013-09-04 14:13 Pipeline\draw.h
文件 408 2013-09-04 17:49 Pipeline\MGraph.h
文件 895 2013-09-04 08:49 Pipeline\Operate.cpp
文件 100 2013-09-04 08:41 Pipeline\Operate.h
文件 4422 2013-09-04 13:40 Pipeline\Pipeline.dsp
文件 522 2013-09-03 09:15 Pipeline\Pipeline.dsw
文件 66560 2013-09-05 21:06 Pipeline\Pipeline.ncb
文件 1292 2013-09-04 22:13 Pipeline\Pipeline.plg
文件 656 2013-09-05 20:43 Pipeline\test.txt
文件 577 2013-09-04 22:03 Pipeline\main.cpp
文件 5254 2013-09-04 22:13 Pipeline\MGraph.cpp
文件 50688 2013-09-05 21:06 Pipeline\Pipeline.opt
目录 0 2013-09-04 18:10 Pipeline\Debug
目录 0 2013-09-04 18:10 Pipeline
----------- --------- ---------- ----- ----
9654268 24
- 上一篇:AxToolsVer134_SetUp_E
- 下一篇:CMMI项目项目经理工作介绍
相关资源
- 数据结构课程设计报告(最小生成树
- 可视化最小生成树源代码
- 最小生成树算法及其应用
- 最小生成树问题 要在n个城市之间建役
- 最小生成树实习报告.doc
- 管道铺设算法三级项目最小生成树
- 最小生成树----源码
- C数据结构最小生成树的构造
- 最小生成树实验报告
- 最小生成树算法,用数据结构实现
- 给定一个地区的n 个城市间最小生成树
- 最小生成树问题报告
- 图的最小生成树 利用普里姆算法和克
- 地铁建设问题最小生成树
- 最小生成树用堆+并查集进行优化
- 最小生成树解决tsp问题
- 公路村村通30.zip
- 最小生成树课程设计
- 数据结构实验报告
- 用Prim和Kruskal算法构造最小生成树
- 无向连通图最小生成树
- 最小生成树数据结构
- 最小生成树
- 构造可以使n个城市连接的最小生成树
- 数据结构课设最小生成树问题cpp含报
- 构造可以使n个城市连接的最小生成树
评论
共有 条评论