资源简介
用C++实现的关于AGV路径规划的程序,在VC6.0中可以运行,需要自己下载graphics.h提供画图支持
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define MAX 100
#define maxD 99999
class CFixedMap
{
public:
struct Coordinate
{
int x;
int y;
int num;
};//记录点的结构体
struct combp
{
int x1y1;
int x2y2;
};//连通点坐标
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 if(n1==mVexs[i].num)
x=mVexs[i].x;
return x;
}
int CFixedMap::gety(int n2)
{
int y=0;
for(int i=0;i if(n2==mVexs[i].num)
y=mVexs[i].y;
return y;
}
void CFixedMap::Input()
{
int panju;
char fname[10]={“map2.txt“};
cout<<“是否载入默认地图?(1:是,2:否)“;
cin>>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 {
file>>mVexs[i].num>>mVexs[i].x>>mVexs[i].y;
}
file>>use4;
for(int i=0;i {
file>>comb[i].num1>>comb[i].num2;
}
file.close();
}
//easyx显示地图
void CFixedMap::ShowMap()
{
initgraph(800600SHOWCONSOLE| NOCLOSE); //初始化绘图环境
setbkcolor(WHITE); //设置背景色
cleardevice(); //用背景色清空屏幕
setfillcolor(BLACK); //设置填充色
//画顶点
for(int i=0;i {
fillcircle(mVexs[i].xmVexs[i].y5);
settextcolor(BLACK);
char s[MAX];
sprintf(s “%d“ i+1);
outtextxy(mVexs[i].x-10mVexs[i].y-20s);
}
//给实际连通的顶点连线
setlinecolor(RGB(000));
setlinestyle(PS_SOLID6NULL0);
for(int i=0;i {
cp[i].x1=getx(comb[i].num1);
cp[i].y1=gety(comb[i].num1);
cp[i].x2=getx(comb[i].num2);
cp[i].y2=gety(comb[i].num2);
line(cp[i].x1cp[i].y1cp[i].x2cp[i].y2);
}
}
class CPathPlan:public CFixedMap
{
public:
int path[MAX]; //存放最后一个点
double dist[MAX]; //存放路径距离
int v0; //起始点
int route[40]; //路径
int rnum; //路径顶点数
Coo
相关资源
- VC++实现客户端与服务器端的文件传输
- VC++网络考试系统,服务器+用户端+数
- C++api大全
- C C++ Linux多线程文件程序
- [c++中文化编程]之ComboBox组合框的类封
- 达内科技+c+++课件+及+源码+笔记
- C++ 源代码 学生考勤管理系统
- 基于C++的学生管理系统
- C++命令行实现的学生社团管理系统
- VC++和OpenGL实现八叉树分割
- C++宾馆管理系统
- C++经典算法100例
- SVR算法C++实现
- Frankot and Chellappa算法
- 实现对任意格式文件压缩 C++
- C++实现对文本(单纯文字,不是文本
- accelerated c++ 课后习题答案:原书作者提
- c++builder获取Cpu序列号代码
- 《C++面试宝典2015版》
- 使用c++实现用户登录界面
- djksrla最短路径算法C++实现
- 一个完整的C++ odbc连接数据库
- Large Scale C++ Software Design
- VC/VC++ 动态加载Gif动画
- FP-TREE算法 C++实现
- 近代优化方法利用C++编写的PRP共轭梯
- 三子连珠游戏VC++程序
- 随机线性网络编码和确定线性网络编
- C++仿QQ界面
- 开发一个VC++证券模拟交易系统源代码
评论
共有 条评论