资源简介
C++ 元胞自动机 人员疏散 仿真 模拟自动化
代码片段和文件信息
#include “stdafx.h“
#include “iVPS.h“
#include “math.h“
#include “time.h“
#include “iostream.h“
int Np=50; //初始化人数
int timestep=0;
LNode *s;
int count=0;
fstream vfile;//open file to save density data;
fstream ffile;// open file to save flow rate data;
fstream cfile; //open file to save the count of each type of pedestrians;
//=================链表操作================================
bool ListInsert(LNode *sint iint xint y)
{
int peoplenum=s->per.index;
LNode *p_temp=s;
while(p_temp->next!=NULL)//error
{
p_temp=p_temp->next;
}
LNode *news;
if((news=(LNode*)malloc(sizeof(LNode)))!=NULL)
{
p_temp->next=news;
news->next=NULL;
news->per.index=i;
news->per.location.x=x;
news->per.location.y=y;
news->per.s=0;
s->per.index=i;
return true;
}
else
return false;
}
struct LNode *ListFind(LNode *s int index)
{
LNode *p_temp=s;
while(p_temp->next!=NULL)
{
if(p_temp->next->per.index==index)
return p_temp->next;
else
p_temp=p_temp->next;
}
return p_temp;
}
struct LNode * Listdelete(LNode *sint xint y)
{
int pernum=s->per.index;
LNode *p_temp=s->next ;
LNode *p_pre=s;//p_temp
while(p_temp->per.location.x != x || p_temp->per.location.y!=y)
{
p_pre=p_temp;
p_temp=p_temp->next;
}
p_pre->next =p_temp->next;
p_temp->next=NULL;
free(p_temp);
p_temp=NULL;
s->per.index=pernum-1;
return p_pre;
}
bool randomseq(LNode *s)
{
LNode *p_temp=s;
while(p_temp->next!=NULL)//error
{
int rand1=(int)(rand()/(double)RAND_MAX)*(Np-1);
struct LNode *p;
LNode temp;
p=ListFind(srand1);
p_temp->next->per.s=0;//清空方向记录;
p->per.s=0;
temp.per.index=p_temp->next->per.index;
temp.per.location.x=p_temp->next->per.location.x;
temp.per.location.y=p_temp->next->per.location.y;
p_temp->next->per.index=p->per.index;
p_temp->next->per.location.x=p->per.location.x;
p_temp->next->per.location.y=p->per.location.y;
p->per.index=temp.per.index;
p->per.location.x=temp.per.location.x;
p->per.location.y=temp.per.location.y;
p_temp=p_temp->next;
}
return true;
}
//==============================================================
bool initparam()
{//20
int ij;
//========初始化通道==============
for( i=0;i {//3
if(i==0||i==RoomWidth-1)
{//1
for (j=0;j Ch[i][j]=-1;
Ch[RoomWidth-1][RoomLength/2]=0;
Ch[RoomWidth-1][RoomLength/2-1]=0;
Ch[RoomWidth-1][RoomLength/2+1]=0;
Ch[RoomWidth-1][RoomLength/2+2]=0;
}//1
else
{//2
for(j=0;j if(j==0||j==RoomLength-1)
{
Ch[i][j]=-1;
}
else
Ch[i][j]=0;
}//2
}//3
//========初始化人群==============
if((s = (LNode*) malloc (sizeof(LNode)))!=NULL)
{//6
s->per.index=0;
s->next=NULL;
}//6
for( i=1;i<=Np;i++)
{//8
int xy;
do
{
double rand1=(rand()/(double)RAND_MAX);
double rand2=(rand
相关资源
- MFC 2010编写 C++ 求1元4次方程解,含1元
- c++版创建并输出二叉树完整代码
- c++练习题2015
- 最新传智播客C/C++第五期完整视频 R
- 影碟出租系统C++源代码
- C++&CLR 编写 Windows 窗体应用程序
- 用c语言写的8数码游戏
- ue4,c++平面最小封闭区域识别
- vs2013 c++串口助手源码
- c++21点游戏
- 蛮力法求解旅行商问题C++
- 理发师睡觉问题
- 常用的VC界面模板
- 20多个常用的Hash算法C++ 实现
- C++仿360新界面源代码
- 遗传、禁忌、模拟退火解背包问题
- C++语言程序设计 郑莉 第四版 课后题
- 蚁群算法C++版
- C++开发精灵对战小游戏
- C++与js相互调用
- 使用Qt做的数据管理系统
- c++测试题aaaa
- c++职工工资管理系统
- 分数计算器C++
- c++职工管理系统链表
- c++密度据类MFC可视化
- 电信计费系统C++
- c++ 最小二乘算法拟合球心 使用Vs200
- 感染EXE文件的VC++源码请谨慎使用.
- 仓库管理系统 c++
评论
共有 条评论